Imported Upstream version 3.2.4
authorHyunjee Kim <hj0426.kim@samsung.com>
Thu, 31 Jan 2019 01:35:11 +0000 (10:35 +0900)
committerHyunjee Kim <hj0426.kim@samsung.com>
Thu, 31 Jan 2019 01:35:35 +0000 (10:35 +0900)
Change-Id: I4d94839b5aa196a9313b3dd4d639ecfe60d742d1
Signed-off-by: Hyunjee Kim <hj0426.kim@samsung.com>
438 files changed:
CHANGES.txt
INSTALL.txt
Makefile
PKG-INFO
doc/build.txt
doc/html/FAQ.html
doc/html/api.html
doc/html/api/abc.ABCMeta-class.html
doc/html/api/api-objects.txt
doc/html/api/class-tree.html
doc/html/api/cssselect.parser.SelectorError-class.html
doc/html/api/cssselect.parser.SelectorSyntaxError-class.html
doc/html/api/cssselect.xpath.ExpressionError-class.html
doc/html/api/cssselect.xpath.XPathExpr-class.html
doc/html/api/deprecated-index.html
doc/html/api/exceptions.AssertionError-class.html
doc/html/api/help.html
doc/html/api/identifier-index-A.html
doc/html/api/identifier-index-B.html
doc/html/api/identifier-index-C.html
doc/html/api/identifier-index-D.html
doc/html/api/identifier-index-E.html
doc/html/api/identifier-index-F.html
doc/html/api/identifier-index-G.html
doc/html/api/identifier-index-H.html
doc/html/api/identifier-index-I.html
doc/html/api/identifier-index-J.html
doc/html/api/identifier-index-K.html
doc/html/api/identifier-index-L.html
doc/html/api/identifier-index-M.html
doc/html/api/identifier-index-N.html
doc/html/api/identifier-index-O.html
doc/html/api/identifier-index-P.html
doc/html/api/identifier-index-Q.html
doc/html/api/identifier-index-R.html
doc/html/api/identifier-index-S.html
doc/html/api/identifier-index-T.html
doc/html/api/identifier-index-U.html
doc/html/api/identifier-index-V.html
doc/html/api/identifier-index-W.html
doc/html/api/identifier-index-X.html
doc/html/api/identifier-index-Y.html
doc/html/api/identifier-index-Z.html
doc/html/api/identifier-index-_.html
doc/html/api/identifier-index.html
doc/html/api/lxml-module.html
doc/html/api/lxml-pysrc.html
doc/html/api/lxml.ElementInclude-module.html
doc/html/api/lxml.ElementInclude-pysrc.html
doc/html/api/lxml.ElementInclude.FatalIncludeError-class.html
doc/html/api/lxml.builder-module.html
doc/html/api/lxml.builder-pysrc.html
doc/html/api/lxml.builder.ElementMaker-class.html
doc/html/api/lxml.cssselect-module.html
doc/html/api/lxml.cssselect-pysrc.html
doc/html/api/lxml.cssselect.CSSSelector-class.html
doc/html/api/lxml.cssselect.LxmlHTMLTranslator-class.html
doc/html/api/lxml.cssselect.LxmlTranslator-class.html
doc/html/api/lxml.doctestcompare-module.html
doc/html/api/lxml.doctestcompare-pysrc.html
doc/html/api/lxml.doctestcompare.LHTMLOutputChecker-class.html
doc/html/api/lxml.doctestcompare.LXMLOutputChecker-class.html
doc/html/api/lxml.doctestcompare._RestoreChecker-class.html
doc/html/api/lxml.etree-module.html
doc/html/api/lxml.etree.AncestorsIterator-class.html
doc/html/api/lxml.etree.AttributeBasedElementClassLookup-class.html
doc/html/api/lxml.etree.C14NError-class.html
doc/html/api/lxml.etree.CDATA-class.html
doc/html/api/lxml.etree.CommentBase-class.html
doc/html/api/lxml.etree.CustomElementClassLookup-class.html
doc/html/api/lxml.etree.DTD-class.html
doc/html/api/lxml.etree.DTDError-class.html
doc/html/api/lxml.etree.DTDParseError-class.html
doc/html/api/lxml.etree.DTDValidateError-class.html
doc/html/api/lxml.etree.DocInfo-class.html
doc/html/api/lxml.etree.DocumentInvalid-class.html
doc/html/api/lxml.etree.ETCompatXMLParser-class.html
doc/html/api/lxml.etree.ETXPath-class.html
doc/html/api/lxml.etree.ElementBase-class.html
doc/html/api/lxml.etree.ElementChildIterator-class.html
doc/html/api/lxml.etree.ElementClassLookup-class.html
doc/html/api/lxml.etree.ElementDefaultClassLookup-class.html
doc/html/api/lxml.etree.ElementDepthFirstIterator-class.html
doc/html/api/lxml.etree.ElementNamespaceClassLookup-class.html
doc/html/api/lxml.etree.ElementTextIterator-class.html
doc/html/api/lxml.etree.EntityBase-class.html
doc/html/api/lxml.etree.Error-class.html
doc/html/api/lxml.etree.ErrorDomains-class.html
doc/html/api/lxml.etree.ErrorLevels-class.html
doc/html/api/lxml.etree.ErrorTypes-class.html
doc/html/api/lxml.etree.FallbackElementClassLookup-class.html
doc/html/api/lxml.etree.HTMLParser-class.html
doc/html/api/lxml.etree.LxmlError-class.html
doc/html/api/lxml.etree.LxmlRegistryError-class.html
doc/html/api/lxml.etree.LxmlSyntaxError-class.html
doc/html/api/lxml.etree.NamespaceRegistryError-class.html
doc/html/api/lxml.etree.PIBase-class.html
doc/html/api/lxml.etree.ParseError-class.html
doc/html/api/lxml.etree.ParserBasedElementClassLookup-class.html
doc/html/api/lxml.etree.ParserError-class.html
doc/html/api/lxml.etree.PyErrorLog-class.html
doc/html/api/lxml.etree.PythonElementClassLookup-class.html
doc/html/api/lxml.etree.QName-class.html
doc/html/api/lxml.etree.RelaxNG-class.html
doc/html/api/lxml.etree.RelaxNGError-class.html
doc/html/api/lxml.etree.RelaxNGErrorTypes-class.html
doc/html/api/lxml.etree.RelaxNGParseError-class.html
doc/html/api/lxml.etree.RelaxNGValidateError-class.html
doc/html/api/lxml.etree.Resolver-class.html
doc/html/api/lxml.etree.Schematron-class.html
doc/html/api/lxml.etree.SchematronError-class.html
doc/html/api/lxml.etree.SchematronParseError-class.html
doc/html/api/lxml.etree.SchematronValidateError-class.html
doc/html/api/lxml.etree.SerialisationError-class.html
doc/html/api/lxml.etree.SiblingsIterator-class.html
doc/html/api/lxml.etree.TreeBuilder-class.html
doc/html/api/lxml.etree.XInclude-class.html
doc/html/api/lxml.etree.XIncludeError-class.html
doc/html/api/lxml.etree.XMLParser-class.html
doc/html/api/lxml.etree.XMLSchema-class.html
doc/html/api/lxml.etree.XMLSchemaError-class.html
doc/html/api/lxml.etree.XMLSchemaParseError-class.html
doc/html/api/lxml.etree.XMLSchemaValidateError-class.html
doc/html/api/lxml.etree.XMLSyntaxError-class.html
doc/html/api/lxml.etree.XPath-class.html
doc/html/api/lxml.etree.XPathDocumentEvaluator-class.html
doc/html/api/lxml.etree.XPathElementEvaluator-class.html
doc/html/api/lxml.etree.XPathError-class.html
doc/html/api/lxml.etree.XPathEvalError-class.html
doc/html/api/lxml.etree.XPathFunctionError-class.html
doc/html/api/lxml.etree.XPathResultError-class.html
doc/html/api/lxml.etree.XPathSyntaxError-class.html
doc/html/api/lxml.etree.XSLT-class.html
doc/html/api/lxml.etree.XSLTAccessControl-class.html
doc/html/api/lxml.etree.XSLTApplyError-class.html
doc/html/api/lxml.etree.XSLTError-class.html
doc/html/api/lxml.etree.XSLTExtension-class.html
doc/html/api/lxml.etree.XSLTExtensionError-class.html
doc/html/api/lxml.etree.XSLTParseError-class.html
doc/html/api/lxml.etree.XSLTSaveError-class.html
doc/html/api/lxml.etree._Attrib-class.html
doc/html/api/lxml.etree._BaseErrorLog-class.html
doc/html/api/lxml.etree._Comment-class.html
doc/html/api/lxml.etree._Document-class.html
doc/html/api/lxml.etree._DomainErrorLog-class.html
doc/html/api/lxml.etree._Element-class.html
doc/html/api/lxml.etree._ElementIterator-class.html
doc/html/api/lxml.etree._ElementMatchIterator-class.html
doc/html/api/lxml.etree._ElementStringResult-class.html
doc/html/api/lxml.etree._ElementTagMatcher-class.html
doc/html/api/lxml.etree._ElementTree-class.html
doc/html/api/lxml.etree._ElementUnicodeResult-class.html
doc/html/api/lxml.etree._Entity-class.html
doc/html/api/lxml.etree._ErrorLog-class.html
doc/html/api/lxml.etree._FeedParser-class.html
doc/html/api/lxml.etree._IDDict-class.html
doc/html/api/lxml.etree._ListErrorLog-class.html
doc/html/api/lxml.etree._LogEntry-class.html
doc/html/api/lxml.etree._ProcessingInstruction-class.html
doc/html/api/lxml.etree._RotatingErrorLog-class.html
doc/html/api/lxml.etree._SaxParserTarget-class.html
doc/html/api/lxml.etree._TargetParserResult-class.html
doc/html/api/lxml.etree._Validator-class.html
doc/html/api/lxml.etree._XPathEvaluatorBase-class.html
doc/html/api/lxml.etree._XSLTProcessingInstruction-class.html
doc/html/api/lxml.etree._XSLTResultTree-class.html
doc/html/api/lxml.etree.iterparse-class.html
doc/html/api/lxml.etree.iterwalk-class.html
doc/html/api/lxml.etree.xmlfile-class.html
doc/html/api/lxml.html-module.html
doc/html/api/lxml.html-pysrc.html
doc/html/api/lxml.html.CheckboxGroup-class.html
doc/html/api/lxml.html.CheckboxValues-class.html
doc/html/api/lxml.html.ElementSoup-module.html
doc/html/api/lxml.html.ElementSoup-pysrc.html
doc/html/api/lxml.html.FieldsDict-class.html
doc/html/api/lxml.html.FormElement-class.html
doc/html/api/lxml.html.HTMLParser-class.html
doc/html/api/lxml.html.HtmlComment-class.html
doc/html/api/lxml.html.HtmlElement-class.html
doc/html/api/lxml.html.HtmlElementClassLookup-class.html
doc/html/api/lxml.html.HtmlEntity-class.html
doc/html/api/lxml.html.HtmlMixin-class.html
doc/html/api/lxml.html.HtmlProcessingInstruction-class.html
doc/html/api/lxml.html.InputElement-class.html
doc/html/api/lxml.html.InputGetter-class.html
doc/html/api/lxml.html.InputMixin-class.html
doc/html/api/lxml.html.LabelElement-class.html
doc/html/api/lxml.html.MultipleSelectOptions-class.html
doc/html/api/lxml.html.RadioGroup-class.html
doc/html/api/lxml.html.SelectElement-class.html
doc/html/api/lxml.html.TextareaElement-class.html
doc/html/api/lxml.html.XHTMLParser-class.html
doc/html/api/lxml.html._MethodFunc-class.html
doc/html/api/lxml.html.builder-module.html
doc/html/api/lxml.html.builder-pysrc.html
doc/html/api/lxml.html.clean-module.html
doc/html/api/lxml.html.clean-pysrc.html
doc/html/api/lxml.html.clean.Cleaner-class.html
doc/html/api/lxml.html.defs-module.html
doc/html/api/lxml.html.defs-pysrc.html
doc/html/api/lxml.html.diff-module.html
doc/html/api/lxml.html.diff-pysrc.html
doc/html/api/lxml.html.diff.DEL_END-class.html
doc/html/api/lxml.html.diff.DEL_START-class.html
doc/html/api/lxml.html.diff.InsensitiveSequenceMatcher-class.html
doc/html/api/lxml.html.diff.NoDeletes-class.html
doc/html/api/lxml.html.diff.href_token-class.html
doc/html/api/lxml.html.diff.tag_token-class.html
doc/html/api/lxml.html.diff.token-class.html
doc/html/api/lxml.html.formfill-module.html
doc/html/api/lxml.html.formfill-pysrc.html
doc/html/api/lxml.html.formfill.DefaultErrorCreator-class.html
doc/html/api/lxml.html.formfill.FormNotFound-class.html
doc/html/api/lxml.html.html5parser-module.html
doc/html/api/lxml.html.html5parser-pysrc.html
doc/html/api/lxml.html.html5parser.HTMLParser-class.html
doc/html/api/lxml.html.html5parser.XHTMLParser-class.html
doc/html/api/lxml.html.soupparser-module.html
doc/html/api/lxml.html.soupparser-pysrc.html
doc/html/api/lxml.html.usedoctest-module.html
doc/html/api/lxml.html.usedoctest-pysrc.html
doc/html/api/lxml.includes-module.html
doc/html/api/lxml.includes-pysrc.html
doc/html/api/lxml.isoschematron-module.html
doc/html/api/lxml.isoschematron-pysrc.html
doc/html/api/lxml.isoschematron.Schematron-class.html
doc/html/api/lxml.objectify-module.html
doc/html/api/lxml.objectify.BoolElement-class.html
doc/html/api/lxml.objectify.ElementMaker-class.html
doc/html/api/lxml.objectify.FloatElement-class.html
doc/html/api/lxml.objectify.IntElement-class.html
doc/html/api/lxml.objectify.LongElement-class.html
doc/html/api/lxml.objectify.NoneElement-class.html
doc/html/api/lxml.objectify.NumberElement-class.html
doc/html/api/lxml.objectify.ObjectPath-class.html
doc/html/api/lxml.objectify.ObjectifiedDataElement-class.html
doc/html/api/lxml.objectify.ObjectifiedElement-class.html
doc/html/api/lxml.objectify.ObjectifyElementClassLookup-class.html
doc/html/api/lxml.objectify.PyType-class.html
doc/html/api/lxml.objectify.StringElement-class.html
doc/html/api/lxml.pyclasslookup-module.html
doc/html/api/lxml.pyclasslookup-pysrc.html
doc/html/api/lxml.sax-module.html
doc/html/api/lxml.sax-pysrc.html
doc/html/api/lxml.sax.ElementTreeContentHandler-class.html
doc/html/api/lxml.sax.ElementTreeProducer-class.html
doc/html/api/lxml.sax.SaxError-class.html
doc/html/api/lxml.tests-module.html
doc/html/api/lxml.tests-pysrc.html
doc/html/api/lxml.tests.common_imports-module.html
doc/html/api/lxml.tests.common_imports-pysrc.html
doc/html/api/lxml.tests.common_imports.HelperTestCase-class.html
doc/html/api/lxml.tests.common_imports.LargeFileLike-class.html
doc/html/api/lxml.tests.common_imports.LargeFileLikeUnicode-class.html
doc/html/api/lxml.tests.common_imports.SillyFileLike-class.html
doc/html/api/lxml.tests.dummy_http_server-module.html
doc/html/api/lxml.tests.dummy_http_server-pysrc.html
doc/html/api/lxml.tests.dummy_http_server.HTTPRequestCollector-class.html
doc/html/api/lxml.tests.dummy_http_server.WebServer-class.html
doc/html/api/lxml.tests.dummy_http_server._RequestHandler-class.html
doc/html/api/lxml.tests.test_builder-module.html
doc/html/api/lxml.tests.test_builder-pysrc.html
doc/html/api/lxml.tests.test_builder.BuilderTestCase-class.html
doc/html/api/lxml.tests.test_classlookup-module.html
doc/html/api/lxml.tests.test_classlookup-pysrc.html
doc/html/api/lxml.tests.test_classlookup.ClassLookupTestCase-class.html
doc/html/api/lxml.tests.test_classlookup.ProxyTestCase-class.html
doc/html/api/lxml.tests.test_css-module.html
doc/html/api/lxml.tests.test_css-pysrc.html
doc/html/api/lxml.tests.test_css.CSSTestCase-class.html
doc/html/api/lxml.tests.test_dtd-module.html
doc/html/api/lxml.tests.test_dtd-pysrc.html
doc/html/api/lxml.tests.test_dtd.ETreeDtdTestCase-class.html
doc/html/api/lxml.tests.test_elementtree-module.html
doc/html/api/lxml.tests.test_elementtree-pysrc.html
doc/html/api/lxml.tests.test_elementtree.CElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ETreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree.ElementTreeTestCase-class.html
doc/html/api/lxml.tests.test_elementtree._ETreeTestCaseBase-class.html
doc/html/api/lxml.tests.test_errors-module.html
doc/html/api/lxml.tests.test_errors-pysrc.html
doc/html/api/lxml.tests.test_errors.ErrorTestCase-class.html
doc/html/api/lxml.tests.test_etree-module.html
doc/html/api/lxml.tests.test_etree-pysrc.html
doc/html/api/lxml.tests.test_etree.ETreeC14NTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeErrorLogTest-class.html
doc/html/api/lxml.tests.test_etree.ETreeOnlyTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeWriteTestCase-class.html
doc/html/api/lxml.tests.test_etree.ETreeXIncludeTestCase-class.html
doc/html/api/lxml.tests.test_etree.ElementIncludeTestCase-class.html
doc/html/api/lxml.tests.test_etree._XIncludeTestCase-class.html
doc/html/api/lxml.tests.test_htmlparser-module.html
doc/html/api/lxml.tests.test_htmlparser-pysrc.html
doc/html/api/lxml.tests.test_htmlparser.HtmlParserTestCase-class.html
doc/html/api/lxml.tests.test_http_io-module.html
doc/html/api/lxml.tests.test_http_io-pysrc.html
doc/html/api/lxml.tests.test_http_io.HttpIOTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile-module.html
doc/html/api/lxml.tests.test_incremental_xmlfile-pysrc.html
doc/html/api/lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html
doc/html/api/lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html
doc/html/api/lxml.tests.test_io-module.html
doc/html/api/lxml.tests.test_io-pysrc.html
doc/html/api/lxml.tests.test_io.ETreeIOTestCase-class.html
doc/html/api/lxml.tests.test_io.ElementTreeIOTestCase-class.html
doc/html/api/lxml.tests.test_io._IOTestCaseBase-class.html
doc/html/api/lxml.tests.test_isoschematron-module.html
doc/html/api/lxml.tests.test_isoschematron-pysrc.html
doc/html/api/lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html
doc/html/api/lxml.tests.test_nsclasses-module.html
doc/html/api/lxml.tests.test_nsclasses-pysrc.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.default_class-class.html
doc/html/api/lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.maeh_class-class.html
doc/html/api/lxml.tests.test_objectify-module.html
doc/html/api/lxml.tests.test_objectify-pysrc.html
doc/html/api/lxml.tests.test_objectify.ObjectifyTestCase-class.html
doc/html/api/lxml.tests.test_pyclasslookup-module.html
doc/html/api/lxml.tests.test_pyclasslookup-pysrc.html
doc/html/api/lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html
doc/html/api/lxml.tests.test_relaxng-module.html
doc/html/api/lxml.tests.test_relaxng-pysrc.html
doc/html/api/lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html
doc/html/api/lxml.tests.test_sax-module.html
doc/html/api/lxml.tests.test_sax-pysrc.html
doc/html/api/lxml.tests.test_sax.ETreeSaxTestCase-class.html
doc/html/api/lxml.tests.test_schematron-module.html
doc/html/api/lxml.tests.test_schematron-pysrc.html
doc/html/api/lxml.tests.test_schematron.ETreeSchematronTestCase-class.html
doc/html/api/lxml.tests.test_threading-module.html
doc/html/api/lxml.tests.test_threading-pysrc.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html
doc/html/api/lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html
doc/html/api/lxml.tests.test_threading.ThreadingTestCase-class.html
doc/html/api/lxml.tests.test_unicode-module.html
doc/html/api/lxml.tests.test_unicode-pysrc.html
doc/html/api/lxml.tests.test_unicode.UnicodeTestCase-class.html
doc/html/api/lxml.tests.test_xmlschema-module.html
doc/html/api/lxml.tests.test_xmlschema-pysrc.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html
doc/html/api/lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator-module.html
doc/html/api/lxml.tests.test_xpathevaluator-pysrc.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html
doc/html/api/lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html
doc/html/api/lxml.tests.test_xslt-module.html
doc/html/api/lxml.tests.test_xslt-pysrc.html
doc/html/api/lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html
doc/html/api/lxml.tests.test_xslt.ETreeXSLTTestCase-class.html
doc/html/api/lxml.tests.test_xslt.Py3XSLTTestCase-class.html
doc/html/api/lxml.usedoctest-module.html
doc/html/api/lxml.usedoctest-pysrc.html
doc/html/api/mimetools.Message-class.html
doc/html/api/module-tree.html
doc/html/api/str-class.html
doc/html/api/toc-everything.html
doc/html/api/toc-lxml.html.diff-module.html
doc/html/api/toc-lxml.html.html5parser-module.html
doc/html/api/xml.etree.ElementTree-module.html
doc/html/api/xml.etree.ElementTree-pysrc.html
doc/html/api/xml.etree.ElementTree.Element-class.html
doc/html/api/xml.etree.ElementTree.ElementTree-class.html
doc/html/api/xml.etree.ElementTree.ParseError-class.html
doc/html/api/xml.etree.ElementTree.QName-class.html
doc/html/api/xml.etree.ElementTree.TreeBuilder-class.html
doc/html/api/xml.etree.ElementTree.XMLParser-class.html
doc/html/api/xml.etree.ElementTree._IterParseIterator-class.html
doc/html/api/xml.etree.ElementTree._SimpleElementPath-class.html
doc/html/build.html
doc/html/capi.html
doc/html/changes-3.2.3.html [deleted file]
doc/html/changes-3.2.4.html [new file with mode: 0644]
doc/html/compatibility.html
doc/html/credits.html
doc/html/cssselect.html
doc/html/element_classes.html
doc/html/elementsoup.html
doc/html/extensions.html
doc/html/html5parser.html
doc/html/index.html
doc/html/installation.html
doc/html/intro.html
doc/html/lxml-source-howto.html
doc/html/lxmlhtml.html
doc/html/objectify.html
doc/html/parsing.html
doc/html/performance.html
doc/html/resolvers.html
doc/html/sax.html
doc/html/sitemap.html
doc/html/tutorial.html
doc/html/validation.html
doc/html/xpathxslt.html
doc/main.txt
doc/parsing.txt
doc/pdf/pubkey.asc [deleted file]
src/lxml.egg-info/PKG-INFO
src/lxml.egg-info/SOURCES.txt
src/lxml/apihelpers.pxi
src/lxml/classlookup.pxi
src/lxml/docloader.pxi
src/lxml/html/diff.py
src/lxml/html/tests/test_diff.txt
src/lxml/includes/lxml-version.h
src/lxml/includes/xmlerror.pxd
src/lxml/includes/xmlparser.pxd
src/lxml/iterparse.pxi
src/lxml/lxml.etree.c
src/lxml/lxml.etree.h
src/lxml/lxml.etree.pyx
src/lxml/lxml.objectify.c
src/lxml/lxml.objectify.pyx
src/lxml/nsclasses.pxi
src/lxml/saxparser.pxi
src/lxml/serializer.pxi
src/lxml/tests/dummy_http_server.py
src/lxml/tests/test_etree.py
src/lxml/tests/test_io.py
src/lxml/tests/test_xslt.py
src/lxml/xmlerror.pxi
src/lxml/xpath.pxi
src/lxml/xslt.pxi
version.txt

index 63280e2af46a0943a15f0f76737b578a41432faa..6f6a6f002b99c6ea69c7d35a94322f9095dc43a3 100644 (file)
@@ -2,6 +2,30 @@
 lxml changelog
 ==============
 
+3.2.4 (2013-11-07)
+==================
+
+Features added
+--------------
+
+Bugs fixed
+----------
+
+* Memory leak when creating an XPath evaluator in a thread.
+
+* LP#1228881: ``repr(XSLTAccessControl)`` failed in Python 3.
+
+* Raise ``ValueError`` when trying to append an Element to itself or
+  to one of its own descendants.
+
+* LP#1206077: htmldiff discarded whitespace from the output.
+
+* Compressed plain-text serialisation to file-like objects was broken.
+
+Other changes
+-------------
+
+
 3.2.3 (2013-07-28)
 ==================
 
index 13bd1bfae2c23e772eb8fd021ae6548358ce2d11..0b4eb42436197c4fdad6e9490034b63556559b0d 100644 (file)
@@ -62,6 +62,12 @@ to pip::
 
 .. _pip: http://pypi.python.org/pypi/pip
 
+To speed up the build in test environments, e.g. on a continuous
+integration server, disable the C compiler optimisations by setting
+the ``CFLAGS`` environment variable::
+
+  CFLAGS="-O0"  pip install lxml
+
 * For **MS Windows**, recent lxml releases feature community donated
   binary distributions, although you might still want to take a look
   at the related `FAQ entry <FAQ.html#where-are-the-binary-builds>`_.
index 38c3293b5407e667f1387f878ba9e1cf8d692345..b941360d720c1892db37407e302450d757ed0abf 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -85,7 +85,7 @@ pdf: apipdf
        (cd doc/pdf && pdflatex lxmldoc.tex \
                    && pdflatex lxmldoc.tex \
                    && pdflatex lxmldoc.tex)
-       @cp -a doc/pdf/lxmldoc.pdf doc/pdf/lxmldoc-${LXMLVERSION}.pdf
+       @cp doc/pdf/lxmldoc.pdf doc/pdf/lxmldoc-${LXMLVERSION}.pdf
        @echo "PDF available as doc/pdf/lxmldoc-${LXMLVERSION}.pdf"
 
 # Two pdflatex runs are needed to build the correct Table of contents.
index 297dd293ac7bc6f75e3cd1b486712db56a3417b1..fd88f4e3bb7db07027b76b5c7ef0a19e3fde3c41 100644 (file)
--- a/PKG-INFO
+++ b/PKG-INFO
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: lxml
-Version: 3.2.3
+Version: 3.2.4
 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
 Home-page: http://lxml.de/
 Author: lxml dev team
 Author-email: lxml-dev@lxml.de
 License: UNKNOWN
-Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.3.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.4.tar.gz
 Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries.  It
         provides safe and convenient access to these libraries using the ElementTree
         API.
@@ -37,13 +37,28 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr
         as soon as a maintenance branch has been established.  Note that this
         requires Cython to be installed at an appropriate version for the build.
         
-        3.2.3 (2013-07-28)
+        3.2.4 (2013-11-07)
         ==================
         
+        Features added
+        --------------
+        
         Bugs fixed
         ----------
         
-        * Fix support for Python 2.4 which was lost in 3.2.2.
+        * Memory leak when creating an XPath evaluator in a thread.
+        
+        * LP#1228881: ``repr(XSLTAccessControl)`` failed in Python 3.
+        
+        * Raise ``ValueError`` when trying to append an Element to itself or
+          to one of its own descendants.
+        
+        * LP#1206077: htmldiff discarded whitespace from the output.
+        
+        * Compressed plain-text serialisation to file-like objects was broken.
+        
+        Other changes
+        -------------
         
         
         
index 4d12d9acf2dcf20cf78d1b30d8c1728a3dc02a43..7618e03bd86c9f9e8597749d9b167ad939853154 100644 (file)
@@ -95,6 +95,13 @@ or, in Unix-like environments::
 
   make inplace
 
+To speed up the build in test environments (e.g. on a continuous
+integration server), set the ``CFLAGS`` environment variable to
+disable C compiler optimisations (e.g. "-O0" for gcc, that's
+minus-oh-zero), for example::
+
+  CFLAGS="-O0"  make inplace
+
 If you get errors about missing header files (e.g. ``Python.h`` or
 ``libxml/xmlversion.h``) then you need to make sure the development
 packages of Python, libxml2 and libxslt are properly installed.  On
@@ -124,9 +131,7 @@ on your Python module search path (PYTHONPATH) and then import
   >>>
 
 To make sure everything gets recompiled cleanly after changes, you can
-run ``make clean`` or delete the file ``src/lxml/etree.c``.  Distutils
-do not automatically pick up changes that affect files other than the
-main file ``src/lxml/etree.pyx``.
+run ``make clean`` or delete the file ``src/lxml/etree.c``.
 
 
 Running the tests and reporting errors
index 5514e98114f0ebaa5fe106ccefa2609ee0eea950..f3ef90b4516a89e509583a3177bbf23b689f9b6d 100644 (file)
@@ -10,7 +10,7 @@
 </head>
 <body>
 <div class="document" id="lxml-faq-frequently-asked-questions">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu current" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml FAQ - Frequently Asked Questions</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu current" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml FAQ - Frequently Asked Questions</h1>
 
 <p>Frequently asked questions on lxml.  See also the notes on <a class="reference external" href="compatibility.html">compatibility</a> to
 <a class="reference external" href="http://effbot.org/zone/element-index.htm">ElementTree</a>.</p>
@@ -915,7 +915,7 @@ map it to your namespace.  See also the question above.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 595bdf13065f463de80a9b361c0289aafc56cd4e..459f39208918bbfae4c505fb5257fa26e0935377 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="apis-specific-to-lxml-etree">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu current" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">APIs specific to lxml.etree</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu current" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">APIs specific to lxml.etree</h1>
 
 <p>lxml.etree tries to follow established APIs wherever possible.  Sometimes,
 however, the need to expose a feature in an easy way led to the invention of a
@@ -450,7 +450,7 @@ example:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 9aa20373b28343c29e0b2d5d8c81361188fa0a37..99af9d6caf6e2643b18146b85abceb39585bd132 100644 (file)
@@ -426,7 +426,7 @@ even via super()).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 73d61c3523746eb6c605dbe6155fdf15e1aee0a2..080248277fdbba905f7e4b8c011e4b360b76217e 100644 (file)
@@ -279,6 +279,7 @@ lxml.html.diff.compress_merge_back  lxml.html.diff-module.html#compress_merge_bac
 lxml.html.diff.serialize_html_fragment lxml.html.diff-module.html#serialize_html_fragment
 lxml.html.diff.split_delete    lxml.html.diff-module.html#split_delete
 lxml.html.diff.split_unbalanced        lxml.html.diff-module.html#split_unbalanced
+lxml.html.diff.tokenize_annotated      lxml.html.diff-module.html#tokenize_annotated
 lxml.html.diff.is_word lxml.html.diff-module.html#is_word
 lxml.html.diff._contains_block_level_tag       lxml.html.diff-module.html#_contains_block_level_tag
 lxml.html.diff.empty_tags      lxml.html.diff-module.html#empty_tags
@@ -306,9 +307,10 @@ lxml.html.diff.fixup_ins_del_tags  lxml.html.diff-module.html#fixup_ins_del_tags
 lxml.html.diff.default_markup  lxml.html.diff-module.html#default_markup
 lxml.html.diff.tokenize        lxml.html.diff-module.html#tokenize
 lxml.html.diff.cleanup_html    lxml.html.diff-module.html#cleanup_html
-lxml.html.diff.tokenize_annotated      lxml.html.diff-module.html#tokenize_annotated
+lxml.html.diff.split_words_re  lxml.html.diff-module.html#split_words_re
 lxml.html.diff.parse_html      lxml.html.diff-module.html#parse_html
 lxml.html.diff.merge_delete    lxml.html.diff-module.html#merge_delete
+lxml.html.diff.split_trailing_whitespace       lxml.html.diff-module.html#split_trailing_whitespace
 lxml.html.diff._ins_del_re     lxml.html.diff-module.html#_ins_del_re
 lxml.html.diff.locate_unbalanced_end   lxml.html.diff-module.html#locate_unbalanced_end
 lxml.html.diff.start_tag       lxml.html.diff-module.html#start_tag
@@ -343,15 +345,15 @@ lxml.html.formfill._tag   lxml.html.formfill-module.html#_tag
 lxml.html.formfill._find_form  lxml.html.formfill-module.html#_find_form
 lxml.html.html5parser  lxml.html.html5parser-module.html
 lxml.html.html5parser.parse    lxml.html.html5parser-module.html#parse
+lxml.html.html5parser.html_parser      lxml.html.html5parser-module.html#html_parser
+lxml.html.html5parser.__package__      lxml.html.html5parser-module.html#__package__
+lxml.html.html5parser.xhtml_parser     lxml.html.html5parser-module.html#xhtml_parser
 lxml.html.html5parser.fragment_fromstring      lxml.html.html5parser-module.html#fragment_fromstring
 lxml.html.html5parser.fragments_fromstring     lxml.html.html5parser-module.html#fragments_fromstring
-lxml.html.html5parser.fromstring       lxml.html.html5parser-module.html#fromstring
-lxml.html.html5parser._strings lxml.html.html5parser-module.html#_strings
-lxml.html.html5parser._looks_like_url  lxml.html.html5parser-module.html#_looks_like_url
 lxml.html.html5parser.document_fromstring      lxml.html.html5parser-module.html#document_fromstring
+lxml.html.html5parser.fromstring       lxml.html.html5parser-module.html#fromstring
 lxml.html.html5parser._find_tag        lxml.html.html5parser-module.html#_find_tag
-lxml.html.html5parser.xhtml_parser     lxml.html.html5parser-module.html#xhtml_parser
-lxml.html.html5parser.html_parser      lxml.html.html5parser-module.html#html_parser
+lxml.html.html5parser._looks_like_url  lxml.html.html5parser-module.html#_looks_like_url
 lxml.html.soupparser   lxml.html.soupparser-module.html
 lxml.html.soupparser._convert_tree     lxml.html.soupparser-module.html#_convert_tree
 lxml.html.soupparser._convert_children lxml.html.soupparser-module.html#_convert_children
@@ -1029,8 +1031,10 @@ lxml.etree.ErrorDomains.CHECK    lxml.etree.ErrorDomains-class.html#CHECK
 lxml.etree.ErrorDomains.FTP    lxml.etree.ErrorDomains-class.html#FTP
 lxml.etree.ErrorDomains._names lxml.etree.ErrorDomains-class.html#_names
 lxml.etree.ErrorDomains.XSLT   lxml.etree.ErrorDomains-class.html#XSLT
+lxml.etree.ErrorDomains.BUFFER lxml.etree.ErrorDomains-class.html#BUFFER
 lxml.etree.ErrorDomains.PARSER lxml.etree.ErrorDomains-class.html#PARSER
 lxml.etree.ErrorDomains.NAMESPACE      lxml.etree.ErrorDomains-class.html#NAMESPACE
+lxml.etree.ErrorDomains.URI    lxml.etree.ErrorDomains-class.html#URI
 lxml.etree.ErrorDomains.MODULE lxml.etree.ErrorDomains-class.html#MODULE
 lxml.etree.ErrorDomains.IO     lxml.etree.ErrorDomains-class.html#IO
 lxml.etree.ErrorDomains.REGEXP lxml.etree.ErrorDomains-class.html#REGEXP
@@ -1171,7 +1175,7 @@ lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_4_1 lxml.etree.ErrorTypes-class.html#SCHEM
 lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_4_3      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_3
 lxml.etree.ErrorTypes.DTD_NO_DOC       lxml.etree.ErrorTypes-class.html#DTD_NO_DOC
 lxml.etree.ErrorTypes.RNGP_TYPE_NOT_FOUND      lxml.etree.ErrorTypes-class.html#RNGP_TYPE_NOT_FOUND
-lxml.etree.ErrorTypes.DTD_NO_ROOT      lxml.etree.ErrorTypes-class.html#DTD_NO_ROOT
+lxml.etree.ErrorTypes.RNGP_EXTERNALREF_RECURSE lxml.etree.ErrorTypes-class.html#RNGP_EXTERNALREF_RECURSE
 lxml.etree.ErrorTypes.SCHEMAP_UNKNOWN_ATTRGRP_CHILD    lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRGRP_CHILD
 lxml.etree.ErrorTypes.IO_EACCES        lxml.etree.ErrorTypes-class.html#IO_EACCES
 lxml.etree.ErrorTypes._names   lxml.etree.ErrorTypes-class.html#_names
@@ -1216,7 +1220,7 @@ lxml.etree.ErrorTypes.ERR_NOTATION_NOT_FINISHED   lxml.etree.ErrorTypes-class.html
 lxml.etree.ErrorTypes.RNGP_ATTRIBUTE_CHILDREN  lxml.etree.ErrorTypes-class.html#RNGP_ATTRIBUTE_CHILDREN
 lxml.etree.ErrorTypes.RNGP_PAT_START_DATA      lxml.etree.ErrorTypes-class.html#RNGP_PAT_START_DATA
 lxml.etree.ErrorTypes.RNGP_ELEMENT_NAME        lxml.etree.ErrorTypes-class.html#RNGP_ELEMENT_NAME
-lxml.etree.ErrorTypes.XPATH_UNKNOWN_FUNC_ERROR lxml.etree.ErrorTypes-class.html#XPATH_UNKNOWN_FUNC_ERROR
+lxml.etree.ErrorTypes.RNGP_INTERLEAVE_EMPTY    lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_EMPTY
 lxml.etree.ErrorTypes.RNGP_PAT_DATA_EXCEPT_INTERLEAVE  lxml.etree.ErrorTypes-class.html#RNGP_PAT_DATA_EXCEPT_INTERLEAVE
 lxml.etree.ErrorTypes.ERR_VERSION_MISSING      lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISSING
 lxml.etree.ErrorTypes.RNGP_DEFINE_MISSING      lxml.etree.ErrorTypes-class.html#RNGP_DEFINE_MISSING
@@ -1225,7 +1229,6 @@ lxml.etree.ErrorTypes.XINCLUDE_TEXT_DOCUMENT      lxml.etree.ErrorTypes-class.html#XI
 lxml.etree.ErrorTypes.DTD_NO_ELEM_NAME lxml.etree.ErrorTypes-class.html#DTD_NO_ELEM_NAME
 lxml.etree.ErrorTypes.ERR_UNSUPPORTED_ENCODING lxml.etree.ErrorTypes-class.html#ERR_UNSUPPORTED_ENCODING
 lxml.etree.ErrorTypes.ERR_ENTITY_NOT_STARTED   lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_STARTED
-lxml.etree.ErrorTypes.SCHEMAV_ATTRUNKNOWN      lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRUNKNOWN
 lxml.etree.ErrorTypes.DTD_ELEM_DEFAULT_NAMESPACE       lxml.etree.ErrorTypes-class.html#DTD_ELEM_DEFAULT_NAMESPACE
 lxml.etree.ErrorTypes.IO_EDOM  lxml.etree.ErrorTypes-class.html#IO_EDOM
 lxml.etree.ErrorTypes.ERR_NO_MEMORY    lxml.etree.ErrorTypes-class.html#ERR_NO_MEMORY
@@ -1296,7 +1299,7 @@ lxml.etree.ErrorTypes.RNGP_URI_NOT_ABSOLUTE       lxml.etree.ErrorTypes-class.html#RNG
 lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_3_1   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_1
 lxml.etree.ErrorTypes.XPATH_VARIABLE_REF_ERROR lxml.etree.ErrorTypes-class.html#XPATH_VARIABLE_REF_ERROR
 lxml.etree.ErrorTypes.SCHEMAP_SRC_IMPORT_3_2   lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_2
-lxml.etree.ErrorTypes.RNGP_INTERLEAVE_EMPTY    lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_EMPTY
+lxml.etree.ErrorTypes.XPATH_UNKNOWN_FUNC_ERROR lxml.etree.ErrorTypes-class.html#XPATH_UNKNOWN_FUNC_ERROR
 lxml.etree.ErrorTypes.C14N_UNKNOW_NODE lxml.etree.ErrorTypes-class.html#C14N_UNKNOW_NODE
 lxml.etree.ErrorTypes.SCHEMAP_INVALID_MAXOCCURS        lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_MAXOCCURS
 lxml.etree.ErrorTypes.SCHEMAV_NOTTOPLEVEL      lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTTOPLEVEL
@@ -1329,7 +1332,7 @@ lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_4     lxml.etree.ErrorTypes-class.html#S
 lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_2  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_2
 lxml.etree.ErrorTypes.SCHEMAP_SRC_ATTRIBUTE_1  lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_1
 lxml.etree.ErrorTypes.SCHEMAP_INCLUDE_SCHEMA_NO_URI    lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NO_URI
-lxml.etree.ErrorTypes.CHECK_X  lxml.etree.ErrorTypes-class.html#CHECK_X
+lxml.etree.ErrorTypes.SCHEMAV_ATTRUNKNOWN      lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRUNKNOWN
 lxml.etree.ErrorTypes.SCHEMAP_COS_CT_EXTENDS_1_2       lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_2
 lxml.etree.ErrorTypes.SCHEMAP_COS_CT_EXTENDS_1_3       lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_3
 lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_3_1      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_1
@@ -1490,6 +1493,7 @@ lxml.etree.ErrorTypes.ERR_XMLDECL_NOT_STARTED     lxml.etree.ErrorTypes-class.html#E
 lxml.etree.ErrorTypes.XINCLUDE_NO_HREF lxml.etree.ErrorTypes-class.html#XINCLUDE_NO_HREF
 lxml.etree.ErrorTypes.SCHEMAV_CVC_ELT_5_1_1    lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_1
 lxml.etree.ErrorTypes.CHECK_FOUND_ATTRIBUTE    lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ATTRIBUTE
+lxml.etree.ErrorTypes.ERR_USER_STOP    lxml.etree.ErrorTypes-class.html#ERR_USER_STOP
 lxml.etree.ErrorTypes.SCHEMAP_SIMPLETYPE_NONAME        lxml.etree.ErrorTypes-class.html#SCHEMAP_SIMPLETYPE_NONAME
 lxml.etree.ErrorTypes.SCHEMAP_SRC_INCLUDE      lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_INCLUDE
 lxml.etree.ErrorTypes.RNGP_INTERLEAVE_ADD      lxml.etree.ErrorTypes-class.html#RNGP_INTERLEAVE_ADD
@@ -1508,7 +1512,6 @@ lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_5    lxml.etree.ErrorTypes-cla
 lxml.etree.ErrorTypes.SCHEMAP_COS_ST_RESTRICTS_3_3_2_4 lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_4
 lxml.etree.ErrorTypes.ERR_UNKNOWN_ENCODING     lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_ENCODING
 lxml.etree.ErrorTypes.HTML_UNKNOWN_TAG lxml.etree.ErrorTypes-class.html#HTML_UNKNOWN_TAG
-lxml.etree.ErrorTypes.CHECK_   lxml.etree.ErrorTypes-class.html#CHECK_
 lxml.etree.ErrorTypes.SCHEMAP_INVALID_REF_AND_SUBTYPE  lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_REF_AND_SUBTYPE
 lxml.etree.ErrorTypes.DTD_INVALID_DEFAULT      lxml.etree.ErrorTypes-class.html#DTD_INVALID_DEFAULT
 lxml.etree.ErrorTypes.C14N_RELATIVE_NAMESPACE  lxml.etree.ErrorTypes-class.html#C14N_RELATIVE_NAMESPACE
@@ -1517,6 +1520,7 @@ lxml.etree.ErrorTypes.CHECK_NO_DOC        lxml.etree.ErrorTypes-class.html#CHECK_NO_DOC
 lxml.etree.ErrorTypes.IO_EFBIG lxml.etree.ErrorTypes-class.html#IO_EFBIG
 lxml.etree.ErrorTypes.SCHEMAP_INVALID_WHITE_SPACE      lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_WHITE_SPACE
 lxml.etree.ErrorTypes.RNGP_NSNAME_ATTR_ANCESTOR        lxml.etree.ErrorTypes-class.html#RNGP_NSNAME_ATTR_ANCESTOR
+lxml.etree.ErrorTypes.DTD_NO_ROOT      lxml.etree.ErrorTypes-class.html#DTD_NO_ROOT
 lxml.etree.ErrorTypes.SCHEMAP_S4S_ELEM_NOT_ALLOWED     lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_NOT_ALLOWED
 lxml.etree.ErrorTypes.RNGP_START_CHOICE_AND_INTERLEAVE lxml.etree.ErrorTypes-class.html#RNGP_START_CHOICE_AND_INTERLEAVE
 lxml.etree.ErrorTypes.DTD_UNKNOWN_NOTATION     lxml.etree.ErrorTypes-class.html#DTD_UNKNOWN_NOTATION
@@ -1683,6 +1687,7 @@ lxml.etree.ErrorTypes.SCHEMAV_CVC_TYPE_1  lxml.etree.ErrorTypes-class.html#SCHEMA
 lxml.etree.ErrorTypes.IO_ENXIO lxml.etree.ErrorTypes-class.html#IO_ENXIO
 lxml.etree.ErrorTypes.SCHEMAV_CVC_PATTERN_VALID        lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_PATTERN_VALID
 lxml.etree.ErrorTypes.ERR_ATTRIBUTE_WITHOUT_VALUE      lxml.etree.ErrorTypes-class.html#ERR_ATTRIBUTE_WITHOUT_VALUE
+lxml.etree.ErrorTypes.BUF_OVERFLOW     lxml.etree.ErrorTypes-class.html#BUF_OVERFLOW
 lxml.etree.ErrorTypes.SCHEMAP_INCLUDE_SCHEMA_NOT_URI   lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NOT_URI
 lxml.etree.ErrorTypes.SCHEMAP_REDEFINED_ATTRGROUP      lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ATTRGROUP
 lxml.etree.ErrorTypes.SCHEMAV_INVALIDATTR      lxml.etree.ErrorTypes-class.html#SCHEMAV_INVALIDATTR
@@ -1755,7 +1760,7 @@ lxml.etree.ErrorTypes.SCHEMAV_CVC_LENGTH_VALID    lxml.etree.ErrorTypes-class.html#
 lxml.etree.ErrorTypes.SCHEMAV_CVC_MINLENGTH_VALID      lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MINLENGTH_VALID
 lxml.etree.ErrorTypes.SCHEMAP_COS_VALID_DEFAULT_2_1    lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_1
 lxml.etree.ErrorTypes.XINCLUDE_FALLBACK_NOT_IN_INCLUDE lxml.etree.ErrorTypes-class.html#XINCLUDE_FALLBACK_NOT_IN_INCLUDE
-lxml.etree.ErrorTypes.RNGP_EXTERNALREF_RECURSE lxml.etree.ErrorTypes-class.html#RNGP_EXTERNALREF_RECURSE
+lxml.etree.ErrorTypes.ERR_NAME_TOO_LONG        lxml.etree.ErrorTypes-class.html#ERR_NAME_TOO_LONG
 lxml.etree.ErrorTypes.ERR_TAG_NAME_MISMATCH    lxml.etree.ErrorTypes-class.html#ERR_TAG_NAME_MISMATCH
 lxml.etree.ErrorTypes.SCHEMAV_CVC_DATATYPE_VALID_1_2_1 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_1
 lxml.etree.ErrorTypes.SCHEMAV_CVC_DATATYPE_VALID_1_2_2 lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_2
@@ -5712,7 +5717,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious  lxml.tests.test_etree.E
 lxml.tests.test_etree.ETreeOnlyTestCase.test_pi_pseudo_attributes_get  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get
 lxml.tests.test_etree.ETreeOnlyTestCase.test_html_base_tag     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag
 lxml.tests.test_etree.ETreeOnlyTestCase.test_xml_base_attribute        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute
-lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_standalone       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone
+lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext
 lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_root_comment      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment
 lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_remove_comments lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments
@@ -5729,7 +5734,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_element   lxml.tes
 lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_elements_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns
 lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_tags_and_remove     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove
 lxml.tests.test_etree.ETreeOnlyTestCase.test_append_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error
-lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext   lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext
+lxml.tests.test_etree.ETreeOnlyTestCase.test_addnext_noops     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops
 lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error
 lxml.tests.test_etree.ETreeOnlyTestCase.test_sourceline_iterparse_start        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterwalk_getiterator      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator
@@ -5753,11 +5758,12 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_findall_ns lxml.tests.test_etree.ET
 lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_immutable lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable
 lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_set_invalid     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid
 lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_nsmap  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap
-lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty
+lxml.tests.test_etree.ETreeOnlyTestCase.test_append_recursive_error    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_recursive_error
 lxml.tests.test_etree.ETreeOnlyTestCase.test_pi_parse  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse
 lxml.tests.test_etree.ETreeOnlyTestCase.test_XML_set_base_url_docinfo  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo
 lxml.tests.test_etree.ETreeOnlyTestCase.test_setitem_assert    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert
 lxml.tests.test_etree.ETreeOnlyTestCase.test_setslice_step_overrun     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun
+lxml.tests.test_etree.ETreeOnlyTestCase.test_addprevious_noops lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops
 lxml.tests.test_etree.ETreeOnlyTestCase.test_itersiblings      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_base_url_docinfo    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo
 lxml.tests.test_etree.ETreeOnlyTestCase.test_replace_new       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new
@@ -5840,11 +5846,12 @@ lxml.tests.common_imports.HelperTestCase._rootstring    lxml.tests.common_imports.H
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tounicode_pretty  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_fromstring_exception        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception
 lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_system    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system
-lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_attributes_ns       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns
+lxml.tests.test_etree.ETreeOnlyTestCase.test_comment_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_remove_pis  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_encoding_error  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all
 lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_public    lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public
+lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_standalone       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone
 lxml.tests.test_etree.ETreeOnlyTestCase.test_qname_colon       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_cdata       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata
 lxml.tests.test_etree.ETreeOnlyTestCase.test_resolve_empty     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty
@@ -5871,10 +5878,11 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_docinfo_name_only  lxml.tests.test_e
 lxml.tests.test_etree.ETreeOnlyTestCase.test_XML_base_url_docinfo      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo
 lxml.tests.test_etree.ETreeOnlyTestCase.test_iterparse_comments        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments
 lxml.tests.test_etree.ETreeOnlyTestCase.test_tostring_with_tail        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail
-lxml.tests.test_etree.ETreeOnlyTestCase.test_prefix_default_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns
+lxml.tests.test_etree.ETreeOnlyTestCase.test_element_refcycle  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle
+lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_append     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append
 lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_namespace      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parse_remove_comments     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments
-lxml.tests.test_etree.ETreeOnlyTestCase.test_entity_append     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append
+lxml.tests.test_etree.ETreeOnlyTestCase.test_prefix_default_ns lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns
 lxml.tests.test_etree.ETreeOnlyTestCase.test_findall_syntax_error      lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error
 lxml.tests.test_etree.ETreeOnlyTestCase.test_getiterator_filter_multiple       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple
 lxml.tests.test_etree.ETreeOnlyTestCase.test_subelement_name_space     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space
@@ -5915,6 +5923,7 @@ lxml.tests.test_etree.ETreeOnlyTestCase.test_html_base    lxml.tests.test_etree.ETr
 lxml.tests.test_etree.ETreeOnlyTestCase.test_parser_target_comment     lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment
 lxml.tests.test_etree.ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge  lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge
 lxml.tests.test_etree.ETreeOnlyTestCase.test_pi        lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi
+lxml.tests.test_etree.ETreeOnlyTestCase.test_strip_attributes_ns       lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns
 lxml.tests.test_etree.ETreeWriteTestCase       lxml.tests.test_etree.ETreeWriteTestCase-class.html
 lxml.tests.test_etree.ETreeWriteTestCase.test_write_file_gzipfile_parse        lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse
 lxml.tests.common_imports.HelperTestCase.tearDown      lxml.tests.common_imports.HelperTestCase-class.html#tearDown
@@ -6140,6 +6149,7 @@ lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase.test_pi  lxml.tests.test
 lxml.tests.test_io.ETreeIOTestCase     lxml.tests.test_io.ETreeIOTestCase-class.html
 lxml.tests.test_io._IOTestCaseBase.test_class_parse_fileobject lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject
 lxml.tests.test_io._IOTestCaseBase.test_module_parse_gzipobject        lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_gzipobject
+lxml.tests.test_io.ETreeIOTestCase.test_write_compressed_text  lxml.tests.test_io.ETreeIOTestCase-class.html#test_write_compressed_text
 lxml.tests.test_io.ETreeIOTestCase.etree       lxml.etree-module.html
 lxml.tests.test_io._IOTestCaseBase.test_class_parse_filename   lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename
 lxml.tests.test_io._IOTestCaseBase.test_write_invalid_filename lxml.tests.test_io._IOTestCaseBase-class.html#test_write_invalid_filename
@@ -6964,6 +6974,7 @@ lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_repeat_transform lxml.tests.tes
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_set_replace        lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_pi_get_all    lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_html_output   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output
+lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_access_control_repr   lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_parameter_invalid     lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_invalid
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_shortcut      lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_shortcut
 lxml.tests.test_xslt.ETreeXSLTTestCase.test_xslt_document_parse_allow  lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow
index eb35c4cf364c5a82971080b7ff578f8059766173..4efcf8c7552e2067f14ba0d958231d50e25b4228 100644 (file)
     </li>
     <li> <strong class="uidlink"><a href="lxml.html.diff.DEL_START-class.html" onclick="show_private();">lxml.html.diff.DEL_START</a></strong>
     </li>
-    <li> <strong class="uidlink">html5lib.HTMLParser</strong>
-    </li>
     <li> <strong class="uidlink"><a href="lxml.tests.common_imports.LargeFileLike-class.html">lxml.tests.common_imports.LargeFileLike</a></strong>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">lxml.tests.common_imports.LargeFileLikeUnicode</a></strong>
@@ -402,9 +400,13 @@ override attributes in a subclass, or set them in the constructor.</em>
     </li>
     <li> <strong class="uidlink">_abcoll.Container</strong>
     <ul>
-    <li> <strong class="uidlink">_abcoll.Mapping</strong>
+    <li> <strong class="uidlink">_abcoll.Mapping</strong>:
+      <em class="summary">A Mapping is a generic container for associating key/value
+pairs.</em>
     <ul>
-    <li> <strong class="uidlink">_abcoll.MutableMapping</strong>
+    <li> <strong class="uidlink">_abcoll.MutableMapping</strong>:
+      <em class="summary">A MutableMapping is a generic container for associating
+key/value pairs.</em>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.html.FieldsDict-class.html">lxml.html.FieldsDict</a></strong>
     </li>
@@ -516,6 +518,15 @@ Iterates over the text content of a subtree.</em>
     </li>
     </ul>
     </li>
+    <li> <strong class="uidlink">html5lib.html5parser.HTMLParser</strong>:
+      <em class="summary">HTML parser. Generates a tree structure from a stream of (possibly
+malformed) HTML</em>
+    <ul>
+    <li> <strong class="uidlink"><a href="lxml.html.html5parser.HTMLParser-class.html">lxml.html.html5parser.HTMLParser</a></strong>:
+      <em class="summary">An html5lib HTML parser with lxml as tree.</em>
+    </li>
+    </ul>
+    </li>
     <li> <strong class="uidlink"><a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">lxml.tests.dummy_http_server.HTTPRequestCollector</a></strong>
     </li>
     <li> <strong class="uidlink"><a href="lxml.html.HtmlMixin-class.html">lxml.html.HtmlMixin</a></strong>
@@ -568,9 +579,13 @@ get/set the value with <tt class="rst-rst-docutils literal rst-docutils literal"
     </li>
     <li> <strong class="uidlink">_abcoll.Iterable</strong>
     <ul>
-    <li> <strong class="uidlink">_abcoll.Mapping</strong>
+    <li> <strong class="uidlink">_abcoll.Mapping</strong>:
+      <em class="summary">A Mapping is a generic container for associating key/value
+pairs.</em>
     <ul>
-    <li> <strong class="uidlink">_abcoll.MutableMapping</strong>
+    <li> <strong class="uidlink">_abcoll.MutableMapping</strong>:
+      <em class="summary">A MutableMapping is a generic container for associating
+key/value pairs.</em>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.html.FieldsDict-class.html">lxml.html.FieldsDict</a></strong>
     </li>
@@ -619,9 +634,13 @@ checkboxes with the same name.</em>
     </li>
     <li> <strong class="uidlink">_abcoll.Sized</strong>
     <ul>
-    <li> <strong class="uidlink">_abcoll.Mapping</strong>
+    <li> <strong class="uidlink">_abcoll.Mapping</strong>:
+      <em class="summary">A Mapping is a generic container for associating key/value
+pairs.</em>
     <ul>
-    <li> <strong class="uidlink">_abcoll.MutableMapping</strong>
+    <li> <strong class="uidlink">_abcoll.MutableMapping</strong>:
+      <em class="summary">A MutableMapping is a generic container for associating
+key/value pairs.</em>
     <ul>
     <li> <strong class="uidlink"><a href="lxml.html.FieldsDict-class.html">lxml.html.FieldsDict</a></strong>
     </li>
@@ -1195,7 +1214,7 @@ type(name, bases, dict) -&gt; a new type</em>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5d246c9097ce8268333b88564e42b731d0fd4e12..1a9c0d5e065b13370eca0399867eea5e2473e825 100644 (file)
@@ -194,7 +194,7 @@ You can just use ``except SelectorError:`` when calling
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e8997f84a1530f97aa2a52efe3a470dd7737b8ba..63b876a4972a1a70238f848d292503ce60336367 100644 (file)
@@ -201,7 +201,7 @@ Parsing a selector that does not match the grammar.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 41ccaac0e4c511969d4e499ebc3930aad412361d..1424df023dd1f66b548b34ffa874b656c406f536 100644 (file)
@@ -193,7 +193,7 @@ Unknown or unsupported selector (eg. pseudo-class).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 90af02d42d5ee284605ab4a7a2b7ed8995d9b9fd..8ca6cd899cb7ddc07ab014b55f40ada60bec9696 100644 (file)
@@ -379,7 +379,7 @@ to a single parent.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cc1661b25b82603db6b3d16c8e46b31a072424dc..3c61e8f75a52c0baa6386366675b192c5c253310 100644 (file)
@@ -145,7 +145,7 @@ with older versions of lxml or ElementTree.</li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e9f2bb5673d412074adeb7e5aee6668fc21aee83..aa62eaac00e7bae1ecdffa43fb23903b106c1229 100644 (file)
@@ -280,7 +280,7 @@ Assertion failed.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f9420f82dcfa73c3766ea244fce84364a7db5a83..1aad1de3d7657f2cb4b19d28bfe94334af2dbf90 100644 (file)
@@ -256,7 +256,7 @@ page was last updated. </p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 70ea8c779c03bbe25fb6fca6007c34c2ba294444..06339e31baf180f73e7e61b4bf2d0496e11f089a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a6de2df5d03e70bca0de81ca7c75617cae6b8b89..c5594732afb684d97aab2b1853cf1c3f3721199a 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#B">B</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#block_level_container_tags">block_level_container_tags</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#block_level_tags">block_level_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BR">BR</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#BUF_OVERFLOW">BUF_OVERFLOW</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#base">base</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#block_level_tags">block_level_tags</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#broken_html_str">broken_html_str</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.defs-module.html#block_tags">block_tags</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#BUFFER">BUFFER</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BASE">BASE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.defs-module.html#block_tags">block_tags</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BLOCKQUOTE">BLOCKQUOTE</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server-module.html#build_web_server">build_web_server()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#base_url">base_url</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BLOCKQUOTE">BLOCKQUOTE</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html#bluff">bluff()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html">bluff_class</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.builder-module.html">builder</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BASEFONT">BASEFONT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html#bluff">bluff()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html">bluff_class</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html">bluff_class</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html">builder</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#basestring">basestring</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase.bluff_class-class.html">bluff_class</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#body">body</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#basestring">basestring</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#body">body</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BODY">BODY</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#buildNodes">buildNodes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BDO">BDO</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BODY">BODY</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#booleanTest">booleanTest()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BUTTON">BUTTON</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BIG">BIG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#booleanTest">booleanTest()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html">BoolElement</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html">BytesIOXmlFileTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#block_inside">block_inside</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html">BoolElement</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.builder-module.html#BR">BR</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#block_level_container_tags">block_level_container_tags</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#broken_html_str">broken_html_str</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index">&nbsp;</td>
 </tr>
 </table>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4f631794007c6aaab4294e243877ba211171332d..b52aba1bee78214e30778602041c4bb3d9fab8fb 100644 (file)
 <span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_">CHECK_</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_X">CHECK_X</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.PyErrorLog-class.html#copy">copy()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
-</tr>
-<tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_ENTITY_TYPE">CHECK_ENTITY_TYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#checkable">checkable</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#copy">copy()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.PyErrorLog-class.html#copy">copy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ATTRIBUTE">CHECK_FOUND_ATTRIBUTE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#copy">copy()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#copy">copy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_CDATA">CHECK_FOUND_CDATA</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#copy">copy()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#copy">copy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_COMMENT">CHECK_FOUND_COMMENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#checked">checked</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#copy">copy()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#copy">copy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_DOCTYPE">CHECK_FOUND_DOCTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#CITE">CITE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#copy">copy()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#copy">copy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ELEMENT">CHECK_FOUND_ELEMENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#CLASS">CLASS()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#copy_annotations">copy_annotations()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#copy">copy()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ENTITY">CHECK_FOUND_ENTITY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#countchildren">countchildren()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#copy_annotations">copy_annotations()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_ENTITYREF">CHECK_FOUND_ENTITYREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html">clean</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect-module.html">cssselect</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#countchildren">countchildren()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_FRAGMENT">CHECK_FOUND_FRAGMENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#clean">clean</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#cssselect">cssselect()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.cssselect-module.html">cssselect</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_NOTATION">CHECK_FOUND_NOTATION</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#clean_html">clean_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#cssselect">cssselect()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_PI">CHECK_FOUND_PI</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#clean_html">clean_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_FOUND_TEXT">CHECK_FOUND_TEXT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html">Cleaner</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.CustomElementClassLookup-class.html">CustomElementClassLookup</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_NAME_NOT_NULL">CHECK_NAME_NOT_NULL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#cleanup_delete">cleanup_delete()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index"><a href="lxml.etree.CustomElementClassLookup-class.html">CustomElementClassLookup</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#CHECK_NO_DICT">CHECK_NO_DICT</a><br />
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 72a0b0404cc447172a1c7f8c5da9dcadb84e3ca4..82da26fbd93487145e90d460f829e89f5b2f0381 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5a3f271678dc8260f1979433bc739cbaaf0b1799..64ddddf4d9b8c2ffdc15b94c69764b1fae681dbb 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.builder-module.html#E">E</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.builder-module.html">lxml.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENCODING_NAME">ERR_ENCODING_NAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_BOUNDARY">ERR_ENTITY_BOUNDARY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_ENCODING">ERR_UNKNOWN_ENCODING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_VERSION">ERR_UNKNOWN_VERSION</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#E">E</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_BOUNDARY">ERR_ENTITY_BOUNDARY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_CHAR_ERROR">ERR_ENTITY_CHAR_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_VERSION">ERR_UNKNOWN_VERSION</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNPARSED_ENTITY">ERR_UNPARSED_ENTITY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#E">E</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_CHAR_ERROR">ERR_ENTITY_CHAR_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_EXTERNAL">ERR_ENTITY_IS_EXTERNAL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNPARSED_ENTITY">ERR_UNPARSED_ENTITY</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNSUPPORTED_ENCODING">ERR_UNSUPPORTED_ENCODING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html">Element</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_EXTERNAL">ERR_ENTITY_IS_EXTERNAL</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_PARAMETER">ERR_ENTITY_IS_PARAMETER</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNSUPPORTED_ENCODING">ERR_UNSUPPORTED_ENCODING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_URI_FRAGMENT">ERR_URI_FRAGMENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#Element">Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_IS_PARAMETER">ERR_ENTITY_IS_PARAMETER</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_LOOP">ERR_ENTITY_LOOP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_URI_FRAGMENT">ERR_URI_FRAGMENT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_URI_REQUIRED">ERR_URI_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#Element">Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_LOOP">ERR_ENTITY_LOOP</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_FINISHED">ERR_ENTITY_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_URI_REQUIRED">ERR_URI_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_USER_STOP">ERR_USER_STOP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element">Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_FINISHED">ERR_ENTITY_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_STARTED">ERR_ENTITY_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VALUE_REQUIRED">ERR_VALUE_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#element_class">element_class</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_NOT_STARTED">ERR_ENTITY_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PE_INTERNAL">ERR_ENTITY_PE_INTERNAL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISMATCH">ERR_VERSION_MISMATCH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementBase-class.html">ElementBase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PE_INTERNAL">ERR_ENTITY_PE_INTERNAL</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PROCESSING">ERR_ENTITY_PROCESSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_VERSION_MISSING">ERR_VERSION_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementChildIterator-class.html">ElementChildIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITY_PROCESSING">ERR_ENTITY_PROCESSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_AT_EOF">ERR_ENTITYREF_AT_EOF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_FINISHED">ERR_XMLDECL_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementClassLookup-class.html">ElementClassLookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_AT_EOF">ERR_ENTITYREF_AT_EOF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_DTD">ERR_ENTITYREF_IN_DTD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_XMLDECL_NOT_STARTED">ERR_XMLDECL_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_DTD">ERR_ENTITYREF_IN_DTD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_EPILOG">ERR_ENTITYREF_IN_EPILOG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.Error-class.html">Error</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDepthFirstIterator-class.html">ElementDepthFirstIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_EPILOG">ERR_ENTITYREF_IN_EPILOG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_PROLOG">ERR_ENTITYREF_IN_PROLOG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#ERROR">ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html">ElementInclude</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_IN_PROLOG">ERR_ENTITYREF_IN_PROLOG</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_NO_NAME">ERR_ENTITYREF_NO_NAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_block_class">error_block_class</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_NO_NAME">ERR_ENTITYREF_NO_NAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_SEMICOL_MISSING">ERR_ENTITYREF_SEMICOL_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_container_tag">error_container_tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html">ElementMaker</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.builder-module.html">lxml.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENTITYREF_SEMICOL_MISSING">ERR_ENTITYREF_SEMICOL_MISSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EQUAL_REQUIRED">ERR_EQUAL_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#error_log">error_log</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EQUAL_REQUIRED">ERR_EQUAL_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXT_ENTITY_STANDALONE">ERR_EXT_ENTITY_STANDALONE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#error_log">error_log</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementNamespaceClassLookup-class.html">ElementNamespaceClassLookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXT_ENTITY_STANDALONE">ERR_EXT_ENTITY_STANDALONE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXT_SUBSET_NOT_FINISHED">ERR_EXT_SUBSET_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#error_log">error_log</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#elements">elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXT_SUBSET_NOT_FINISHED">ERR_EXT_SUBSET_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXTRA_CONTENT">ERR_EXTRA_CONTENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#error_log">error_log</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.ElementSoup-module.html">ElementSoup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_EXTRA_CONTENT">ERR_EXTRA_CONTENT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_GT_REQUIRED">ERR_GT_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#error_log">error_log</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementTextIterator-class.html">ElementTextIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_GT_REQUIRED">ERR_GT_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_HYPHEN_IN_COMMENT">ERR_HYPHEN_IN_COMMENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#error_message_class">error_message_class</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html">ElementTree</a><br />
 <span class="index-where">(in&nbsp;xml.etree)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_HYPHEN_IN_COMMENT">ERR_HYPHEN_IN_COMMENT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INTERNAL_ERROR">ERR_INTERNAL_ERROR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.ElementTree-class.html">ElementTree</a></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INTERNAL_ERROR">ERR_INTERNAL_ERROR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHAR">ERR_INVALID_CHAR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#ElementTree">ElementTree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHAR">ERR_INVALID_CHAR</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHARREF">ERR_INVALID_CHARREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_CHARREF">ERR_INVALID_CHARREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_DEC_CHARREF">ERR_INVALID_DEC_CHARREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io.ElementTreeIOTestCase-class.html">ElementTreeIOTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_DEC_CHARREF">ERR_INVALID_DEC_CHARREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_ENCODING">ERR_INVALID_ENCODING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#ET_VERSION">ET_VERSION</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_ENCODING">ERR_INVALID_ENCODING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_HEX_CHARREF">ERR_INVALID_HEX_CHARREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html">ETCompatXMLParser</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html">ElementTreeTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_HEX_CHARREF">ERR_INVALID_HEX_CHARREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_URI">ERR_INVALID_URI</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html">etree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#EM">EM</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_INVALID_URI">ERR_INVALID_URI</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_FINISHED">ERR_LITERAL_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#etree">etree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#embedded">embedded</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_FINISHED">ERR_LITERAL_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_STARTED">ERR_LITERAL_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html#etree">etree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree.CElementTreeTestCase-class.html">CElementTreeTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#empty_tags">empty_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LITERAL_NOT_STARTED">ERR_LITERAL_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LT_IN_ATTRIBUTE">ERR_LT_IN_ATTRIBUTE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#etree">etree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#empty_tags">empty_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LT_IN_ATTRIBUTE">ERR_LT_IN_ATTRIBUTE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LT_REQUIRED">ERR_LT_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#etree">etree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#empty_tags">empty_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LT_REQUIRED">ERR_LT_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LTSLASH_REQUIRED">ERR_LTSLASH_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#enable_recursive_str">enable_recursive_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_LTSLASH_REQUIRED">ERR_LTSLASH_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MISPLACED_CDATA_END">ERR_MISPLACED_CDATA_END</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#encoding">encoding</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MISPLACED_CDATA_END">ERR_MISPLACED_CDATA_END</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MISSING_ENCODING">ERR_MISSING_ENCODING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#end">end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MISSING_ENCODING">ERR_MISSING_ENCODING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_FINISHED">ERR_MIXED_NOT_FINISHED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#end_tag">end_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_FINISHED">ERR_MIXED_NOT_FINISHED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_STARTED">ERR_MIXED_NOT_STARTED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#end_whitespace_re">end_whitespace_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_MIXED_NOT_STARTED">ERR_MIXED_NOT_STARTED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NAME_REQUIRED">ERR_NAME_REQUIRED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#endDocument">endDocument()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NAME_REQUIRED">ERR_NAME_REQUIRED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_NAME_TOO_LONG">ERR_NAME_TOO_LONG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#extract_xsd">extract_xsd</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_ENCODING_NAME">ERR_ENCODING_NAME</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#ERR_UNKNOWN_ENCODING">ERR_UNKNOWN_ENCODING</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
 </table>
 </td></tr>
 </table>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bc4000ac78139332d712168165e68420d761d665..ee03e03734eb77d4a466a62609b02fd28d559d50 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index de725917e6eeb3bfb53790fd90589f0a847f11d5..16d84b2e8ae85c350f7fd5011d8e7f19d72d7b6b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e99986d54799ca152b93837b5a9eeb13c1db09c7..d1fee7c64a5ad2e23a7c915d48f320aca20d3df9 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index baf5c2ed88266a76c90f5e19dd21eb6c2997c011..9ef4cc8c92bb96d30d38fbc70c1d06f090433425 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e5c04c39de48f845c6f04bf7a1c262d2adfc38e..b025dd53ece0b0cdbc27c97034a0759fb1351fc9 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bd3a4a30656daaa9d5d85f2a8015878daf81947e..32dbae2660c1ec2802003e6bc5b4fa4e5343f73b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b2bebfe3a6c676da950552495ade848fc2148080..86425374890af9e4dcbd40e2d1a9c5e2a5b948ae 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 89b54a58d44dd9654cbabeca42d25ddc041afb03..8a445373cdbb95235a103f2c84adc27e08afda6f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a95d2af8449ac625631388491e5b25e3d6f81f0b..f3c7470269a670cd2eb190fef71f2718c67b7ad2 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 119c5ecb9dbaad8a1c93e2bf81d336fe33439439..0c7b81b5da364e508d5eab0e8b1639644e62cc7c 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5c18024547ddfa6f9bb5e937b79cadf918278bb5..6483714d202eacb78cab633f3322051eb9a2dfa4 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 33eb840b6bd147f3f66a9a86083036e04738861d..f0c3ebf440c0f7cc7ccec9bc364a224400744aec 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e96b0648b05c70f773b594bc2c1cd5798454ed52..1a14ed6abc85d12e373a5b0c33ce457c57d2c66d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 33156f209f0ef3d4ea63f7b84c2152335c09ff20..6ed08dacb5422fc3437dcdce92bbfffe1a3afde6 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#S">S</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_NOTATION">SCHEMAP_REDEFINED_NOTATION</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_TYPE">SCHEMAP_REDEFINED_TYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_2">SCHEMAV_CVC_ELT_4_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_1">SCHEMAV_CVC_ELT_5_1_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#safe_attrs">safe_attrs</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_TYPE">SCHEMAP_REDEFINED_TYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REF_AND_CONTENT">SCHEMAP_REF_AND_CONTENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_3">SCHEMAV_CVC_ELT_4_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_2">SCHEMAV_CVC_ELT_5_1_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#safe_attrs">safe_attrs</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REF_AND_CONTENT">SCHEMAP_REF_AND_CONTENT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REF_AND_SUBTYPE">SCHEMAP_REF_AND_SUBTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_1">SCHEMAV_CVC_ELT_5_1_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_1">SCHEMAV_CVC_ELT_5_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#safe_attrs_only">safe_attrs_only</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REF_AND_SUBTYPE">SCHEMAP_REF_AND_SUBTYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REGEXP_INVALID">SCHEMAP_REGEXP_INVALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_1_2">SCHEMAV_CVC_ELT_5_1_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_1">SCHEMAV_CVC_ELT_5_2_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#SAMP">SAMP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REGEXP_INVALID">SCHEMAP_REGEXP_INVALID</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_RESTRICTION_NONAME_NOREF">SCHEMAP_RESTRICTION_NONAME_NOREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_1">SCHEMAV_CVC_ELT_5_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_2_1">SCHEMAV_CVC_ELT_5_2_2_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#SAMPLE_XML">SAMPLE_XML</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_RESTRICTION_NONAME_NOREF">SCHEMAP_RESTRICTION_NONAME_NOREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_INVALID_VALUE">SCHEMAP_S4S_ATTR_INVALID_VALUE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_1">SCHEMAV_CVC_ELT_5_2_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_2_2">SCHEMAV_CVC_ELT_5_2_2_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SAVE_CHAR_INVALID">SAVE_CHAR_INVALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_INVALID_VALUE">SCHEMAP_S4S_ATTR_INVALID_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_MISSING">SCHEMAP_S4S_ATTR_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_2_1">SCHEMAV_CVC_ELT_5_2_2_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_6">SCHEMAV_CVC_ELT_6</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SAVE_NO_DOCTYPE">SAVE_NO_DOCTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_MISSING">SCHEMAP_S4S_ATTR_MISSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_NOT_ALLOWED">SCHEMAP_S4S_ATTR_NOT_ALLOWED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_5_2_2_2_2">SCHEMAV_CVC_ELT_5_2_2_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_7">SCHEMAV_CVC_ELT_7</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SAVE_NOT_UTF8">SAVE_NOT_UTF8</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ATTR_NOT_ALLOWED">SCHEMAP_S4S_ATTR_NOT_ALLOWED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_MISSING">SCHEMAP_S4S_ELEM_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_6">SCHEMAV_CVC_ELT_6</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ENUMERATION_VALID">SCHEMAV_CVC_ENUMERATION_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SAVE_UNKNOWN_ENCODING">SAVE_UNKNOWN_ENCODING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_MISSING">SCHEMAP_S4S_ELEM_MISSING</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_NOT_ALLOWED">SCHEMAP_S4S_ELEM_NOT_ALLOWED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_7">SCHEMAV_CVC_ELT_7</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_FACET_VALID">SCHEMAV_CVC_FACET_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.sax-module.html">sax</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_S4S_ELEM_NOT_ALLOWED">SCHEMAP_S4S_ELEM_NOT_ALLOWED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SIMPLETYPE_NONAME">SCHEMAP_SIMPLETYPE_NONAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ENUMERATION_VALID">SCHEMAV_CVC_ENUMERATION_VALID</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_FRACTIONDIGITS_VALID">SCHEMAV_CVC_FRACTIONDIGITS_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.sax.SaxError-class.html">SaxError</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SIMPLETYPE_NONAME">SCHEMAP_SIMPLETYPE_NONAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_1">SCHEMAP_SRC_ATTRIBUTE_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_FACET_VALID">SCHEMAV_CVC_FACET_VALID</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_IDC">SCHEMAV_CVC_IDC</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#saxify">saxify()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_1">SCHEMAP_SRC_ATTRIBUTE_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_2">SCHEMAP_SRC_ATTRIBUTE_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_FRACTIONDIGITS_VALID">SCHEMAV_CVC_FRACTIONDIGITS_VALID</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_LENGTH_VALID">SCHEMAV_CVC_LENGTH_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.sax-module.html#saxify">saxify()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_2">SCHEMAP_SRC_ATTRIBUTE_2</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_IDC">SCHEMAV_CVC_IDC</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_A_PROPS_CORRECT_2">SCHEMAP_A_PROPS_CORRECT_2</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_3_1">SCHEMAP_SRC_ATTRIBUTE_3_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_LENGTH_VALID">SCHEMAV_CVC_LENGTH_VALID</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_A_PROPS_CORRECT_3">SCHEMAP_A_PROPS_CORRECT_3</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_3_2">SCHEMAP_SRC_ATTRIBUTE_3_2</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXEXCLUSIVE_VALID">SCHEMAV_CVC_MAXEXCLUSIVE_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_AG_PROPS_CORRECT">SCHEMAP_AG_PROPS_CORRECT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_A_PROPS_CORRECT_2">SCHEMAP_A_PROPS_CORRECT_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_4">SCHEMAP_SRC_ATTRIBUTE_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_3_2">SCHEMAP_SRC_ATTRIBUTE_3_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXINCLUSIVE_VALID">SCHEMAV_CVC_MAXINCLUSIVE_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTR_NONAME_NOREF">SCHEMAP_ATTR_NONAME_NOREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_A_PROPS_CORRECT_3">SCHEMAP_A_PROPS_CORRECT_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_1">SCHEMAP_SRC_ATTRIBUTE_GROUP_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_4">SCHEMAP_SRC_ATTRIBUTE_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MAXLENGTH_VALID">SCHEMAV_CVC_MAXLENGTH_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTRFORMDEFAULT_VALUE">SCHEMAP_ATTRFORMDEFAULT_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_AG_PROPS_CORRECT">SCHEMAP_AG_PROPS_CORRECT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_2">SCHEMAP_SRC_ATTRIBUTE_GROUP_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_1">SCHEMAP_SRC_ATTRIBUTE_GROUP_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MINEXCLUSIVE_VALID">SCHEMAV_CVC_MINEXCLUSIVE_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTRGRP_NONAME_NOREF">SCHEMAP_ATTRGRP_NONAME_NOREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTR_NONAME_NOREF">SCHEMAP_ATTR_NONAME_NOREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_3">SCHEMAP_SRC_ATTRIBUTE_GROUP_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_2">SCHEMAP_SRC_ATTRIBUTE_GROUP_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MININCLUSIVE_VALID">SCHEMAV_CVC_MININCLUSIVE_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_AU_PROPS_CORRECT">SCHEMAP_AU_PROPS_CORRECT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTRFORMDEFAULT_VALUE">SCHEMAP_ATTRFORMDEFAULT_VALUE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_CT_1">SCHEMAP_SRC_CT_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ATTRIBUTE_GROUP_3">SCHEMAP_SRC_ATTRIBUTE_GROUP_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_MINLENGTH_VALID">SCHEMAV_CVC_MINLENGTH_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_AU_PROPS_CORRECT_2">SCHEMAP_AU_PROPS_CORRECT_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ATTRGRP_NONAME_NOREF">SCHEMAP_ATTRGRP_NONAME_NOREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_1">SCHEMAP_SRC_ELEMENT_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_CT_1">SCHEMAP_SRC_CT_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_PATTERN_VALID">SCHEMAV_CVC_PATTERN_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_C_PROPS_CORRECT">SCHEMAP_C_PROPS_CORRECT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_AU_PROPS_CORRECT">SCHEMAP_AU_PROPS_CORRECT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_2_1">SCHEMAP_SRC_ELEMENT_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_1">SCHEMAP_SRC_ELEMENT_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TOTALDIGITS_VALID">SCHEMAV_CVC_TOTALDIGITS_VALID</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COMPLEXTYPE_NONAME_NOREF">SCHEMAP_COMPLEXTYPE_NONAME_NOREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_AU_PROPS_CORRECT_2">SCHEMAP_AU_PROPS_CORRECT_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_2_2">SCHEMAP_SRC_ELEMENT_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_2_1">SCHEMAP_SRC_ELEMENT_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_1">SCHEMAV_CVC_TYPE_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ALL_LIMITED">SCHEMAP_COS_ALL_LIMITED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_C_PROPS_CORRECT">SCHEMAP_C_PROPS_CORRECT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_3">SCHEMAP_SRC_ELEMENT_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_2_2">SCHEMAP_SRC_ELEMENT_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_2">SCHEMAV_CVC_TYPE_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_1">SCHEMAP_COS_CT_EXTENDS_1_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COMPLEXTYPE_NONAME_NOREF">SCHEMAP_COMPLEXTYPE_NONAME_NOREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT">SCHEMAP_SRC_IMPORT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_ELEMENT_3">SCHEMAP_SRC_ELEMENT_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_3_1_1">SCHEMAV_CVC_TYPE_3_1_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_2">SCHEMAP_COS_CT_EXTENDS_1_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ALL_LIMITED">SCHEMAP_COS_ALL_LIMITED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_1_1">SCHEMAP_SRC_IMPORT_1_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT">SCHEMAP_SRC_IMPORT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_TYPE_3_1_2">SCHEMAV_CVC_TYPE_3_1_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_3">SCHEMAP_COS_CT_EXTENDS_1_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_1">SCHEMAP_COS_CT_EXTENDS_1_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_1_2">SCHEMAP_SRC_IMPORT_1_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_1_1">SCHEMAP_SRC_IMPORT_1_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_WILDCARD">SCHEMAV_CVC_WILDCARD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_DERIVED_OK_2_1">SCHEMAP_COS_ST_DERIVED_OK_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_2">SCHEMAP_COS_CT_EXTENDS_1_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2">SCHEMAP_SRC_IMPORT_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_1_2">SCHEMAP_SRC_IMPORT_1_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_DOCUMENT_ELEMENT_MISSING">SCHEMAV_DOCUMENT_ELEMENT_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_DERIVED_OK_2_2">SCHEMAP_COS_ST_DERIVED_OK_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_CT_EXTENDS_1_3">SCHEMAP_COS_CT_EXTENDS_1_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2_1">SCHEMAP_SRC_IMPORT_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2">SCHEMAP_SRC_IMPORT_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_ELEMCONT">SCHEMAV_ELEMCONT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_1">SCHEMAP_COS_ST_RESTRICTS_1_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_DERIVED_OK_2_1">SCHEMAP_COS_ST_DERIVED_OK_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2_2">SCHEMAP_SRC_IMPORT_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2_1">SCHEMAP_SRC_IMPORT_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_ELEMENT_CONTENT">SCHEMAV_ELEMENT_CONTENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_2">SCHEMAP_COS_ST_RESTRICTS_1_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_DERIVED_OK_2_2">SCHEMAP_COS_ST_DERIVED_OK_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_1">SCHEMAP_SRC_IMPORT_3_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_2_2">SCHEMAP_SRC_IMPORT_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_EXTRACONTENT">SCHEMAV_EXTRACONTENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_3_1">SCHEMAP_COS_ST_RESTRICTS_1_3_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_1">SCHEMAP_COS_ST_RESTRICTS_1_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_2">SCHEMAP_SRC_IMPORT_3_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_1">SCHEMAP_SRC_IMPORT_3_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_FACET">SCHEMAV_FACET</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_3_2">SCHEMAP_COS_ST_RESTRICTS_1_3_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_2">SCHEMAP_COS_ST_RESTRICTS_1_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_INCLUDE">SCHEMAP_SRC_INCLUDE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_IMPORT_3_2">SCHEMAP_SRC_IMPORT_3_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_HAVEDEFAULT">SCHEMAV_HAVEDEFAULT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_1">SCHEMAP_COS_ST_RESTRICTS_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_3_1">SCHEMAP_COS_ST_RESTRICTS_1_3_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE">SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_INCLUDE">SCHEMAP_SRC_INCLUDE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_INTERNAL">SCHEMAV_INTERNAL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_1_1">SCHEMAP_COS_ST_RESTRICTS_2_3_1_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_1_3_2">SCHEMAP_COS_ST_RESTRICTS_1_3_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_REDEFINE">SCHEMAP_SRC_REDEFINE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE">SCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_INVALIDATTR">SCHEMAV_INVALIDATTR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_1_2">SCHEMAP_COS_ST_RESTRICTS_2_3_1_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_1">SCHEMAP_COS_ST_RESTRICTS_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_RESOLVE">SCHEMAP_SRC_RESOLVE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_REDEFINE">SCHEMAP_SRC_REDEFINE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_INVALIDELEM">SCHEMAV_INVALIDELEM</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_1">SCHEMAP_COS_ST_RESTRICTS_2_3_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_1_1">SCHEMAP_COS_ST_RESTRICTS_2_3_1_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE">SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_RESOLVE">SCHEMAP_SRC_RESOLVE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_ISABSTRACT">SCHEMAV_ISABSTRACT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_2">SCHEMAP_COS_ST_RESTRICTS_2_3_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_1_2">SCHEMAP_COS_ST_RESTRICTS_2_3_1_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_1">SCHEMAP_SRC_SIMPLE_TYPE_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE">SCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_MISC">SCHEMAV_MISC</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_3">SCHEMAP_COS_ST_RESTRICTS_2_3_2_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_1">SCHEMAP_COS_ST_RESTRICTS_2_3_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_2">SCHEMAP_SRC_SIMPLE_TYPE_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_1">SCHEMAP_SRC_SIMPLE_TYPE_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_MISSING">SCHEMAV_MISSING</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_4">SCHEMAP_COS_ST_RESTRICTS_2_3_2_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_2">SCHEMAP_COS_ST_RESTRICTS_2_3_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_3">SCHEMAP_SRC_SIMPLE_TYPE_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_2">SCHEMAP_SRC_SIMPLE_TYPE_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_NOROLLBACK">SCHEMAV_NOROLLBACK</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_5">SCHEMAP_COS_ST_RESTRICTS_2_3_2_5</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_3">SCHEMAP_COS_ST_RESTRICTS_2_3_2_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_4">SCHEMAP_SRC_SIMPLE_TYPE_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_3">SCHEMAP_SRC_SIMPLE_TYPE_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_NOROOT">SCHEMAV_NOROOT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_1">SCHEMAP_COS_ST_RESTRICTS_3_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_4">SCHEMAP_COS_ST_RESTRICTS_2_3_2_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES">SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_SIMPLE_TYPE_4">SCHEMAP_SRC_SIMPLE_TYPE_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTDETERMINIST">SCHEMAV_NOTDETERMINIST</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_1">SCHEMAP_COS_ST_RESTRICTS_3_3_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_2_3_2_5">SCHEMAP_COS_ST_RESTRICTS_2_3_2_5</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_1">SCHEMAP_ST_PROPS_CORRECT_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES">SCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTEMPTY">SCHEMAV_NOTEMPTY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_1_2">SCHEMAP_COS_ST_RESTRICTS_3_3_1_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_1">SCHEMAP_COS_ST_RESTRICTS_3_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_2">SCHEMAP_ST_PROPS_CORRECT_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_1">SCHEMAP_ST_PROPS_CORRECT_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTNILLABLE">SCHEMAV_NOTNILLABLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_1">SCHEMAP_COS_ST_RESTRICTS_3_3_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_1">SCHEMAP_COS_ST_RESTRICTS_3_3_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_3">SCHEMAP_ST_PROPS_CORRECT_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_2">SCHEMAP_ST_PROPS_CORRECT_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTSIMPLE">SCHEMAV_NOTSIMPLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_2">SCHEMAP_COS_ST_RESTRICTS_3_3_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_1_2">SCHEMAP_COS_ST_RESTRICTS_3_3_1_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE">SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ST_PROPS_CORRECT_3">SCHEMAP_ST_PROPS_CORRECT_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTTOPLEVEL">SCHEMAV_NOTTOPLEVEL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_3">SCHEMAP_COS_ST_RESTRICTS_3_3_2_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_1">SCHEMAP_COS_ST_RESTRICTS_3_3_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_TYPE_AND_SUBTYPE">SCHEMAP_TYPE_AND_SUBTYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE">SCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_NOTYPE">SCHEMAV_NOTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_4">SCHEMAP_COS_ST_RESTRICTS_3_3_2_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_2">SCHEMAP_COS_ST_RESTRICTS_3_3_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNION_NOT_EXPRESSIBLE">SCHEMAP_UNION_NOT_EXPRESSIBLE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_TYPE_AND_SUBTYPE">SCHEMAP_TYPE_AND_SUBTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_UNDECLAREDELEM">SCHEMAV_UNDECLAREDELEM</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_5">SCHEMAP_COS_ST_RESTRICTS_3_3_2_5</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_3">SCHEMAP_COS_ST_RESTRICTS_3_3_2_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ALL_CHILD">SCHEMAP_UNKNOWN_ALL_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNION_NOT_EXPRESSIBLE">SCHEMAP_UNION_NOT_EXPRESSIBLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_VALUE">SCHEMAV_VALUE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_1">SCHEMAP_COS_VALID_DEFAULT_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_4">SCHEMAP_COS_ST_RESTRICTS_3_3_2_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD">SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ALL_CHILD">SCHEMAP_UNKNOWN_ALL_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_WRONGELEM">SCHEMAV_WRONGELEM</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_1">SCHEMAP_COS_VALID_DEFAULT_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_ST_RESTRICTS_3_3_2_5">SCHEMAP_COS_ST_RESTRICTS_3_3_2_5</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTR_CHILD">SCHEMAP_UNKNOWN_ATTR_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD">SCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#SCRIPT">SCRIPT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_2_1">SCHEMAP_COS_VALID_DEFAULT_2_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_1">SCHEMAP_COS_VALID_DEFAULT_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRGRP_CHILD">SCHEMAP_UNKNOWN_ATTRGRP_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTR_CHILD">SCHEMAP_UNKNOWN_ATTR_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#scripts">scripts</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_2_2">SCHEMAP_COS_VALID_DEFAULT_2_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_1">SCHEMAP_COS_VALID_DEFAULT_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP">SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRGRP_CHILD">SCHEMAP_UNKNOWN_ATTRGRP_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#SELECT">SELECT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_1">SCHEMAP_CT_PROPS_CORRECT_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_2_1">SCHEMAP_COS_VALID_DEFAULT_2_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_BASE_TYPE">SCHEMAP_UNKNOWN_BASE_TYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP">SCHEMAP_UNKNOWN_ATTRIBUTE_GROUP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html">SelectElement</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_2">SCHEMAP_CT_PROPS_CORRECT_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_COS_VALID_DEFAULT_2_2_2">SCHEMAP_COS_VALID_DEFAULT_2_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_CHOICE_CHILD">SCHEMAP_UNKNOWN_CHOICE_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_BASE_TYPE">SCHEMAP_UNKNOWN_BASE_TYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="cssselect.parser.SelectorError-class.html">SelectorError</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_3">SCHEMAP_CT_PROPS_CORRECT_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_1">SCHEMAP_CT_PROPS_CORRECT_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD">SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_CHOICE_CHILD">SCHEMAP_UNKNOWN_CHOICE_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="cssselect.parser.SelectorSyntaxError-class.html">SelectorSyntaxError</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_4">SCHEMAP_CT_PROPS_CORRECT_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_2">SCHEMAP_CT_PROPS_CORRECT_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD">SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD">SCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SerialisationError-class.html">SerialisationError</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_5">SCHEMAP_CT_PROPS_CORRECT_5</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_3">SCHEMAP_CT_PROPS_CORRECT_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ELEM_CHILD">SCHEMAP_UNKNOWN_ELEM_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD">SCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html">SerialiseWorker</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CVC_SIMPLE_TYPE">SCHEMAP_CVC_SIMPLE_TYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_4">SCHEMAP_CT_PROPS_CORRECT_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_EXTENSION_CHILD">SCHEMAP_UNKNOWN_EXTENSION_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_ELEM_CHILD">SCHEMAP_UNKNOWN_ELEM_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#serialize_html_fragment">serialize_html_fragment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DEF_AND_PREFIX">SCHEMAP_DEF_AND_PREFIX</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CT_PROPS_CORRECT_5">SCHEMAP_CT_PROPS_CORRECT_5</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_FACET_CHILD">SCHEMAP_UNKNOWN_FACET_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_EXTENSION_CHILD">SCHEMAP_UNKNOWN_EXTENSION_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#set">set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_1">SCHEMAP_DERIVATION_OK_RESTRICTION_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_CVC_SIMPLE_TYPE">SCHEMAP_CVC_SIMPLE_TYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_FACET_TYPE">SCHEMAP_UNKNOWN_FACET_TYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_FACET_CHILD">SCHEMAP_UNKNOWN_FACET_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XSLTProcessingInstruction-class.html#set">set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTProcessingInstruction-class.html" onclick="show_private();">_XSLTProcessingInstruction</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1">SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DEF_AND_PREFIX">SCHEMAP_DEF_AND_PREFIX</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_GROUP_CHILD">SCHEMAP_UNKNOWN_GROUP_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_FACET_TYPE">SCHEMAP_UNKNOWN_FACET_TYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#set_default_parser">set_default_parser()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2">SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_1">SCHEMAP_DERIVATION_OK_RESTRICTION_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_IMPORT_CHILD">SCHEMAP_UNKNOWN_IMPORT_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_GROUP_CHILD">SCHEMAP_UNKNOWN_GROUP_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#set_default_parser">set_default_parser()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3">SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1">SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_INCLUDE_CHILD">SCHEMAP_UNKNOWN_INCLUDE_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_IMPORT_CHILD">SCHEMAP_UNKNOWN_IMPORT_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#set_element_class_lookup">set_element_class_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_2">SCHEMAP_DERIVATION_OK_RESTRICTION_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2">SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_LIST_CHILD">SCHEMAP_UNKNOWN_LIST_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_INCLUDE_CHILD">SCHEMAP_UNKNOWN_INCLUDE_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.FallbackElementClassLookup-class.html#set_fallback">set_fallback()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.FallbackElementClassLookup-class.html">FallbackElementClassLookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_3">SCHEMAP_DERIVATION_OK_RESTRICTION_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3">SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_MEMBER_TYPE">SCHEMAP_UNKNOWN_MEMBER_TYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_LIST_CHILD">SCHEMAP_UNKNOWN_LIST_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#set_global_max_depth">set_global_max_depth()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_1">SCHEMAP_DERIVATION_OK_RESTRICTION_4_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_2_2">SCHEMAP_DERIVATION_OK_RESTRICTION_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_NOTATION_CHILD">SCHEMAP_UNKNOWN_NOTATION_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_MEMBER_TYPE">SCHEMAP_UNKNOWN_MEMBER_TYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#set_pytype_attribute_tag">set_pytype_attribute_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_2">SCHEMAP_DERIVATION_OK_RESTRICTION_4_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_3">SCHEMAP_DERIVATION_OK_RESTRICTION_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_PREFIX">SCHEMAP_UNKNOWN_PREFIX</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_NOTATION_CHILD">SCHEMAP_UNKNOWN_NOTATION_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#setattr">setattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_3">SCHEMAP_DERIVATION_OK_RESTRICTION_4_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_1">SCHEMAP_DERIVATION_OK_RESTRICTION_4_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD">SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_PREFIX">SCHEMAP_UNKNOWN_PREFIX</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#setDocumentLocator">setDocumentLocator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_2">SCHEMAP_E_PROPS_CORRECT_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_2">SCHEMAP_DERIVATION_OK_RESTRICTION_4_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_REF">SCHEMAP_UNKNOWN_REF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD">SCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#setTest">setTest()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_3">SCHEMAP_E_PROPS_CORRECT_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_DERIVATION_OK_RESTRICTION_4_3">SCHEMAP_DERIVATION_OK_RESTRICTION_4_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_RESTRICTION_CHILD">SCHEMAP_UNKNOWN_RESTRICTION_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_REF">SCHEMAP_UNKNOWN_REF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#setTest2">setTest2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_4">SCHEMAP_E_PROPS_CORRECT_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_2">SCHEMAP_E_PROPS_CORRECT_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SCHEMAS_CHILD">SCHEMAP_UNKNOWN_SCHEMAS_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_RESTRICTION_CHILD">SCHEMAP_UNKNOWN_RESTRICTION_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html#setUp">setUp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.BytesIOXmlFileTestCase-class.html">BytesIOXmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_5">SCHEMAP_E_PROPS_CORRECT_5</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_3">SCHEMAP_E_PROPS_CORRECT_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SEQUENCE_CHILD">SCHEMAP_UNKNOWN_SEQUENCE_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SCHEMAS_CHILD">SCHEMAP_UNKNOWN_SCHEMAS_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#setUp">setUp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_6">SCHEMAP_E_PROPS_CORRECT_6</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_4">SCHEMAP_E_PROPS_CORRECT_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD">SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SEQUENCE_CHILD">SCHEMAP_UNKNOWN_SEQUENCE_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html#setUp">setUp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html">TempXmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEM_DEFAULT_FIXED">SCHEMAP_ELEM_DEFAULT_FIXED</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_5">SCHEMAP_E_PROPS_CORRECT_5</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD">SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD">SCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#setUp">setUp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEM_NONAME_NOREF">SCHEMAP_ELEM_NONAME_NOREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_E_PROPS_CORRECT_6">SCHEMAP_E_PROPS_CORRECT_6</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_TYPE">SCHEMAP_UNKNOWN_TYPE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD">SCHEMAP_UNKNOWN_SIMPLETYPE_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#setUp">setUp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEMFORMDEFAULT_VALUE">SCHEMAP_ELEMFORMDEFAULT_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEM_DEFAULT_FIXED">SCHEMAP_ELEM_DEFAULT_FIXED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_UNION_CHILD">SCHEMAP_UNKNOWN_UNION_CHILD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_TYPE">SCHEMAP_UNKNOWN_TYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#setUp">setUp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_EXTENSION_NO_BASE">SCHEMAP_EXTENSION_NO_BASE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEM_NONAME_NOREF">SCHEMAP_ELEM_NONAME_NOREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_ATTR_POINTLESS_PROH">SCHEMAP_WARN_ATTR_POINTLESS_PROH</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_UNKNOWN_UNION_CHILD">SCHEMAP_UNKNOWN_UNION_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html#setUpClass">setUpClass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree.ElementTreeTestCase-class.html">ElementTreeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_FACET_NO_VALUE">SCHEMAP_FACET_NO_VALUE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_ELEMFORMDEFAULT_VALUE">SCHEMAP_ELEMFORMDEFAULT_VALUE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_ATTR_REDECL_PROH">SCHEMAP_WARN_ATTR_REDECL_PROH</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_ATTR_POINTLESS_PROH">SCHEMAP_WARN_ATTR_POINTLESS_PROH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SiblingsIterator-class.html">SiblingsIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_BUILD_IMPORT">SCHEMAP_FAILED_BUILD_IMPORT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_EXTENSION_NO_BASE">SCHEMAP_EXTENSION_NO_BASE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_SKIP_SCHEMA">SCHEMAP_WARN_SKIP_SCHEMA</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_ATTR_REDECL_PROH">SCHEMAP_WARN_ATTR_REDECL_PROH</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports.SillyFileLike-class.html">SillyFileLike</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_LOAD">SCHEMAP_FAILED_LOAD</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_FACET_NO_VALUE">SCHEMAP_FACET_NO_VALUE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_UNLOCATED_SCHEMA">SCHEMAP_WARN_UNLOCATED_SCHEMA</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_SKIP_SCHEMA">SCHEMAP_WARN_SKIP_SCHEMA</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html">simple_resolver</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_PARSE">SCHEMAP_FAILED_PARSE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_BUILD_IMPORT">SCHEMAP_FAILED_BUILD_IMPORT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WILDCARD_INVALID_NS_MEMBER">SCHEMAP_WILDCARD_INVALID_NS_MEMBER</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WARN_UNLOCATED_SCHEMA">SCHEMAP_WARN_UNLOCATED_SCHEMA</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html">SimpleFileLike</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_GROUP_NONAME_NOREF">SCHEMAP_GROUP_NONAME_NOREF</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_LOAD">SCHEMAP_FAILED_LOAD</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_WILDCARD_INVALID_NS_MEMBER">SCHEMAP_WILDCARD_INVALID_NS_MEMBER</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#SCHEMASP">SCHEMASP</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_NAMESPACE_NOT_URI">SCHEMAP_IMPORT_NAMESPACE_NOT_URI</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_FAILED_PARSE">SCHEMAP_FAILED_PARSE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#SCHEMASV">SCHEMASV</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#SCHEMASP">SCHEMASP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#skipif">skipif</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_REDEFINE_NSNAME">SCHEMAP_IMPORT_REDEFINE_NSNAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_GROUP_NONAME_NOREF">SCHEMAP_GROUP_NONAME_NOREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html">Schematron</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#SCHEMASV">SCHEMASV</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#SMALL">SMALL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_SCHEMA_NOT_URI">SCHEMAP_IMPORT_SCHEMA_NOT_URI</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_NAMESPACE_NOT_URI">SCHEMAP_IMPORT_NAMESPACE_NOT_URI</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html">Schematron</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html">Schematron</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html">soupparser</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NO_URI">SCHEMAP_INCLUDE_SCHEMA_NO_URI</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_REDEFINE_NSNAME">SCHEMAP_IMPORT_REDEFINE_NSNAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#schematron">schematron</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html">Schematron</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#sourceline">sourceline</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NOT_URI">SCHEMAP_INCLUDE_SCHEMA_NOT_URI</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_IMPORT_SCHEMA_NOT_URI">SCHEMAP_IMPORT_SCHEMA_NOT_URI</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#SCHEMATRON_NS">SCHEMATRON_NS</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#schematron">schematron</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#SPAN">SPAN</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INTERNAL">SCHEMAP_INTERNAL</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NO_URI">SCHEMAP_INCLUDE_SCHEMA_NO_URI</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#schematron_schema_valid">schematron_schema_valid</a><br />
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#SCHEMATRON_NS">SCHEMATRON_NS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#special_inline_tags">special_inline_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE">SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INCLUDE_SCHEMA_NOT_URI">SCHEMAP_INCLUDE_SCHEMA_NOT_URI</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#schematron_schema_valid">schematron_schema_valid</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#split_delete">split_delete()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INTERNAL">SCHEMAP_INTERNAL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SchematronError-class.html">SchematronError</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#split_delete">split_delete()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#split_trailing_whitespace">split_trailing_whitespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_COMBINATION">SCHEMAP_INVALID_ATTR_COMBINATION</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE">SCHEMAP_INTERSECTION_NOT_EXPRESSIBLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SchematronParseError-class.html">SchematronParseError</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_INLINE_COMBINATION">SCHEMAP_INVALID_ATTR_INLINE_COMBINATION</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_COMBINATION">SCHEMAP_INVALID_ATTR_COMBINATION</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#SCHEMATRONV">SCHEMATRONV</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_NAME">SCHEMAP_INVALID_ATTR_NAME</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_INLINE_COMBINATION">SCHEMAP_INVALID_ATTR_INLINE_COMBINATION</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMATRONV_ASSERT">SCHEMATRONV_ASSERT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#split_words_re">split_words_re</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_NAME">SCHEMAP_INVALID_ATTR_NAME</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMATRONV_REPORT">SCHEMATRONV_REPORT</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#standalone">standalone</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ATTR_USE">SCHEMAP_INVALID_ATTR_USE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMATRONV_REPORT">SCHEMATRONV_REPORT</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.SchematronValidateError-class.html">SchematronValidateError</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#start">start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_BOOLEAN">SCHEMAP_INVALID_BOOLEAN</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.SchematronValidateError-class.html">SchematronValidateError</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRINVALID">SCHEMAV_ATTRINVALID</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#start_tag">start_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_ENUM">SCHEMAP_INVALID_ENUM</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRINVALID">SCHEMAV_ATTRINVALID</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRUNKNOWN">SCHEMAV_ATTRUNKNOWN</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#start_whitespace_re">start_whitespace_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_FACET">SCHEMAP_INVALID_FACET</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_ATTRUNKNOWN">SCHEMAV_ATTRUNKNOWN</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CONSTRUCT">SCHEMAV_CONSTRUCT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#startDocument">startDocument()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_FACET_VALUE">SCHEMAP_INVALID_FACET_VALUE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CONSTRUCT">SCHEMAV_CONSTRUCT</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_1">SCHEMAV_CVC_ATTRIBUTE_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#startElement">startElement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_MAXOCCURS">SCHEMAP_INVALID_MAXOCCURS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_1">SCHEMAV_CVC_ATTRIBUTE_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_2">SCHEMAV_CVC_ATTRIBUTE_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#startElementNS">startElementNS()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_MINOCCURS">SCHEMAP_INVALID_MINOCCURS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_2">SCHEMAV_CVC_ATTRIBUTE_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_3">SCHEMAV_CVC_ATTRIBUTE_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#startPrefixMapping">startPrefixMapping()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_REF_AND_SUBTYPE">SCHEMAP_INVALID_REF_AND_SUBTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_3">SCHEMAV_CVC_ATTRIBUTE_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_4">SCHEMAV_CVC_ATTRIBUTE_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="str-class.html">str</a></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_INVALID_WHITE_SPACE">SCHEMAP_INVALID_WHITE_SPACE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ATTRIBUTE_4">SCHEMAV_CVC_ATTRIBUTE_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_AU">SCHEMAV_CVC_AU</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#STRIKE">STRIKE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_MG_PROPS_CORRECT_1">SCHEMAP_MG_PROPS_CORRECT_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_AU">SCHEMAV_CVC_AU</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_1">SCHEMAV_CVC_COMPLEX_TYPE_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html">StringElement</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_MG_PROPS_CORRECT_2">SCHEMAP_MG_PROPS_CORRECT_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_1">SCHEMAV_CVC_COMPLEX_TYPE_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_1">SCHEMAV_CVC_COMPLEX_TYPE_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#stringify">stringify</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_MISSING_SIMPLETYPE_CHILD">SCHEMAP_MISSING_SIMPLETYPE_CHILD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_1">SCHEMAV_CVC_COMPLEX_TYPE_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_2">SCHEMAV_CVC_COMPLEX_TYPE_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#stringListTest">stringListTest()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NO_XMLNS">SCHEMAP_NO_XMLNS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_2">SCHEMAV_CVC_COMPLEX_TYPE_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_3">SCHEMAV_CVC_COMPLEX_TYPE_2_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#stringTest">stringTest()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NO_XSI">SCHEMAP_NO_XSI</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_3">SCHEMAV_CVC_COMPLEX_TYPE_2_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_4">SCHEMAV_CVC_COMPLEX_TYPE_2_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#strip">strip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NOATTR_NOREF">SCHEMAP_NOATTR_NOREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_2_4">SCHEMAV_CVC_COMPLEX_TYPE_2_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_1">SCHEMAV_CVC_COMPLEX_TYPE_3_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#strip_attributes">strip_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NOROOT">SCHEMAP_NOROOT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_1">SCHEMAV_CVC_COMPLEX_TYPE_3_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_2_1">SCHEMAV_CVC_COMPLEX_TYPE_3_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#strip_elements">strip_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NOT_DETERMINISTIC">SCHEMAP_NOT_DETERMINISTIC</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_2_1">SCHEMAV_CVC_COMPLEX_TYPE_3_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_2_2">SCHEMAV_CVC_COMPLEX_TYPE_3_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#strip_tags">strip_tags()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NOT_SCHEMA">SCHEMAP_NOT_SCHEMA</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_3_2_2">SCHEMAV_CVC_COMPLEX_TYPE_3_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_4">SCHEMAV_CVC_COMPLEX_TYPE_4</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#strlen">strlen()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTATION_NO_NAME">SCHEMAP_NOTATION_NO_NAME</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_4">SCHEMAV_CVC_COMPLEX_TYPE_4</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_5_1">SCHEMAV_CVC_COMPLEX_TYPE_5_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#STRONG">STRONG</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTHING_TO_PARSE">SCHEMAP_NOTHING_TO_PARSE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_5_1">SCHEMAV_CVC_COMPLEX_TYPE_5_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_5_2">SCHEMAV_CVC_COMPLEX_TYPE_5_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#strparam">strparam()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_NOTYPE_NOREF">SCHEMAP_NOTYPE_NOREF</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_COMPLEX_TYPE_5_2">SCHEMAV_CVC_COMPLEX_TYPE_5_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_1">SCHEMAV_CVC_DATATYPE_VALID_1_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#STYLE">STYLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_1">SCHEMAP_P_PROPS_CORRECT_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_1">SCHEMAV_CVC_DATATYPE_VALID_1_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_2">SCHEMAV_CVC_DATATYPE_VALID_1_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#style">style</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_2_1">SCHEMAP_P_PROPS_CORRECT_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_2">SCHEMAV_CVC_DATATYPE_VALID_1_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_3">SCHEMAV_CVC_DATATYPE_VALID_1_2_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#stylesheet_params">stylesheet_params()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_P_PROPS_CORRECT_2_2">SCHEMAP_P_PROPS_CORRECT_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_DATATYPE_VALID_1_2_3">SCHEMAV_CVC_DATATYPE_VALID_1_2_3</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_1">SCHEMAV_CVC_ELT_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#SUB">SUB</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_PREFIX_UNDEFINED">SCHEMAP_PREFIX_UNDEFINED</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_1">SCHEMAV_CVC_ELT_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_2">SCHEMAV_CVC_ELT_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#SubElement">SubElement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_RECURSIVE">SCHEMAP_RECURSIVE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_2">SCHEMAV_CVC_ELT_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_1">SCHEMAV_CVC_ELT_3_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#SUP">SUP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ATTR">SCHEMAP_REDEFINED_ATTR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_1">SCHEMAV_CVC_ELT_3_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_2_1">SCHEMAV_CVC_ELT_3_2_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#SVRL_NS">SVRL_NS</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ATTRGROUP">SCHEMAP_REDEFINED_ATTRGROUP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_2_1">SCHEMAV_CVC_ELT_3_2_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_2_2">SCHEMAV_CVC_ELT_3_2_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#svrl_validation_errors">svrl_validation_errors</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_ELEMENT">SCHEMAP_REDEFINED_ELEMENT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_3_2_2">SCHEMAV_CVC_ELT_3_2_2</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_1">SCHEMAV_CVC_ELT_4_1</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#system_url">system_url</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_GROUP">SCHEMAP_REDEFINED_GROUP</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_1">SCHEMAV_CVC_ELT_4_1</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_2">SCHEMAV_CVC_ELT_4_2</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#system_url">system_url</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
 </tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAP_REDEFINED_NOTATION">SCHEMAP_REDEFINED_NOTATION</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#SCHEMAV_CVC_ELT_4_3">SCHEMAV_CVC_ELT_4_3</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
+<td width="33%" class="link-index">&nbsp;</td>
+</tr>
 </table>
 </td></tr>
 </table>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8b6d3c6c2e275dfbf904a0e96e6bd068ae25c03b..32abb8736e05bec7db9736aa5db614531f2cbc56 100644 (file)
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TABLE">TABLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#table_tags">table_tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_end">test_setslice_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Comment-class.html" onclick="show_private();">_Comment</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert">test_setslice_insert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_insert_neg">test_setslice_insert_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative">test_setslice_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_negative2">test_setslice_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#tag">tag</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial">test_setslice_partial()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#tag">tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_pi">test_getiterator_filter_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_allneg">test_setslice_partial_allneg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#tag_compare">tag_compare()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_with_text">test_getiterator_filter_with_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_neg">test_setslice_partial_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#tag_or_value">tag_or_value()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_with_text">test_getiterator_with_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_partial_wrong_length">test_setslice_partial_wrong_length()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html">tag_token</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_single">test_setslice_single()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#tags">tags</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#tail">tail</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.Element-class.html#tail">tail</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_complete">test_getslice_complete()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#target">target</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice">test_getslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TBODY">TBODY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial">test_getslice_partial()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_complete">test_getslice_complete()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_tail">test_setslice_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TD">TD</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg">test_getslice_partial_neg()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_negative">test_getslice_negative()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy">test_shallowcopy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.HelperTestCase-class.html">HelperTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial">test_getslice_partial()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_shallowcopy_elementtree">test_shallowcopy_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_getslice_partial_neg">test_getslice_partial_neg()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_simple">test_simple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_step">test_getslice_step()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getslice_text">test_getslice_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon">test_html_element_name_colon()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty">test_html_element_name_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#tearDown">tearDown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote">test_html_element_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_colon">test_html_element_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#temp_install">temp_install()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space">test_html_element_name_space()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_empty">test_html_element_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_standard_lookup">test_standard_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.TempXmlFileTestCase-class.html">TempXmlFileTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_file_error">test_html_file_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_quote">test_html_element_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_str">test_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr">test_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse">test_html_iterparse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_element_name_space">test_html_element_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_element">test_addattr_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file">test_html_iterparse_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_file_error">test_html_file_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_addattr_list">test_addattr_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_start">test_html_iterparse_start()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse">test_html_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext">test_addnext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_empty">test_html_parser_target_doctype_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_file">test_html_iterparse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns">test_strip_elements_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment">test_addnext_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html">test_html_parser_target_doctype_html()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_iterparse_start">test_html_iterparse_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops">test_addnext_noops()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html_full">test_html_parser_target_doctype_html_full()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_empty">test_html_parser_target_doctype_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_tag">test_html_parser_target_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html">test_html_parser_target_doctype_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_doctype_html_full">test_html_parser_target_doctype_html_full()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_colon">test_html_subelement_name_colon()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_parser_target_tag">test_html_parser_target_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment">test_strip_tags_pi_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_empty">test_html_subelement_name_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_colon">test_html_subelement_name_colon()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom">test_sub_data_element_nsmap_custom()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+</tr>
+<tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_empty">test_html_subelement_name_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes">test_sub_data_element_nsmap_custom_prefixes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops">test_addprevious_noops()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_quote">test_html_subelement_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom">test_sub_data_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default">test_sub_data_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_html_subelement_name_space">test_html_subelement_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_custom_prefixes">test_sub_data_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty">test_sub_data_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html">test_htmlparser</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_default">test_sub_data_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client">test_http_client()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_data_element_nsmap_empty">test_sub_data_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_404">test_http_client_404()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom">test_sub_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default">test_sub_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_http_client_gzip">test_http_client_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_custom_prefixes">test_sub_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_attrib()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_recursive_error">test_append_recursive_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html">test_http_io</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_default">test_sub_element_nsmap_default()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib">test_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html">test_incremental_xmlfile</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_sub_element_nsmap_empty">test_sub_element_nsmap_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_clear">test_attrib_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement">test_subelement()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_deepcopy()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_copy">test_attrib_copy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert">test_insert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_dict()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_deepcopy">test_attrib_deepcopy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_beyond_index">test_insert_beyond_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_get">test_attrib_get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_dict">test_attrib_dict()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_negative">test_insert_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_ns_clear">test_attrib_ns_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_get">test_attrib_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_insert_tail">test_insert_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop">test_attrib_pop()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_ns_clear">test_attrib_ns_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html">test_io</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_default">test_attrib_pop_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop">test_attrib_pop()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iselement">test_iselement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_empty_default">test_attrib_pop_empty_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_default">test_attrib_pop_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html">test_isoschematron</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_reference">test_subelement_reference()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_empty_default">test_attrib_pop_empty_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iter">test_iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes">test_subelement_with_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread">test_subtree_copy_thread()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_invalid_args">test_attrib_pop_invalid_args()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_subelement_with_attributes_ns">test_subelement_with_attributes_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_pop_unknown">test_attrib_pop_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attrib_set_clear">test_attrib_set_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_subtree_copy_thread">test_subtree_copy_thread()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_attribute">test_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_attribute_based_lookup">test_attribute_based_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration">test_iteration()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_contains">test_attribute_contains()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_crash">test_iteration_crash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_del_child">test_iteration_del_child()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_double">test_iteration_double()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_empty">test_iteration_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items">test_attribute_items()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_reversed">test_iteration_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items2">test_attribute_items2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_subelement">test_iteration_subelement()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_items_ns">test_attribute_items_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iteration_text_only">test_iteration_text_only()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_iterator">test_attribute_iterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_keys()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys">test_attribute_keys()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys2">test_attribute_keys2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_keys_ns">test_attribute_keys_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_manipulation">test_attribute_manipulation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip">test_attribute_namespace_roundtrip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_namespace_roundtrip_replaced">test_attribute_namespace_roundtrip_replaced()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse">test_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_set">test_attribute_set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_attrib_ns">test_iterparse_attrib_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#test_suite">test_suite()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_cdata">test_iterparse_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_str">test_attribute_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_clear">test_iterparse_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#test_suite">test_suite()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_attrib">test_attribute_update_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_ns">test_tag_reset_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_dict">test_attribute_update_dict()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_reset_root_ns">test_tag_reset_root_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_iter">test_attribute_update_iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error">test_iterparse_encoding_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_str_subclass">test_tag_str_subclass()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail">test_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_values()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_update_sequence">test_attribute_update_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_file">test_iterparse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tag_write">test_tag_write()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values">test_attribute_values()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd">test_iterparse_file_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail">test_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_getiterator">test_iterparse_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail1">test_tail1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_values_ns">test_attribute_values_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata">test_iterparse_keep_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_append">test_tail_append()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attribute_xmlns_move">test_attribute_xmlns_move()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_large">test_iterparse_large()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_elementtree_root">test_tail_elementtree_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element">test_bad_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_attributes_get">test_attributes_get()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_move_elements">test_iterparse_move_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_none">test_tail_set_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_bad_element">test_bad_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_build_from_xpath_result">test_build_from_xpath_result()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_set_twice">test_tail_set_twice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_build_tree">test_build_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_comments()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tail_str_subclass">test_tail_str_subclass()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html">test_builder</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start">test_iterparse_start()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text">test_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_iterparse_start_end">test_iterparse_start_end()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_empty">test_text_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag">test_iterparse_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_in">test_text_escape_in()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag">test_iterparse_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_out">test_text_escape_out()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns">test_iterparse_tag_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_escape_tostring">test_text_escape_tostring()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt">test_thread_create_xslt()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns">test_iterparse_tag_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_other">test_text_other()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log">test_thread_error_log()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty">test_iterparse_tag_ns_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_text_str_subclass">test_text_str_subclass()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix">test_thread_mix()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty">test_iterparse_tag_ns_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_create_xslt">test_thread_create_xslt()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse">test_thread_pipeline_global_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_error_log">test_thread_error_log()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse">test_thread_pipeline_thread_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_comments()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_mix">test_thread_mix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt">test_thread_xslt()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_global_parse">test_thread_pipeline_global_parse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt_attr_replace">test_thread_xslt_attr_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#test_thread_pipeline_thread_parse">test_thread_pipeline_thread_parse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html">test_threading</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt">test_thread_xslt()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext">test_itertext()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_thread_xslt_attr_replace">test_thread_xslt_attr_replace()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_itertext_child">test_itertext_child()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html">test_threading</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns">test_iterwalk_attrib_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring">test_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns">test_iterwalk_attrib_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element">test_tostring_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_element_tail">test_tostring_element_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start">test_iterwalk_start()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_html">test_tostring_method_html()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start">test_iterwalk_start()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end">test_iterwalk_start_end()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_tostring_method_text">test_tostring_method_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_change_pytype_attribute">test_change_pytype_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end">test_iterwalk_start_end()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag">test_iterwalk_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child">test_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag">test_iterwalk_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_addattr">test_child_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup">test_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr">test_child_getattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup">test_lookup()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_attrib">test_lookup_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_getattr_empty_ns">test_child_getattr_empty_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_attrib">test_lookup_attrib()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_bool">test_lookup_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index">test_child_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_bool">test_lookup_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get">test_lookup_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_index_neg">test_child_index_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get">test_lookup_get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get_default">test_lookup_get_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_iter">test_child_iter()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_get_default">test_lookup_get_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getchildren">test_lookup_getchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_len">test_child_len()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getchildren">test_lookup_getchildren()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem">test_lookup_getitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_nonexistant">test_child_nonexistant()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem">test_lookup_getitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem_neg">test_lookup_getitem_neg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_ns_nons">test_child_ns_nons()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getitem_neg">test_lookup_getitem_neg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getnext">test_lookup_getnext()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_child_set_ro">test_child_set_ro()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getnext">test_lookup_getnext()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getparent">test_lookup_getparent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_class_lookup">test_class_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getparent">test_lookup_getparent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getprevious">test_lookup_getprevious()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_reentry">test_class_lookup_reentry()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getprevious">test_lookup_getprevious()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getslice">test_lookup_getslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_class_lookup_type_mismatch">test_class_lookup_type_mismatch()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_getslice">test_lookup_getslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iter_children">test_lookup_iter_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io">test_tree_io()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename">test_class_parse_filename()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iter_children">test_lookup_iter_children()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren">test_lookup_iterchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename_remove_previous">test_class_parse_filename_remove_previous()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren">test_lookup_iterchildren()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren_tag">test_lookup_iterchildren_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject">test_class_parse_fileobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_iterchildren_tag">test_lookup_iterchildren_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_keep_ref_assertion">test_lookup_keep_ref_assertion()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io">test_tree_io()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject">test_class_parse_unamed_fileobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_keep_ref_assertion">test_lookup_keep_ref_assertion()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len">test_lookup_len()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool">test_type_bool()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html">test_classlookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_len">test_lookup_len()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_prefix">test_lookup_prefix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder">test_treebuilder()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear">test_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_prefix">test_lookup_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_sourceline">test_lookup_sourceline()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_treebuilder_target">test_treebuilder_target()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float">test_type_float()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_sub">test_clear_sub()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_sourceline">test_lookup_sourceline()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tag">test_lookup_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool">test_type_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int">test_type_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_clear_tail">test_clear_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tag">test_lookup_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail">test_lookup_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_bool_cmp">test_type_bool_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment">test_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_tail">test_lookup_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text">test_lookup_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_float">test_type_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp">test_type_none_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_comment">test_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#test_lookup_text">test_lookup_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int">test_type_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback">test_lookup_without_fallback()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType">test_type_NoneType()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_comment_base">test_comment_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_lookup_without_fallback">test_lookup_without_fallback()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_int_cmp">test_type_int_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_main_xslt_in_thread">test_main_xslt_in_thread()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str">test_type_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty">test_comment_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_main_xslt_in_thread">test_main_xslt_in_thread()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_none_cmp">test_type_none_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_add">test_type_str_add()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_getitem_getslice">test_comment_getitem_getslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_makeelement">test_makeelement()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_NoneType">test_type_NoneType()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex">test_type_str_as_complex()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable">test_comment_immutable()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_merge_namespaced_subtree_as_slice">test_merge_namespaced_subtree_as_slice()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str">test_type_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML">test_module_HTML()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float">test_type_str_as_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet">test_comment_no_proxy_yet()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML">test_module_HTML()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_access">test_module_HTML_access()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_add">test_type_str_add()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int">test_type_str_as_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_nonsense">test_comment_nonsense()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_access">test_module_HTML_access()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_broken">test_module_HTML_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_complex">test_type_str_as_complex()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty">test_comment_parse_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_broken">test_module_HTML_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_cdata">test_module_HTML_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_float">test_type_str_as_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral">test_type_str_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_text">test_comment_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_cdata">test_module_HTML_cdata()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_pretty_print">test_module_HTML_pretty_print()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_as_int">test_type_str_as_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash">test_type_str_hash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_comment_whitespace">test_comment_whitespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_pretty_print">test_module_HTML_pretty_print()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_unicode">test_module_HTML_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_cmp">test_type_str_cmp()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral">test_type_str_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_class_lookup">test_concurrent_class_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_HTML_unicode">test_module_HTML_unicode()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_floatliteral">test_type_str_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod">test_type_str_mod()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#test_concurrent_proxies">test_concurrent_proxies()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_hash">test_type_str_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements">test_type_str_mod_data_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_countchildren">test_countchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_intliteral">test_type_str_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul">test_type_str_mul()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_crash">test_crash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_gzipobject">test_module_parse_gzipobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod">test_type_str_mod()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_sequence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element">test_create_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_gzipobject">test_module_parse_gzipobject()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mod_data_elements">test_type_str_mod_data_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html">test_module_parse_html()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_create_element_default">test_create_element_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html">test_module_parse_html()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_error">test_module_parse_html_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_mul">test_type_str_mul()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr">test_type_ustr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html">test_css</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_error">test_module_parse_html_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_filelike">test_module_parse_html_filelike()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_str_sequence">test_type_str_sequence()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add">test_type_ustr_add()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_css.CSSTestCase-class.html#test_cssselect">test_cssselect()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_css.CSSTestCase-class.html">CSSTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_filelike">test_module_parse_html_filelike()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_unregistered">test_type_unregistered()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup">test_custom_lookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_module_parse_html_norecover">test_module_parse_html_norecover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr">test_type_ustr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_floatliteral">test_type_ustr_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback">test_custom_lookup_ns_fallback()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup">test_custom_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject">test_module_parse_large_fileobject()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_add">test_type_ustr_add()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral">test_type_ustr_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_attrib_attributes_precedence">test_data_element_attrib_attributes_precedence()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_custom_lookup_ns_fallback">test_custom_lookup_ns_fallback()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_floatliteral">test_type_ustr_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul">test_type_ustr_mul()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool">test_data_element_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_attrib_attributes_precedence">test_data_element_attrib_attributes_precedence()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_intliteral">test_type_ustr_intliteral()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html">test_unicode</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg">test_data_element_data_element_arg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_bool">test_data_element_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_multiple_elementrees">test_multiple_elementrees()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_type_ustr_mul">test_type_ustr_mul()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr">test_unicode_attr()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype">test_data_element_data_element_arg_invalid_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg">test_data_element_data_element_arg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html">test_unicode</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi">test_data_element_data_element_arg_invalid_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_pytype">test_data_element_data_element_arg_invalid_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_namespace_lookup">test_namespace_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_attr">test_unicode_attr()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype">test_data_element_data_element_arg_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_invalid_xsi">test_data_element_data_element_arg_invalid_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_anonymous">test_namespace_nested_anonymous()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_none">test_data_element_data_element_arg_pytype_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype">test_data_element_data_element_arg_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nested_nsmap">test_namespace_nested_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment">test_unicode_comment()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype">test_data_element_data_element_arg_pytype_xsitype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_none">test_data_element_data_element_arg_pytype_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_namespace_nsmap">test_namespace_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid">test_unicode_ns_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype">test_data_element_data_element_arg_xsitype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_pytype_xsitype">test_data_element_data_element_arg_pytype_xsitype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_comment">test_unicode_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag">test_unicode_nstag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg">test_data_element_element_arg()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_data_element_arg_xsitype">test_data_element_data_element_arg_xsitype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_namespaces_after_serialize">test_namespaces_after_serialize()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_ns_invalid">test_unicode_ns_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid">test_unicode_nstag_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float">test_data_element_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_element_arg">test_data_element_element_arg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag">test_unicode_nstag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio">test_unicode_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash">test_data_element_float_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float">test_data_element_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_nstag_invalid">test_unicode_nstag_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname">test_unicode_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int">test_data_element_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_float_hash">test_data_element_float_hash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_parse_stringio">test_unicode_parse_stringio()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid">test_unicode_qname_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash">test_data_element_int_hash()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int">test_data_element_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname">test_unicode_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag">test_unicode_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype">test_data_element_invalid_pytype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_int_hash">test_data_element_int_hash()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_qname_invalid">test_unicode_qname_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag_invalid">test_unicode_tag_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi">test_data_element_invalid_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_pytype">test_data_element_invalid_pytype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag">test_unicode_tag()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml">test_unicode_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType">test_data_element_NoneType()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_invalid_xsi">test_data_element_invalid_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_nested_default_namespace">test_nested_default_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_tag_invalid">test_unicode_tag_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml_broken">test_unicode_xml_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom">test_data_element_nsmap_custom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_NoneType">test_data_element_NoneType()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_network_dtd">test_network_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml">test_unicode_xml()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes">test_data_element_nsmap_custom_prefixes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html#test_unicode_xml_broken">test_unicode_xml_broken()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default">test_data_element_nsmap_default()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder.BuilderTestCase-class.html#test_unknown_type_raises">test_unknown_type_raises()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder.BuilderTestCase-class.html">BuilderTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty">test_data_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom">test_data_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access">test_ns_access()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_custom_prefixes">test_data_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes">test_ns_classes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_access2">test_ns_access2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_vars">test_vars()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_default">test_data_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_attr">test_ns_attr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_version">test_version()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_nsmap_empty">test_data_element_nsmap_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_ns_classes">test_ns_classes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_weird_dict_interaction">test_weird_dict_interaction()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str">test_data_element_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none">test_data_element_pytype_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring">test_ns_decl_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write">test_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral">test_data_element_str_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytype_none_compat">test_data_element_pytype_none_compat()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_default">test_ns_decl_tostring_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral">test_data_element_str_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_pytypes">test_data_element_pytypes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_element">test_ns_decl_tostring_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io.ETreeIOTestCase-class.html#test_write_compressed_text">test_write_compressed_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str">test_data_element_str()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_decl_tostring_root">test_ns_decl_tostring_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_write_Element">test_write_Element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_floatliteral">test_data_element_str_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_move">test_ns_move()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_write_Element_repeatedly">test_write_Element_repeatedly()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr">test_data_element_ustr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_str_intliteral">test_data_element_str_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_setting">test_ns_setting()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_ElementTreeDoctest">test_write_ElementTreeDoctest()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral">test_data_element_ustr_floatliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_unregistered">test_data_element_unregistered()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html">test_nsclasses</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ns_tag_parse">test_ns_tag_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_fail">test_write_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral">test_data_element_ustr_intliteral()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr">test_data_element_ustr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html">test_nsclasses</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_floatliteral">test_data_element_ustr_floatliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_ustr_intliteral">test_data_element_ustr_intliteral()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path">test_object_path()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes">test_data_element_xsitypes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr">test_object_path_addattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_prefixed">test_data_element_xsitypes_prefixed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create">test_object_path_addattr_create()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_filename">test_write_filename()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_nsmap()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_data_element_xsitypes_xsdprefixed">test_data_element_xsitypes_xsdprefixed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_element">test_object_path_addattr_create_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_gzip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi">test_dataelement_xsi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_create_list">test_object_path_addattr_create_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_tail">test_date_element_efactory_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_nsmap">test_dataelement_xsi_nsmap()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_addattr_element">test_object_path_addattr_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_invalid_filename">test_write_invalid_filename()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text">test_date_element_efactory_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dataelement_xsi_prefix_error">test_dataelement_xsi_prefix_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_absolute">test_object_path_default_absolute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_html">test_write_method_html()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_tail">test_date_element_efactory_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_default_relative">test_object_path_default_relative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_write_method_text">test_write_method_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_date_element_efactory_text">test_date_element_efactory_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot">test_object_path_dot()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_deannotate">test_deannotate()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
+</tr>
+<tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy">test_deepcopy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_list">test_object_path_dot_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_append">test_deepcopy_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root">test_object_path_dot_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XML">test_XML()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_comment">test_deepcopy_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_dot_root_list">test_object_path_dot_root_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">_XIncludeTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_elementtree">test_deepcopy_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail">test_object_path_fail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_parse_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XML">test_XML()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty">test_object_path_fail_parse_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_fail_parse_empty_list">test_object_path_fail_parse_empty_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base">test_xml_base()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_namespaces">test_deepcopy_namespaces()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_hasattr">test_object_path_hasattr()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_index()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index">test_object_path_index()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_subelement">test_deepcopy_subelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_lookup">test_object_path_index_fail_lookup()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_deepcopy_tail">test_deepcopy_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_fail_parse">test_object_path_index_fail_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_default_class_lookup">test_default_class_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_index_list">test_object_path_index_list()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_default_namespace">test_default_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_list">test_object_path_list()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_default_parser_HTML_broken">test_default_parser_HTML_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns">test_object_path_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XMLID">test_XMLID()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_default_tagname">test_default_tagname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_ns_list">test_object_path_ns_list()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-</tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set">test_object_path_set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_XMLID">test_XMLID()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html">test_xmlschema</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns">test_del_attribute_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create">test_object_path_set_create()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html">test_xmlschema</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema">test_xmlschema()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_attribute_ns_parsed">test_del_attribute_ns_parsed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_element">test_object_path_set_create_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema">test_xmlschema()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_default_attributes">test_xmlschema_default_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_insert">test_del_insert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_create_list">test_object_path_set_create_list()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_default_attributes">test_xmlschema_default_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_elementtree_error">test_xmlschema_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setitem">test_del_setitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_set_element">test_object_path_set_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_elementtree_error">test_xmlschema_elementtree_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_file">test_xmlschema_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_del_setslice">test_del_setslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_object_path_syntax">test_object_path_syntax()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_file">test_xmlschema_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file">test_xmlschema_import_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem">test_delitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html">test_objectify</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_import_file">test_xmlschema_import_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema1">test_xmlschema_invalid_schema1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delitem_tail">test_delitem_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema1">test_xmlschema_invalid_schema1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema2">test_xmlschema_invalid_schema2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice">test_delslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_invalid_schema2">test_xmlschema_invalid_schema2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse">test_xmlschema_iterparse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_child_tail">test_delslice_child_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_cdata">test_parse_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse">test_xmlschema_iterparse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail">test_xmlschema_iterparse_fail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_memory">test_delslice_memory()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_iterparse_fail">test_xmlschema_iterparse_fail()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers">test_xmlschema_nested_resolvers()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative1">test_delslice_negative1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_explicit">test_parse_encoding_8bit_explicit()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_nested_resolvers">test_xmlschema_nested_resolvers()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse">test_xmlschema_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_negative2">test_delslice_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse">test_xmlschema_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes">test_xmlschema_parse_default_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step">test_delslice_step()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#test_parse_encoding_8bit_override">test_parse_encoding_8bit_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes">test_xmlschema_parse_default_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config">test_xmlschema_parse_default_attributes_schema_config()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative">test_delslice_step_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error">test_parse_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_default_attributes_schema_config">test_xmlschema_parse_default_attributes_schema_config()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes">test_xmlschema_parse_fixed_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_step_negative2">test_delslice_step_negative2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_from_file">test_parse_error_from_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_parse_fixed_attributes">test_xmlschema_parse_fixed_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers">test_xmlschema_resolvers()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_delslice_tail">test_delslice_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers">test_xmlschema_resolvers()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot">test_xmlschema_resolvers_noroot()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths">test_descendant_paths()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_error_none">test_parse_error_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_noroot">test_xmlschema_resolvers_noroot()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root">test_xmlschema_resolvers_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_child">test_descendant_paths_child()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file">test_parse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html#test_xmlschema_resolvers_root">test_xmlschema_resolvers_root()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">ETreeXMLSchemaResolversTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut">test_xmlschema_shortcut()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir">test_dir()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_descendant_paths_prefix">test_descendant_paths_prefix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_parse_file_dtd">test_parse_file_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_shortcut">test_xmlschema_shortcut()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio">test_xmlschema_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_dir">test_dir()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_encoding">test_parse_file_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html#test_xmlschema_stringio">test_xmlschema_stringio()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">ETreeXMLSchemaTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean">test_xpath_boolean()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_nonexistent">test_parse_file_nonexistent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_boolean">test_xpath_boolean()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error">test_xpath_class_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object">test_parse_file_object()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_error">test_xpath_class_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error">test_xpath_class_prefix_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_file_object_encoding">test_parse_file_object_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_class_prefix_error">test_xpath_class_prefix_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc">test_xpath_compile_doc()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_doc">test_xpath_compile_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element">test_xpath_compile_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error">test_parse_parser_type_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_element">test_xpath_compile_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_error">test_xpath_compile_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments">test_parse_remove_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_error">test_xpath_compile_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns">test_xpath_compile_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd">test_dtd()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html">test_dtd</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis">test_parse_remove_pis()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#test_xpath_compile_ns">test_xpath_compile_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars">test_xpath_compile_vars()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid">test_dtd_assertValid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd">test_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_stringio">test_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_compile_vars">test_xpath_compile_vars()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_context_node">test_xpath_context_node()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_attrs">test_dtd_attrs()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_assertValid">test_dtd_assertValid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_context_node">test_xpath_context_node()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_document_root">test_xpath_document_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken">test_dtd_broken()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_attrs">test_dtd_attrs()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_document_root">test_xpath_document_root()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_elementtree_error">test_xpath_elementtree_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file">test_dtd_file()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_broken">test_dtd_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parse_with_encoding">test_parse_with_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html#test_xpath_elementtree_error">test_xpath_elementtree_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">ETreeXPathClassTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error">test_xpath_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal">test_dtd_internal()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_file">test_dtd_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid">test_parseid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_error">test_xpath_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear">test_xpath_eval_context_clear()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid">test_dtd_internal_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal">test_dtd_internal()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_parser_based_lookup">test_parser_based_lookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_clear">test_xpath_eval_context_clear()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation">test_xpath_eval_context_propagation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_internal_invalid">test_dtd_internal_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding">test_parser_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_eval_context_propagation">test_xpath_eval_context_propagation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator">test_xpath_evaluator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_invalid">test_dtd_invalid()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator">test_xpath_evaluator()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_element">test_xpath_evaluator_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found">test_dtd_parse_file_not_found()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#test_parser_input_mix">test_parser_input_mix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_element">test_xpath_evaluator_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree">test_xpath_evaluator_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid">test_dtd_parse_invalid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_file_not_found">test_dtd_parse_file_not_found()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_attrib">test_parser_target_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree">test_xpath_evaluator_tree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree_absolute">test_xpath_evaluator_tree_absolute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid">test_dtd_parse_valid()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_invalid">test_dtd_parse_invalid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_evaluator_tree_absolute">test_xpath_evaluator_tree_absolute()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date">test_xpath_exslt_functions_date()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative">test_dtd_parse_valid_relative()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid">test_dtd_parse_valid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment">test_parser_target_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_date">test_xpath_exslt_functions_date()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings">test_xpath_exslt_functions_strings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_parse_valid_relative">test_dtd_parse_valid_relative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_data">test_parser_target_data()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html#test_xpath_exslt_functions_strings">test_xpath_exslt_functions_strings()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">ETreeXPathExsltTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions">test_xpath_extensions()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_dtd_stringio">test_dtd_stringio()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">ETreeDtdTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity">test_parser_target_entity()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions">test_xpath_extensions()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error">test_xpath_extensions_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_attrib()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_entity_unknown">test_parser_target_entity_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_error">test_xpath_extensions_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix">test_xpath_extensions_mix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_attrib">test_efactory_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_close">test_parser_target_error_in_close()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_mix">test_xpath_extensions_mix()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes">test_xpath_extensions_nodes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_bool">test_efactory_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_end">test_parser_target_error_in_end()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes">test_xpath_extensions_nodes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_float">test_efactory_float()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start">test_parser_target_error_in_start()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append">test_xpath_extensions_nodes_append()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append2">test_xpath_extensions_nodes_append2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_int">test_efactory_int()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_error_in_start_and_close">test_parser_target_error_in_start_and_close()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_nodes_append2">test_xpath_extensions_nodes_append2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args">test_xpath_extensions_wrong_args()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_nested">test_efactory_nested()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_extensions_wrong_args">test_xpath_extensions_wrong_args()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute">test_xpath_list_attribute()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_none">test_efactory_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute">test_xpath_list_attribute()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent">test_xpath_list_attribute_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_str">test_efactory_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi">test_parser_target_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent">test_xpath_list_attribute_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings">test_xpath_list_attribute_parent_no_smart_strings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_subtype">test_efactory_subtype()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_property">test_parser_target_property()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_attribute_parent_no_smart_strings">test_xpath_list_attribute_parent_no_smart_strings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment">test_xpath_list_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_unicode">test_efactory_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_comment">test_xpath_list_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements">test_xpath_list_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_efactory_value_concatenation">test_efactory_value_concatenation()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_target_tag">test_parser_target_tag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_elements">test_xpath_list_elements()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing">test_xpath_list_nothing()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element">test_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element">test_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_parser_version">test_parser_version()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_nothing">test_xpath_list_nothing()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element">test_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi">test_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text">test_xpath_list_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent">test_xpath_list_text_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base">test_element_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi">test_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent">test_xpath_list_text_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_element_base_children">test_element_base_children()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_pi">test_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_text_parent_no_smart_strings">test_xpath_list_text_parent_no_smart_strings()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation">test_element_creation()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_contains">test_element_contains()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_pi_base">test_pi_base()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_list_unicode_text_parent">test_xpath_list_unicode_text_parent()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace">test_xpath_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none">test_element_cyclic_gc_none()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_element_creation">test_element_creation()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_pi_nonsense">test_pi_nonsense()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace">test_xpath_namespace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace_empty">test_xpath_namespace_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_element_cyclic_gc_none">test_element_cyclic_gc_none()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse">test_pi_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_namespace_empty">test_xpath_namespace_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns">test_xpath_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_negative">test_element_indexing_negative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns">test_xpath_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_empty">test_xpath_ns_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_only_text">test_element_indexing_only_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_empty">test_xpath_ns_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_none">test_xpath_ns_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text">test_element_indexing_with_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle">test_pickle()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_ns_none">test_xpath_ns_none()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number">test_xpath_number()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_indexing_with_text2">test_element_indexing_with_text2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_boolelement">test_pickle_boolelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_number">test_xpath_number()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error">test_xpath_prefix_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_elementtree">test_pickle_elementtree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_prefix_error">test_xpath_prefix_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string">test_xpath_string()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_floattelement">test_pickle_floattelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_string">test_xpath_string()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document">test_xpath_text_from_other_document()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_intelement">test_pickle_intelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_text_from_other_document">test_xpath_text_from_other_document()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables">test_xpath_variables()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_noneelement">test_pickle_noneelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables">test_xpath_variables()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables_nodeset">test_xpath_variables_nodeset()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested">test_element_nested()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pickle_strelement">test_pickle_strelement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_xpath_variables_nodeset">test_xpath_variables_nodeset()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html">test_xpathevaluator</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested_with_text">test_element_nested_with_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested">test_element_nested()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html">test_xpathevaluator</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old">test_xsiannotate_ignore_old()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_nested_with_text">test_element_nested_with_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_ignore_old">test_xsiannotate_ignore_old()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old">test_xsiannotate_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_processinginstruction">test_processinginstruction()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsiannotate_use_old">test_xsiannotate_use_old()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate">test_xsinil_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom">test_element_nsmap_custom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_hashing">test_proxy_hashing()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsinil_deannotate">test_xsinil_deannotate()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate">test_xsitype_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default">test_element_nsmap_default()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_custom_prefixes">test_element_nsmap_custom_prefixes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse">test_proxy_reuse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_xsitype_deannotate">test_xsitype_deannotate()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html">test_xslt</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty">test_element_nsmap_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_default">test_element_nsmap_default()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_del_root">test_proxy_reuse_after_del_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html">test_xslt</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt">test_xslt()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_element_nsmap_empty">test_element_nsmap_empty()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ProxyTestCase-class.html#test_proxy_reuse_after_gc">test_proxy_reuse_after_gc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">ProxyTestCase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt">test_xslt()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr">test_xslt_access_control_repr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_empty">test_pyannotate_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_broken">test_xslt_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax">test_element_sax()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_ignore_old">test_pyannotate_ignore_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_copy">test_xslt_copy()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_element_sax_ns">test_element_sax_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pyannotate_use_old">test_pyannotate_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_default_parameters">test_xslt_default_parameters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes">test_element_with_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html">test_pyclasslookup</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_text">test_element_write_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_keywords">test_element_with_attributes_keywords()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_error">test_xslt_document_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html">test_elementtree</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_element_with_attributes_ns">test_element_with_attributes_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation">test_pytype_annotation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse">test_xslt_document_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_element_write_text">test_element_write_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_empty">test_pytype_annotation_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_allow">test_xslt_document_parse_allow()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html">test_elementtree</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_annotation_use_old">test_pytype_annotation_use_old()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny">test_xslt_document_parse_deny()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_ElementTree">test_ElementTree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_deannotate">test_pytype_deannotate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny_all">test_xslt_document_parse_deny_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree">test_elementtree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_pytype_xsitype_annotation">test_pytype_xsitype_annotation()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_XML">test_xslt_document_XML()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname">test_qname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib">test_qname_attrib()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_elementtree_error">test_xslt_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attrib_resolve">test_qname_attrib_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_empty">test_xslt_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath">test_elementtree_getpath()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator">test_elementtree_getiterator()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_getset">test_qname_attribute_getset()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding">test_xslt_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial">test_elementtree_getpath_partial()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_getiterator_filter">test_elementtree_getiterator_filter()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve">test_qname_attribute_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_encoding_override">test_xslt_encoding_override()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath">test_elementtree_getpath()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_attribute_resolve_new">test_qname_attribute_resolve_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_html_output">test_xslt_html_output()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_elementtree_getpath_partial">test_elementtree_getpath_partial()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_qname_cmp">test_qname_cmp()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include">test_xslt_include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse">test_empty_parse()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_elementtree_parser_target">test_elementtree_parser_target()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon">test_qname_colon()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_include_from_filelike">test_xslt_include_from_filelike()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element">test_qname_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input">test_xslt_input()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors.ErrorTestCase-class.html#test_empty_parse">test_empty_parse()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors.ErrorTestCase-class.html">ErrorTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty">test_qname_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_input_none">test_xslt_input_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname">test_qname_namespace_localname()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_encoding">test_encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space">test_qname_space()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_invalid_stylesheet">test_xslt_invalid_stylesheet()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_latin1">test_encoding_8bit_latin1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve">test_qname_text_resolve()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_parse_stringio">test_encoding_8bit_parse_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_register_namespace">test_register_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_8bit_xml">test_encoding_8bit_xml()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_type_stringify">test_registered_type_stringify()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_exact">test_encoding_exact()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_registered_types">test_registered_types()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_sub_tostring_default_encoding">test_encoding_sub_tostring_default_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html#test_registry">test_registry()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">ETreeNamespaceClassesTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring">test_encoding_tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_boolean">test_rel_xpath_boolean()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_default_encoding">test_encoding_tostring_default_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html#test_rel_xpath_list_elements">test_rel_xpath_list_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">ETreeXPathTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub">test_encoding_tostring_sub()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html">test_relaxng</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_sub_tail">test_encoding_tostring_sub_tail()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng">test_relaxng()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_parameter_xpath_object">test_xslt_parameter_xpath_object()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_tostring_unknown">test_encoding_tostring_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_elementtree_error">test_relaxng_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_error">test_relaxng_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_utf8_bom">test_encoding_utf8_bom()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_include">test_relaxng_include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_encoding_write_default_encoding">test_encoding_write_default_encoding()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema">test_relaxng_invalid_schema()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema2">test_relaxng_invalid_schema2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema3">test_relaxng_invalid_schema3()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_invalid_schema4">test_relaxng_invalid_schema4()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html">test_errors</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_shortcut">test_relaxng_shortcut()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_escaping">test_escaping()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html#test_relaxng_stringio">test_relaxng_stringio()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">ETreeRelaxNGTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html">test_etree</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html">test_errors</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove">test_remove()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_escaping">test_escaping()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_nonexisting">test_remove_nonexisting()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_repeat_transform">test_xslt_repeat_transform()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes">test_etree_sax_attributes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html">test_etree</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_ns">test_remove_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_resolver_url_building">test_xslt_resolver_url_building()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment">test_etree_sax_comment()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_remove_tail">test_remove_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root">test_etree_sax_comment_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_attributes">test_etree_sax_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double">test_etree_sax_double()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment">test_etree_sax_comment()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_comment_root">test_etree_sax_comment_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_replace_slice_tail">test_replace_slice_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2">test_etree_sax_error2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_double">test_etree_sax_double()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns">test_etree_sax_handler_default_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error">test_etree_sax_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_error2">test_etree_sax_error2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns">test_etree_sax_no_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns">test_etree_sax_handler_default_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">ETreeXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns_attributes">test_etree_sax_no_ns_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_handler_default_ns_None">test_etree_sax_handler_default_ns_None()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1">test_etree_sax_ns1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns">test_etree_sax_no_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2">test_etree_sax_ns2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_no_ns_attributes">test_etree_sax_no_ns_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns_attributes">test_etree_sax_ns_attributes()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns1">test_etree_sax_ns1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi">test_etree_sax_pi()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns2">test_etree_sax_ns2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_root">test_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root">test_etree_sax_pi_root()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_ns_attributes">test_etree_sax_ns_attributes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html">test_sax</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree.Element-class.html">Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi">test_etree_sax_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_sax_to_pulldom">test_sax_to_pulldom()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_pi_root">test_etree_sax_pi_root()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types">test_schema_types()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_redefine_ns">test_etree_sax_redefine_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_schema_types_prefixed">test_schema_types_prefixed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TEXTAREA">TEXTAREA</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#test_etree_sax_simple">test_etree_sax_simple()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html">test_schematron</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html">TextareaElement</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html#test_evil_class_lookup">test_evil_class_lookup()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">ClassLookupTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TFOOT">TFOOT</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron">test_schematron()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_abstract">test_schematron_abstract()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_assertValid">test_schematron_assertValid()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_call">test_schematron_call()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_customization">test_schematron_customization()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_elementtree_error">test_schematron_elementtree_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_empty_pattern">test_schematron_empty_pattern()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_error_log">test_schematron_error_log()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_extend">test_extend()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_element">test_schematron_from_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_file">test_schematron_from_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_from_tree">test_schematron_from_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_args">test_schematron_invalid_args()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema">test_schematron_invalid_schema()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_empty">test_schematron_invalid_schema_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html#test_schematron_invalid_schema_namespace">test_schematron_invalid_schema_namespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">ETreeSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases">test_schematron_phases()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_phases_kwarg">test_schematron_phases_kwarg()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_relaxng_embedded">test_schematron_relaxng_embedded()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_result_report">test_schematron_result_report()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_schematron">test_schematron_store_schematron()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_store_xslt">test_schematron_store_xslt()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#this_dir">this_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_preceding_text">test_failure_preceding_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_validate">test_schematron_validate()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_Element">test_failure_trailing_Element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html#test_schematron_xmlschema_embedded">test_schematron_xmlschema_embedded()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">ETreeISOSchematronTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_text">test_failure_trailing_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_preceding_text">test_failure_preceding_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_set_string">test_set_string()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff.InsensitiveSequenceMatcher-class.html" onclick="show_private();">InsensitiveSequenceMatcher</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_Element">test_failure_trailing_Element()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text">test_set_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TITLE">TITLE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#test_failure_trailing_text">test_failure_trailing_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text2">test_set_text2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html">token</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_bytes">test_feed_parser_bytes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_empty">test_set_text_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_broken">test_feed_parser_error_broken()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_set_text_none">test_set_text_none()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_empty">test_feed_parser_error_close_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr">test_setattr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_close_incomplete">test_feed_parser_error_close_incomplete()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setattr_nonunicode">test_setattr_nonunicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#tostring">tostring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_error_position">test_feed_parser_error_position()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem">test_setitem()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem2">test_setitem2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tostringlist">tostringlist()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_feed_parser_unicode">test_feed_parser_unicode()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#tounicode">tounicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall">test_findall()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_indexerror">test_setitem_indexerror()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#TR">TR</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall">test_findall()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_replace">test_setitem_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#TREE">TREE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string">test_setitem_string()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setitem_string_special">test_setitem_string_special()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_INVALID_HEX">TREE_INVALID_HEX</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setitem_tail">test_setitem_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_findall_ns">test_findall_ns()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice">test_setslice()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#TREE_PYTYPE">TREE_PYTYPE</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all">test_setslice_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#TREE_UNTERMINATED_ENTITY">TREE_UNTERMINATED_ENTITY</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstring">test_fromstring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_empty">test_setslice_all_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist">test_fromstringlist()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree.TreeBuilder-class.html">TreeBuilder</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_characters">test_fromstringlist_characters()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace">test_setslice_all_replace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_fromstringlist_single">test_fromstringlist_single()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed">test_setslice_all_replace_reversed()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator">test_getiterator()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns1">test_setslice_all_replace_reversed_ns1()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_empty">test_getiterator_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_all_replace_reversed_ns2">test_setslice_all_replace_reversed_ns2()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter">test_getiterator_filter()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_complete">test_setslice_complete()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#type_name">type_name</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_comment">test_getiterator_filter_comment()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_getiterator_filter_all">test_getiterator_filter_all()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#test_setslice_elements">test_setslice_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 <td width="33%" class="link-index">&nbsp;</td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#test_setslice_empty">test_setslice_empty()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8d7a96a9c5214fcf8a3d9aa35bcf4bfd5ba0ccd2..91071390c890549baa985bb9c8fcae890f509f90 100644 (file)
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">UnicodeTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#URL">URL</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#uri">uri</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html#uhtml_str">uhtml_str</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">HtmlParserTestCase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#uninstall_clone">uninstall_clone()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree-module.html#use_global_python_log">use_global_python_log()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#URL">URL</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#UL">UL</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#uninstall_dt_self">uninstall_dt_self()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.usedoctest-module.html">usedoctest</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree-module.html#use_global_python_log">use_global_python_log()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#unentitify">unentitify()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#uninstall_module">uninstall_module()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.usedoctest-module.html">usedoctest</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.usedoctest-module.html">usedoctest</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#unescape">unescape()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#unregister">unregister()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#uxml">uxml</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.usedoctest-module.html">usedoctest</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#uni">uni</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#update">update()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
-<td width="33%" class="link-index">&nbsp;</td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#uxml">uxml</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#unichr">unichr()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#uri">uri</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#URI">URI</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 <td width="33%" class="link-index">&nbsp;</td>
 </tr>
 </table>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2d6fa14e9b314c529f37db7b5908d898d2106bd9..f32440ec3bdf2ebcfb33585f8e65a0bc5099d0e9 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ec979b8bbf82502c596d3a8b9984de6f9ea2f5bd..d59ea1678963acc92aaa6353926d2417a81c6e5a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 988cea0dfc9de1d8de3fb45b767e378f49aff4eb..5362bbbbd43b34fc9a99ca87624555de12cc65d0 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b7ee166793d44738f9f777473ac061202f89aa76..3f8250b29e4967b7842c6c10e4cc35559d9aa376 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bb045bee9b04781d611933b917d2cd52a79bb04c..b50cf1d8acfbaa5ca2a04d64090baa8f0c443cdf 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3d1d8f71d47714fb8ab286e6e730116a91ba05de..339d29162217235e5ff09eee0f63820d578f95bf 100644 (file)
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_negative_cache_version">_abc_negative_cache_version</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_negative_cache">_abc_negative_cache</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNG-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNG-class.html">RelaxNG</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_registry">_abc_registry</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_negative_cache_version">_abc_negative_cache_version</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.Resolver-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.Resolver-class.html">Resolver</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__del">_action__del()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_registry">_abc_registry</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__add__">__add__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.Schematron-class.html">Schematron</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__get">_action__get()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__del">_action__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SiblingsIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.SiblingsIterator-class.html" onclick="show_private();">SiblingsIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__set">_action__set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__get">_action__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_add_class">_add_class()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_action__set">_action__set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#_all_xpath">_all_xpath</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_add_class">_add_class()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLParser-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLParser-class.html">XMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#_append_log_message">_append_log_message()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#_all_xpath">_all_xpath</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNG-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNG-class.html">RelaxNG</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchema-class.html">XMLSchema</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_append_text">_append_text()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#_append_log_message">_append_log_message()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.Schematron-class.html">Schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#_archive_re">_archive_re</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_append_text">_append_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathDocumentEvaluator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html">_Attrib</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#_archive_re">_archive_re</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchema-class.html">XMLSchema</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathElementEvaluator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_classes">_avoid_classes</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html">_Attrib</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_elements">_avoid_elements</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_classes">_avoid_classes</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTAccessControl-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_hosts">_avoid_hosts</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_elements">_avoid_elements</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTExtension-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTExtension-class.html">XSLTExtension</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_word_break_classes">_avoid_word_break_classes</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_hosts">_avoid_hosts</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_word_break_elements">_avoid_word_break_elements</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_word_break_classes">_avoid_word_break_classes</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.html._MethodFunc-class.html">_MethodFunc</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html">_BaseErrorLog</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_avoid_word_break_elements">_avoid_word_break_elements</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Comment-class.html" onclick="show_private();">_Comment</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_body_re">_body_re</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html">_BaseErrorLog</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Document-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Document-class.html" onclick="show_private();">_Document</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_break_prefer_re">_break_prefer_re</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_body_re">_body_re</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._DomainErrorLog-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._DomainErrorLog-class.html" onclick="show_private();">_DomainErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_break_text">_break_text()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_break_prefer_re">_break_prefer_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#_build_pipeline">_build_pipeline()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_break_text">_break_text()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementIterator-class.html" onclick="show_private();">_ElementIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#_build_qname">_build_qname()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html#_build_pipeline">_build_pipeline()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">ThreadPipelineTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__call__">__call__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementMatchIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementMatchIterator-class.html" onclick="show_private();">_ElementMatchIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_buildElementClass">_buildElementClass()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#_build_qname">_build_qname()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#__checkBool">__checkBool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementTagMatcher-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTagMatcher-class.html" onclick="show_private();">_ElementTagMatcher</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#_buildTag">_buildTag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_buildElementClass">_buildElementClass()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__complex__">__complex__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_bytes">_bytes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#_buildTag">_buildTag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__complex__">__complex__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementUnicodeResult-class.html" onclick="show_private();">_ElementUnicodeResult</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_check">_check()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_bytes">_bytes()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__contains__">__contains__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element">_check_element()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_check">_check()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__contains__">__contains__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree">_check_element_tree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element">_check_element()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._FeedParser-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._FeedParser-class.html" onclick="show_private();">_FeedParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping">_check_mapping()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_element_tree">_check_element_tree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string">_check_string()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_mapping">_check_mapping()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_checked__get">_checked__get()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_check_string">_check_string()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__contains__">__contains__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_checked__set">_checked__set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_checked__get">_checked__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict">_checkIDDict()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_checked__set">_checked__set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__copy__">__copy__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._RotatingErrorLog-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._RotatingErrorLog-class.html" onclick="show_private();">_RotatingErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#_class_xpath">_class_xpath</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict">_checkIDDict()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__copy__">__copy__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._SaxParserTarget-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._SaxParserTarget-class.html" onclick="show_private();">_SaxParserTarget</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#_clear_error_log">_clear_error_log()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#_class_xpath">_class_xpath</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#__copy__">__copy__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#_collect_string_content">_collect_string_content</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html#_clear_error_log">_clear_error_log()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Validator-class.html" onclick="show_private();">_Validator</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__deepcopy__">__deepcopy__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html">_Comment</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#_collect_string_content">_collect_string_content</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__deepcopy__">__deepcopy__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XSLTProcessingInstruction-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTProcessingInstruction-class.html" onclick="show_private();">_XSLTProcessingInstruction</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_compile">_compile</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html">_Comment</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__deepcopy__">__deepcopy__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTResultTree-class.html" onclick="show_private();">_XSLTResultTree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_conditional_comment_re">_conditional_comment_re</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_compile">_compile</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#__deepcopy__">__deepcopy__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_contains_block_level_tag">_contains_block_level_tag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_conditional_comment_re">_conditional_comment_re</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__delattr__">__delattr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.iterwalk-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_convert_children">_convert_children()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_contains_block_level_tag">_contains_block_level_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__delitem__">__delitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.xmlfile-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_convert_tree">_convert_tree()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_convert_children">_convert_children()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff.tag_token-class.html" onclick="show_private();">tag_token</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#_css_import_re">_css_import_re</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_convert_tree">_convert_tree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__delitem__">__delitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff.token-class.html" onclick="show_private();">token</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_css_import_re">_css_import_re</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#_css_import_re">_css_import_re</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__delitem__">__delitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_css_javascript_re">_css_javascript_re</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_css_import_re">_css_import_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html-module.html#_css_url_re">_css_url_re</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_css_javascript_re">_css_javascript_re</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.ElementSoup-module.html#__doc__">__doc__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.ElementSoup-module.html">lxml.html.ElementSoup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.FloatElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.FloatElement-class.html">FloatElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlElementClassLookup-class.html#_default_element_classes">_default_element_classes</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html-module.html#_css_url_re">_css_url_re</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#__doc__">__doc__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.IntElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.IntElement-class.html">IntElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Document-class.html">_Document</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlElementClassLookup-class.html#_default_element_classes">_default_element_classes</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.xmlfile-class.html#__enter__">__enter__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.LongElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.LongElement-class.html">LongElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_domain">_domain</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Document-class.html">_Document</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__eq__">__eq__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._DomainErrorLog-class.html">_DomainErrorLog</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_domain">_domain</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__eq__">__eq__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html">_Element</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._DomainErrorLog-class.html">_DomainErrorLog</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html">_ElementIterator</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html">_Element</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementMatchIterator-class.html">_ElementMatchIterator</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html">_ElementIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementStringResult-class.html">_ElementStringResult</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._ElementMatchIterator-class.html">_ElementMatchIterator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifyElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifyElementClassLookup-class.html">ObjectifyElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementTagMatcher-class.html">_ElementTagMatcher</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._ElementStringResult-class.html">_ElementStringResult</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html">_ElementTree</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._ElementTagMatcher-class.html">_ElementTagMatcher</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html">_ElementUnicodeResult</a><br />
+<td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html">_ElementTree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDepthFirstIterator-class.html#__next__">__next__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDepthFirstIterator-class.html" onclick="show_private();">ElementDepthFirstIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_end_body_re">_end_body_re</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementUnicodeResult-class.html">_ElementUnicodeResult</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__float__">__float__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementTextIterator-class.html#__next__">__next__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementTextIterator-class.html" onclick="show_private();">ElementTextIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html">_Entity</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_end_body_re">_end_body_re</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__ge__">__ge__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html#__next__">__next__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementIterator-class.html" onclick="show_private();">_ElementIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_error_type">_error_type</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html">_Entity</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__ge__">__ge__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementMatchIterator-class.html#__next__">__next__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementMatchIterator-class.html" onclick="show_private();">_ElementMatchIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html">_ErrorLog</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_error_type">_error_type</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__ge__">__ge__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#__next__">__next__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html">_ETreeTestCaseBase</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html">_ErrorLog</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__ge__">__ge__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.iterwalk-class.html#__next__">__next__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_expand">_expand</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html">_ETreeTestCaseBase</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__ge__">__ge__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__nonzero__">__nonzero__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_extract">_extract()</a><br />
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_expand">_expand</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__nonzero__">__nonzero__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_extract_rng">_extract_rng</a><br />
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_extract">_extract()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__nonzero__">__nonzero__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_extract_xsd">_extract_xsd</a><br />
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_extract_rng">_extract_rng</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__nonzero__">__nonzero__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._FeedParser-class.html">_FeedParser</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_extract_xsd">_extract_xsd</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__getattr__">__getattr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__nonzero__">__nonzero__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_fields__get">_fields__get()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._FeedParser-class.html">_FeedParser</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html#__getattribute__">__getattribute__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__nonzero__">__nonzero__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_fields__set">_fields__set()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_fields__get">_fields__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__nonzero__">__nonzero__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file">_file</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_fields__set">_fields__set()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__getitem__">__getitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__oct__">__oct__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_fill_form">_fill_form()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file">_file</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__getitem__">__getitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__or__">__or__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_fill_multiple">_fill_multiple()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_fill_form">_fill_form()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_fill_single">_fill_single()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_fill_multiple">_fill_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml-module.html">lxml</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_find_doctest_frame">_find_doctest_frame()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_fill_single">_fill_single()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__getitem__">__getitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.builder-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.builder-module.html">lxml.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_find_elements_for_name">_find_elements_for_name()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_find_doctest_frame">_find_doctest_frame()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__getitem__">__getitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.cssselect-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_find_external_links">_find_external_links</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_find_elements_for_name">_find_elements_for_name()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__getitem__">__getitem__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_find_form">_find_form()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_find_external_links">_find_external_links</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__gt__">__gt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_find_form_ids">_find_form_ids()</a><br />
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_find_form">_find_form()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.ElementSoup-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.ElementSoup-module.html">lxml.html.ElementSoup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_find_styled_elements">_find_styled_elements</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_find_form_ids">_find_form_ids()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__gt__">__gt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#_find_tag">_find_tag()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_find_styled_elements">_find_styled_elements</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__gt__">__gt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.builder-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.builder-module.html">lxml.html.builder</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_bytes">_fix_bytes()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#_find_tag">_find_tag()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__gt__">__gt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_exceptions">_fix_exceptions()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_bytes">_fix_bytes()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.defs-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.defs-module.html">lxml.html.defs</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_traceback">_fix_traceback()</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_exceptions">_fix_exceptions()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_unicode">_fix_unicode</a><br />
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_traceback">_fix_traceback()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_fixup_ins_del_tags">_fixup_ins_del_tags()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_fix_unicode">_fix_unicode</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__hash__">__hash__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#__package__">__package__</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_fixup_ins_del_tags">_fixup_ins_del_tags()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__hash__">__hash__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.LabelElement-class.html#_for_element__del">_for_element__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.LabelElement-class.html">LabelElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__hash__">__hash__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__hash__">__hash__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.includes-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.includes-module.html">lxml.includes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.LabelElement-class.html#_for_element__get">_for_element__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.LabelElement-class.html">LabelElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__hash__">__hash__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__hex__">__hex__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.LabelElement-class.html#_for_element__set">_for_element__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.LabelElement-class.html">LabelElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__hex__">__hex__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_form_name_xpath">_form_name_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.builder.ElementMaker-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.builder.ElementMaker-class.html">ElementMaker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.pyclasslookup-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.pyclasslookup-module.html">lxml.pyclasslookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#_forms_xpath">_forms_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_get_caller_relative_path">_get_caller_relative_path()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare._RestoreChecker-class.html" onclick="show_private();">_RestoreChecker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.AttributeBasedElementClassLookup-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.AttributeBasedElementClassLookup-class.html">AttributeBasedElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests-module.html">lxml.tests</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#_get_etree">_get_etree()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.AttributeBasedElementClassLookup-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.AttributeBasedElementClassLookup-class.html">AttributeBasedElementClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.CommentBase-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.CommentBase-class.html">CommentBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#_getName">_getName()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.CommentBase-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.CommentBase-class.html">CommentBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#_getName">_getName()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ETCompatXMLParser-class.html">ETCompatXMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_builder-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_builder-module.html">lxml.tests.test_builder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#_getName">_getName()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ETCompatXMLParser-class.html">ETCompatXMLParser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ETXPath-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ETXPath-class.html">ETXPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_classlookup-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_classlookup-module.html">lxml.tests.test_classlookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNGErrorTypes-class.html#_getName">_getName()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ETXPath-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ETXPath-class.html">ETXPath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ElementBase-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementBase-class.html">ElementBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_css-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_css-module.html">lxml.tests.test_css</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax-module.html#_getNsTag">_getNsTag()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax-module.html">lxml.sax</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ElementBase-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementBase-class.html">ElementBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_dtd-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_dtd-module.html">lxml.tests.test_dtd</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_has_sneaky_javascript">_has_sneaky_javascript()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ElementNamespaceClassLookup-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementNamespaceClassLookup-class.html">ElementNamespaceClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree-module.html">lxml.tests.test_elementtree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_html_parser">_html_parser</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ElementNamespaceClassLookup-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementNamespaceClassLookup-class.html">ElementNamespaceClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.EntityBase-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.EntityBase-class.html">EntityBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_errors-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_errors-module.html">lxml.tests.test_errors</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#_id_xpath">_id_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.EntityBase-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.EntityBase-class.html">EntityBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.FallbackElementClassLookup-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.FallbackElementClassLookup-class.html">FallbackElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html">_IDDict</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.FallbackElementClassLookup-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.FallbackElementClassLookup-class.html">FallbackElementClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.HTMLParser-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.HTMLParser-class.html">HTMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_htmlparser-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_htmlparser-module.html">lxml.tests.test_htmlparser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_include">_include</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.HTMLParser-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.HTMLParser-class.html">HTMLParser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.LxmlError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.LxmlError-class.html">LxmlError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io-module.html">lxml.tests.test_http_io</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_include">_include()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.LxmlError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.LxmlError-class.html">LxmlError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.PIBase-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.PIBase-class.html">PIBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#_init">_init()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.PIBase-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.PIBase-class.html">PIBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ParseError-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ParseError-class.html">ParseError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#_init">_init()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ParseError-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ParseError-class.html">ParseError</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.PyErrorLog-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_isoschematron-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_isoschematron-module.html">lxml.tests.test_isoschematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.FloatElement-class.html#_init">_init()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.FloatElement-class.html">FloatElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.PyErrorLog-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_nsclasses-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_nsclasses-module.html">lxml.tests.test_nsclasses</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.IntElement-class.html#_init">_init()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.IntElement-class.html">IntElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.RelaxNG-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNG-class.html">RelaxNG</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify-module.html">lxml.tests.test_objectify</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.LongElement-class.html#_init">_init()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.LongElement-class.html">LongElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.RelaxNG-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNG-class.html">RelaxNG</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.Schematron-class.html">Schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup-module.html">lxml.tests.test_pyclasslookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_input_xpath">_input_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.Schematron-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_relaxng-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_relaxng-module.html">lxml.tests.test_relaxng</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_ins_del_re">_ins_del_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.TreeBuilder-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.TreeBuilder-class.html">TreeBuilder</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax-module.html">lxml.tests.test_sax</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_insert_break">_insert_break()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XInclude-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XInclude-class.html">XInclude</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XMLParser-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XMLParser-class.html">XMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_schematron-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_schematron-module.html">lxml.tests.test_schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_insert_error">_insert_error()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XMLParser-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XMLParser-class.html">XMLParser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchema-class.html">XMLSchema</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading-module.html">lxml.tests.test_threading</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_io._IOTestCaseBase-class.html">_IOTestCaseBase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_io-module.html">lxml.tests.test_io</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XMLSchema-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchema-class.html">XMLSchema</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_unicode-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_unicode-module.html">lxml.tests.test_unicode</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_IS_PYTHON_3">_IS_PYTHON_3</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XPathDocumentEvaluator-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema-module.html">lxml.tests.test_xmlschema</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree._IterParseIterator-class.html">_IterParseIterator</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XPathDocumentEvaluator-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XPathDocumentEvaluator-class.html">XPathDocumentEvaluator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XPathElementEvaluator-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator-module.html">lxml.tests.test_xpathevaluator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_javascript_scheme_re">_javascript_scheme_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XPathElementEvaluator-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XPathElementEvaluator-class.html" onclick="show_private();">XPathElementEvaluator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt-module.html">lxml.tests.test_xslt</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_kill_elements">_kill_elements()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XSLT-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XSLT-class.html">XSLT</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.XSLTAccessControl-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#__package__">__package__</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#_label__del">_label__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.XSLTAccessControl-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#__parseBool">__parseBool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#_label__get">_label__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._DomainErrorLog-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._DomainErrorLog-class.html" onclick="show_private();">_DomainErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__pos__">__pos__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.HtmlMixin-class.html#_label__set">_label__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.HtmlMixin-class.html">HtmlMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._DomainErrorLog-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._DomainErrorLog-class.html" onclick="show_private();">_DomainErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__pow__">__pow__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_label_for_xpath">_label_for_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree-module.html#__pyx_capi__">__pyx_capi__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#_label_xpath">_label_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._RotatingErrorLog-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._RotatingErrorLog-class.html" onclick="show_private();">_RotatingErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.C14NError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.C14NError-class.html">C14NError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_level">_level</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._RotatingErrorLog-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._RotatingErrorLog-class.html" onclick="show_private();">_RotatingErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._TargetParserResult-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._TargetParserResult-class.html" onclick="show_private();">_TargetParserResult</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DTDError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTDError-class.html">DTDError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_link_regexes">_link_regexes</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._TargetParserResult-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._TargetParserResult-class.html" onclick="show_private();">_TargetParserResult</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DTDParseError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTDParseError-class.html">DTDParseError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_link_text">_link_text()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._XPathEvaluatorBase-class.html" onclick="show_private();">_XPathEvaluatorBase</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DTDValidateError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTDValidateError-class.html">DTDValidateError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html">_ListErrorLog</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.iterwalk-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.DocumentInvalid-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DocumentInvalid-class.html">DocumentInvalid</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html">_LogEntry</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.iterwalk-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.xmlfile-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.Error-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.Error-class.html">Error</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare.LXMLOutputChecker-class.html#_looks_like_markup">_looks_like_markup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare.LXMLOutputChecker-class.html">LXMLOutputChecker</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.xmlfile-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.xmlfile-class.html" onclick="show_private();">xmlfile</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.CheckboxValues-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#_looks_like_url">_looks_like_url()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.CheckboxValues-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_lxml_default_loader">_lxml_default_loader()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.HTMLParser-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.HTMLParser-class.html">HTMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.cssselect-module.html#_make_lower_case">_make_lower_case()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.cssselect-module.html">lxml.cssselect</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.HTMLParser-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.HTMLParser-class.html">HTMLParser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.HtmlElementClassLookup-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.LxmlError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.LxmlError-class.html">LxmlError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_merge_element_contents">_merge_element_contents()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.HtmlElementClassLookup-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.HtmlElementClassLookup-class.html">HtmlElementClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.LxmlRegistryError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.LxmlRegistryError-class.html">LxmlRegistryError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_method__get">_method__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.LxmlSyntaxError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.LxmlSyntaxError-class.html">LxmlSyntaxError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_method__set">_method__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.XHTMLParser-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.XHTMLParser-class.html">XHTMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.NamespaceRegistryError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.NamespaceRegistryError-class.html">NamespaceRegistryError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html._MethodFunc-class.html">_MethodFunc</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.XHTMLParser-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.XHTMLParser-class.html">XHTMLParser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html._MethodFunc-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html._MethodFunc-class.html">_MethodFunc</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ParseError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ParseError-class.html">ParseError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.diff-module.html#_move_el_inside_block">_move_el_inside_block()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.diff-module.html">lxml.html.diff</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html._MethodFunc-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html._MethodFunc-class.html">_MethodFunc</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ParserError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ParserError-class.html">ParserError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_multiple__get">_multiple__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNGError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNGError-class.html">RelaxNGError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_multiple__set">_multiple__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.formfill.DefaultErrorCreator-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.formfill.DefaultErrorCreator-class.html">DefaultErrorCreator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.html5parser.HTMLParser-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser.HTMLParser-class.html">HTMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNGErrorTypes-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.FormElement-class.html#_name">_name()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FormElement-class.html">FormElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser.HTMLParser-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser.HTMLParser-class.html">HTMLParser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.html5parser.XHTMLParser-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser.XHTMLParser-class.html">XHTMLParser</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNGParseError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNGParseError-class.html">RelaxNGParseError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__del">_name__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser.XHTMLParser-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser.XHTMLParser-class.html">XHTMLParser</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNGValidateError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNGValidateError-class.html">RelaxNGValidateError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__get">_name__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SchematronError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.SchematronError-class.html">SchematronError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#_name__set">_name__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.ElementMaker-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ElementMaker-class.html">ElementMaker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SchematronParseError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.SchematronParseError-class.html">SchematronParseError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#_name_xpath">_name_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifyElementClassLookup-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifyElementClassLookup-class.html">ObjectifyElementClassLookup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SchematronValidateError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.SchematronValidateError-class.html">SchematronValidateError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_name_xpath">_name_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifyElementClassLookup-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifyElementClassLookup-class.html">ObjectifyElementClassLookup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.SerialisationError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.SerialisationError-class.html">SerialisationError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorDomains-class.html#_names">_names</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorDomains-class.html">ErrorDomains</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XIncludeError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XIncludeError-class.html">XIncludeError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorLevels-class.html#_names">_names</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorLevels-class.html">ErrorLevels</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeContentHandler-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeContentHandler-class.html">ElementTreeContentHandler</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLSchemaError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchemaError-class.html">XMLSchemaError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.ErrorTypes-class.html#_names">_names</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ErrorTypes-class.html">ErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLike-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.LargeFileLike-class.html">LargeFileLike</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLSchemaParseError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchemaParseError-class.html">XMLSchemaParseError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.RelaxNGErrorTypes-class.html#_names">_names</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.RelaxNGErrorTypes-class.html">RelaxNGErrorTypes</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLike-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.LargeFileLike-class.html">LargeFileLike</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">LargeFileLikeUnicode</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLSchemaValidateError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSchemaValidateError-class.html">XMLSchemaValidateError</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#_namespace_map">_namespace_map</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.LargeFileLikeUnicode-class.html">LargeFileLikeUnicode</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.common_imports.SillyFileLike-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.SillyFileLike-class.html">SillyFileLike</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XMLSyntaxError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XMLSyntaxError-class.html">XMLSyntaxError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_norm_whitespace_re">_norm_whitespace_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.common_imports.SillyFileLike-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.SillyFileLike-class.html">SillyFileLike</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathError-class.html">XPathError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#_options_xpath">_options_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html">SimpleFileLike</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathEvalError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathEvalError-class.html">XPathEvalError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.soupparser-module.html#_parse">_parse()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.soupparser-module.html">lxml.html.soupparser</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html">SimpleFileLike</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html">Worker</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathFunctionError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathFunctionError-class.html">XPathFunctionError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#_parse_file">_parse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html">Worker</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html">simple_resolver</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathResultError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathResultError-class.html">XPathResultError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_parse_file">_parse_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__">__init__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html">simple_resolver</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__int__">__int__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPathSyntaxError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPathSyntaxError-class.html">XPathSyntaxError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_http_io.HttpIOTestCase-class.html#_parse_from_http">_parse_from_http()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">HttpIOTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__int__">__int__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__int__">__int__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTApplyError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTApplyError-class.html">XSLTApplyError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html">_ProcessingInstruction</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__int__">__int__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__invert__">__invert__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTError-class.html">XSLTError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html#_read_file">_read_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase-class.html">SimpleFileLikeXmlFileTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__invert__">__invert__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ElementDepthFirstIterator-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDepthFirstIterator-class.html" onclick="show_private();">ElementDepthFirstIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTExtensionError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTExtensionError-class.html">XSLTExtensionError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_read_file">_read_file()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">_XmlFileTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ElementDepthFirstIterator-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDepthFirstIterator-class.html" onclick="show_private();">ElementDepthFirstIterator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.ElementTextIterator-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementTextIterator-class.html" onclick="show_private();">ElementTextIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTParseError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTParseError-class.html">XSLTParseError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.sax.ElementTreeProducer-class.html#_recursive_saxify">_recursive_saxify()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.sax.ElementTreeProducer-class.html">ElementTreeProducer</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.ElementTextIterator-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.ElementTextIterator-class.html" onclick="show_private();">ElementTextIterator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTSaveError-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTSaveError-class.html">XSLTSaveError</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html-module.html#_rel_links_xpath">_rel_links_xpath</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html-module.html">lxml.html</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementStringResult-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementStringResult-class.html" onclick="show_private();">_ElementStringResult</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_remove_javascript_link">_remove_javascript_link()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementIterator-class.html" onclick="show_private();">_ElementIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._TargetParserResult-class.html#__qualname__">__qualname__</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._TargetParserResult-class.html" onclick="show_private();">_TargetParserResult</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#_repr_re">_repr_re</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementIterator-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementIterator-class.html" onclick="show_private();">_ElementIterator</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ElementMatchIterator-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementMatchIterator-class.html" onclick="show_private();">_ElementMatchIterator</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__radd__">__radd__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.dummy_http_server._RequestHandler-class.html">_RequestHandler</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.dummy_http_server-module.html">lxml.tests.dummy_http_server</a>)</span></td>
 </tr>
-<tr>
-<td width="33%" class="link-index"><a href="lxml.etree._ElementMatchIterator-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ElementMatchIterator-class.html" onclick="show_private();">_ElementMatchIterator</a>)</span></td>
+<tr>
+<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__radd__">__radd__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_resources_dir">_resources_dir</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._ErrorLog-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ErrorLog-class.html" onclick="show_private();">_ErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rand__">__rand__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.doctestcompare._RestoreChecker-class.html">_RestoreChecker</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rdiv__">__rdiv__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports.HelperTestCase-class.html#_rootstring">_rootstring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports.HelperTestCase-class.html">HelperTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__reduce__">__reduce__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_rootstring">_rootstring()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.iterparse-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.iterparse-class.html">iterparse</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.iterwalk-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.cssselect.CSSSelector-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.cssselect.CSSSelector-class.html">CSSSelector</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._RotatingErrorLog-class.html">_RotatingErrorLog</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.iterwalk-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.iterwalk-class.html">iterwalk</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.CheckboxValues-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XPath-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XPath-class.html">XPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_threading.ThreadingTestCase-class.html#_run_thread">_run_thread()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_threading.ThreadingTestCase-class.html">ThreadingTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.CheckboxValues-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree.XSLTAccessControl-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.XSLTAccessControl-class.html">XSLTAccessControl</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_serialize">_saxify_serialize()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html#_saxify_unsaxify">_saxify_unsaxify()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">ETreeSaxTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._BaseErrorLog-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._BaseErrorLog-class.html" onclick="show_private();">_BaseErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._SaxParserTarget-class.html">_SaxParserTarget</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__iter__">__iter__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Comment-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Comment-class.html" onclick="show_private();">_Comment</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_schematron_root">_schematron_root</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__iter__">__iter__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__le__">__le__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_select">_select()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__le__">__le__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__le__">__le__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Entity-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Entity-class.html" onclick="show_private();">_Entity</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree-module.html#_serialize">_serialize</a><br />
 <span class="index-where">(in&nbsp;<a href="xml.etree.ElementTree-module.html">xml.etree.ElementTree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__le__">__le__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__le__">__le__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#_setClassLookup">_setClassLookup()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">PyClassLookupTestCase</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__le__">__le__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__le__">__le__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ElementTree-class.html#_setroot">_setroot()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ElementTree-class.html" onclick="show_private();">_ElementTree</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__le__">__le__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__le__">__le__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._LogEntry-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._LogEntry-class.html" onclick="show_private();">_LogEntry</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#_setText">_setText()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__le__">__le__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__le__">__le__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._ProcessingInstruction-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ProcessingInstruction-class.html" onclick="show_private();">_ProcessingInstruction</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#_setValueParser">_setValueParser()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__le__">__le__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__len__">__len__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
 <td width="33%" class="link-index"><a href="xml.etree.ElementTree._SimpleElementPath-class.html">_SimpleElementPath</a></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__len__">__len__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__len__">__len__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxValues-class.html#__repr__">__repr__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxValues-class.html">CheckboxValues</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.common_imports-module.html#_str">_str()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.common_imports-module.html">lxml.tests.common_imports</a>)</span></td>
 </tr>
 <tr>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__len__">__len__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.html5parser-module.html#_strings">_strings</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.html5parser-module.html">lxml.html.html5parser</a>)</span></td>
-</tr>
-<tr>
 <td width="33%" class="link-index"><a href="lxml.etree._IDDict-class.html#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._IDDict-class.html" onclick="show_private();">_IDDict</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_stylesheet_param_dict">_stylesheet_param_dict()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._ListErrorLog-class.html#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._ListErrorLog-class.html" onclick="show_private();">_ListErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputGetter-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputGetter-class.html">InputGetter</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_substitute_comments">_substitute_comments()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.InputMixin-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.InputMixin-class.html">InputMixin</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean-module.html#_substitute_whitespace">_substitute_whitespace()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean-module.html">lxml.html.clean</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__len__">__len__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.MultipleSelectOptions-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.MultipleSelectOptions-class.html">MultipleSelectOptions</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_tag">_tag</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__long__">__long__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff.tag_token-class.html" onclick="show_private();">tag_token</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.clean.Cleaner-class.html#_tag_link_attrs">_tag_link_attrs</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.clean.Cleaner-class.html">Cleaner</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__long__">__long__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.diff.token-class.html" onclick="show_private();">token</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff.tag_token-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff.tag_token-class.html" onclick="show_private();">tag_token</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.formfill-module.html#_takes_multiple">_takes_multiple()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.formfill-module.html">lxml.html.formfill</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify-module.html#__lower_bool">__lower_bool()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.diff.token-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.diff.token-class.html" onclick="show_private();">token</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._TargetParserResult-class.html">_TargetParserResult</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__lshift__">__lshift__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_del_tail">_test_del_tail()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_element_boolean">_test_element_boolean()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match3">_test_exslt_regexp_match3()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match4">_test_exslt_regexp_match4()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__repr__">__repr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.PyType-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.PyType-class.html">PyType</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__reversed__">__reversed__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__repr__">__repr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_getchildren">_test_getchildren()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__lt__">__lt__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rlshift__">__rlshift__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__reversed__">__reversed__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html#_test_pickle">_test_pickle()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">ObjectifyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__mod__">__mod__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rmod__">__rmod__()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rlshift__">__rlshift__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__mod__">__mod__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__rmod__">__rmod__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rmod__">__rmod__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_test_wrong_unicode_encoding">_test_wrong_unicode_encoding()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__mul__">__mul__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rmul__">__rmul__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__rmod__">__rmod__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html#_test_xpath_compile_unicode">_test_xpath_compile_unicode()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">ETreeETXPathClassTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__mul__">__mul__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__rmul__">__rmul__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rmul__">__rmul__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_type__get">_type__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__ror__">__ror__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__rmul__">__rmul__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_type__set">_type__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rpow__">__rpow__()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__ror__">__ror__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron.Schematron-class.html#_validation_errors">_validation_errors</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron.Schematron-class.html">Schematron</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rrshift__">__rrshift__()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rpow__">__rpow__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._Validator-class.html">_Validator</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rshift__">__rshift__()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rrshift__">__rrshift__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__del">_value__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rsub__">__rsub__()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rshift__">__rshift__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__del">_value__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.StringElement-class.html#__ne__">__ne__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.StringElement-class.html">StringElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rtruediv__">__rtruediv__()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rsub__">__rsub__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__del">_value__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__neg__">__neg__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rxor__">__rxor__()</a><br />
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rtruediv__">__rtruediv__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__del">_value__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.AncestorsIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.AncestorsIterator-class.html" onclick="show_private();">AncestorsIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__setattr__">__setattr__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__rxor__">__rxor__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__del">_value__del()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.AttributeBasedElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.AttributeBasedElementClassLookup-class.html">AttributeBasedElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__setitem__">__setitem__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__setattr__">__setattr__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__get">_value__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.CDATA-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.CDATA-class.html">CDATA</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__setitem__">__setitem__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Attrib-class.html#__setitem__">__setitem__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Attrib-class.html" onclick="show_private();">_Attrib</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__get">_value__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.CommentBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.CommentBase-class.html">CommentBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__setitem__">__setitem__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._Element-class.html#__setitem__">__setitem__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._Element-class.html" onclick="show_private();">_Element</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__get">_value__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.CustomElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.CustomElementClassLookup-class.html">CustomElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__setitem__">__setitem__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#__setitem__">__setitem__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__get">_value__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.DTD-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DTD-class.html">DTD</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__setitem__">__setitem__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__get">_value__get()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.DocInfo-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.DocInfo-class.html" onclick="show_private();">DocInfo</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTResultTree-class.html" onclick="show_private();">_XSLTResultTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree.QName-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree.QName-class.html">QName</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.CheckboxGroup-class.html#_value__set">_value__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.CheckboxGroup-class.html">CheckboxGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ETCompatXMLParser-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ETCompatXMLParser-class.html">ETCompatXMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTResultTree-class.html" onclick="show_private();">_XSLTResultTree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.InputElement-class.html#_value__set">_value__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.InputElement-class.html">InputElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ETXPath-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ETXPath-class.html">ETXPath</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.BoolElement-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.BoolElement-class.html">BoolElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.RadioGroup-class.html#_value__set">_value__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.RadioGroup-class.html">RadioGroup</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementBase-class.html">ElementBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NoneElement-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NoneElement-class.html">NoneElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.SelectElement-class.html#_value__set">_value__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.SelectElement-class.html">SelectElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementChildIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementChildIterator-class.html" onclick="show_private();">ElementChildIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.html.TextareaElement-class.html#_value__set">_value__set()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.html.TextareaElement-class.html">TextareaElement</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementClassLookup-class.html">ElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectPath-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectPath-class.html">ObjectPath</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.ElementInclude-module.html#_wrap_et_loader">_wrap_et_loader()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.ElementInclude-module.html">lxml.ElementInclude</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDefaultClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDefaultClassLookup-class.html">ElementDefaultClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__str__">__str__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedDataElement-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedDataElement-class.html">ObjectifiedDataElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement">_writeElement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementDepthFirstIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementDepthFirstIterator-class.html" onclick="show_private();">ElementDepthFirstIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__sub__">__sub__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.ObjectifiedElement-class.html#__str__">__str__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.ObjectifiedElement-class.html">ObjectifiedElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementNamespaceClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementNamespaceClassLookup-class.html">ElementNamespaceClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#__test__">__test__</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__sub__">__sub__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElementFile">_writeElementFile()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">_ETreeTestCaseBase</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ElementTextIterator-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ElementTextIterator-class.html" onclick="show_private();">ElementTextIterator</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree-module.html#__test__">__test__</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.doctestcompare-module.html#__test__">__test__</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.doctestcompare-module.html">lxml.doctestcompare</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_etree-module.html">lxml.tests.test_etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.EntityBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.EntityBase-class.html">EntityBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify-module.html#__test__">__test__</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree-module.html#__test__">__test__</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.isoschematron-module.html#_xml_schema_root">_xml_schema_root</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.isoschematron-module.html">lxml.isoschematron</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.FallbackElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.FallbackElementClassLookup-class.html">FallbackElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__truediv__">__truediv__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify-module.html#__test__">__test__</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html">_XmlFileTestCaseBase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.tests.test_incremental_xmlfile-module.html">lxml.tests.test_incremental_xmlfile</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.HTMLParser-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.HTMLParser-class.html">HTMLParser</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html#__unicode__">__unicode__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTResultTree-class.html" onclick="show_private();">_XSLTResultTree</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__truediv__">__truediv__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XPathEvaluatorBase-class.html">_XPathEvaluatorBase</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.PIBase-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.PIBase-class.html">PIBase</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify-module.html#__unpickleElementTree">__unpickleElementTree()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html#__unicode__">__unicode__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.etree._XSLTResultTree-class.html" onclick="show_private();">_XSLTResultTree</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XSLTProcessingInstruction-class.html">_XSLTProcessingInstruction</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.ParserBasedElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.ParserBasedElementClassLookup-class.html">ParserBasedElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__xor__">__xor__()</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify-module.html#__unpickleElementTree">__unpickleElementTree()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify-module.html">lxml.objectify</a>)</span></td>
 <td width="33%" class="link-index"><a href="lxml.etree._XSLTResultTree-class.html">_XSLTResultTree</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree-module.html">lxml.etree</a>)</span></td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.PyErrorLog-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.PyErrorLog-class.html">PyErrorLog</a>)</span></td>
-<td width="33%" class="link-index"><a href="abc.ABCMeta-class.html#_abc_invalidation_counter">_abc_invalidation_counter</a><br />
-<span class="index-where">(in&nbsp;<a href="abc.ABCMeta-class.html">ABCMeta</a>)</span></td>
+<td width="33%" class="link-index"><a href="lxml.objectify.NumberElement-class.html#__xor__">__xor__()</a><br />
+<span class="index-where">(in&nbsp;<a href="lxml.objectify.NumberElement-class.html">NumberElement</a>)</span></td>
 <td width="33%" class="link-index">&nbsp;</td>
 </tr>
 <tr>
 <td width="33%" class="link-index"><a href="lxml.etree.PythonElementClassLookup-class.html#__new__">__new__()</a><br />
 <span class="index-where">(in&nbsp;<a href="lxml.etree.PythonElementClassLookup-class.html">PythonElementClassLookup</a>)</span></td>
-<td width="33%" class="link-index"><a href="lxml.html.FieldsDict-class.html#_abc_negative_cache">_abc_negative_cache</a><br />
-<span class="index-where">(in&nbsp;<a href="lxml.html.FieldsDict-class.html">FieldsDict</a>)</span></td>
+<td width="33%" class="link-index"><a href="abc.ABCMeta-class.html#_abc_invalidation_counter">_abc_invalidation_counter</a><br />
+<span class="index-where">(in&nbsp;<a href="abc.ABCMeta-class.html">ABCMeta</a>)</span></td>
 <td width="33%" class="link-index">&nbsp;</td>
 </tr>
 </table>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b80a265c08245e83181385d3c03739c49bd4af99..fda0ae613b784482765e74bd8e047469254c2d77 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1d8089e02974be8b7fd08ffeb073de0fc9568096..1ede17618ec6d3f069c12bbacaac2fd0694a6d59 100644 (file)
@@ -235,7 +235,7 @@ with statically linked libraries.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 75166ad8bb1fc501dbe1ccc635a1418072c5a7a2..3d867f53a6d02f47eff68d350915441ffc66546a 100644 (file)
@@ -123,7 +123,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 874afc962c3913ea6591895b3c2e1a9e5de87919..343bdb2d081cceb7db4a93e409545eedc6570173 100644 (file)
@@ -277,7 +277,7 @@ form of custom URL resolvers.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 195d965d8c75bf557ebcaf819ca36a36d816a536..ca3fd38f567200cef90e618f7c8fc5bed86f67ab 100644 (file)
@@ -517,7 +517,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:11 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 20241627df114802133a5392f220c43626ab70a6..83fc80f01ba44e28c8780de934fdbc134142b0d2 100644 (file)
@@ -229,7 +229,7 @@ exceptions.BaseException --+           |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b58ef4f0ebd98924fe87561ced06fe5b68b8bc26..4b2a15221f5d749ebfae027ee74125a6c7d8c740 100644 (file)
@@ -202,7 +202,7 @@ The <tt class="rst-rst-rst-docutils literal rst-rst-docutils literal rst-docutil
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7676f88b59d92530a02d40e2fd4edf111b3655a7..d351a0bd86a31cc645501e5fb7e98b2cd62d1966 100644 (file)
@@ -432,7 +432,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5512fa41619248a01cb4327b84b218b6917957f3..56d6b7d4cdc25d05904b7f7a1e48eb21bbbb329f 100644 (file)
@@ -352,7 +352,7 @@ and/or a specific target <tt class="rst-docutils literal">namespace</tt> to the
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5bb1de66f3146739eda5cfd60bc557b900fabc27..1b1aa34a33bc6f1f77516a474c1d817598ba8518 100644 (file)
@@ -231,7 +231,7 @@ See the <a href="lxml.cssselect.CSSSelector-class.html" class="link">CSSSelector
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6421eb7e966466d5957f0761f0bc8bd2e37bcbdf..3bea072d65470f536fd0c527196bee35341af6b1 100644 (file)
@@ -293,7 +293,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6356c1a8f436e6c43f6dfc724974f3c247e60f05..05317f857cb44d2c297b40f7b1747c6d7c6bb90b 100644 (file)
@@ -308,7 +308,7 @@ mapping as <tt class="rst-docutils literal">namespaces</tt> keyword argument:</p
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5120cc44b8d5070c72d6e955221bad71a27cfa8f..e9957bea282dbd37701bf2d2d072a95767cd43d1 100644 (file)
@@ -310,7 +310,7 @@ lxml extensions + HTML support.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 84b450e0a75fd2646614563713fdbf564b30cd4a..797b91d802e4cd41c57b153ffcb141e25d0ba22b 100644 (file)
@@ -362,7 +362,7 @@ A custom CSS selector to XPath translator with lxml-specific extensions.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3bd88b76bdb224610bf9d877860470a8b1cc675e..d35adb3d1cf7dd29976a55119e8d2d44446bbc12 100644 (file)
@@ -493,7 +493,7 @@ etree.HTMLParser(recover= False, remove_blank_text= True)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 62cb28b3ef2017fede9f62c1faf2487f1f8b1b41..a38655c58f532e100733959c275e5fd1c2ee78a2 100644 (file)
@@ -1092,7 +1092,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a1fccbe1a2a56b9c9581e3681dd7e4d62e4ac446..0c1679d0f7a627456da15e19ac950849a1ec3223 100644 (file)
@@ -229,7 +229,7 @@ doctest.OutputChecker --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7735c89ef010b7ce35d4f028f6624c71d1803bff..45b4b2700f2151924f54965b1f3a11ad73c7a64f 100644 (file)
@@ -610,7 +610,7 @@ to compare <code class="link">want</code> and <code class="link">got</code>.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c4afbc6ee73aef97fedd52c69869c1d8178bc3d3..075e1968bda7bd933de6262b3f3ce60bae02fecb 100644 (file)
@@ -349,7 +349,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 38bea18312caaf88ceb29e4038579b2730d72c31..ea143c355f8f50b28012488912aa2c2b714bbd86 100644 (file)
@@ -1652,28 +1652,28 @@ standard Python logging package.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXML_COMPILED_VERSION"></a><span class="summary-name">LIBXML_COMPILED_VERSION</span> = <code title="(2, 9, 0)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
+        <a name="LIBXML_COMPILED_VERSION"></a><span class="summary-name">LIBXML_COMPILED_VERSION</span> = <code title="(2, 9, 1)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>1<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXML_VERSION"></a><span class="summary-name">LIBXML_VERSION</span> = <code title="(2, 9, 0)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>0<code class="variable-group">)</code></code>
+        <a name="LIBXML_VERSION"></a><span class="summary-name">LIBXML_VERSION</span> = <code title="(2, 9, 1)"><code class="variable-group">(</code>2<code class="variable-op">, </code>9<code class="variable-op">, </code>1<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXSLT_COMPILED_VERSION"></a><span class="summary-name">LIBXSLT_COMPILED_VERSION</span> = <code title="(1, 1, 27)"><code class="variable-group">(</code>1<code class="variable-op">, </code>1<code class="variable-op">, </code>27<code class="variable-group">)</code></code>
+        <a name="LIBXSLT_COMPILED_VERSION"></a><span class="summary-name">LIBXSLT_COMPILED_VERSION</span> = <code title="(1, 1, 28)"><code class="variable-group">(</code>1<code class="variable-op">, </code>1<code class="variable-op">, </code>28<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="LIBXSLT_VERSION"></a><span class="summary-name">LIBXSLT_VERSION</span> = <code title="(1, 1, 27)"><code class="variable-group">(</code>1<code class="variable-op">, </code>1<code class="variable-op">, </code>27<code class="variable-group">)</code></code>
+        <a name="LIBXSLT_VERSION"></a><span class="summary-name">LIBXSLT_VERSION</span> = <code title="(1, 1, 28)"><code class="variable-group">(</code>1<code class="variable-op">, </code>1<code class="variable-op">, </code>28<code class="variable-group">)</code></code>
     </td>
   </tr>
 <tr>
@@ -1696,13 +1696,13 @@ standard Python logging package.</td>
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
         <a href="lxml.etree-module.html#__pyx_capi__" class="summary-name" onclick="show_private();">__pyx_capi__</a> = <code title="{'appendChild': &lt;capsule object &quot;void (struct LxmlElement *, struct Lx\
-mlElement *)&quot; at 0x14d4f00&gt;,
+mlElement *)&quot; at 0x1a20c90&gt;,
  'attributeValue': &lt;capsule object &quot;PyObject *(xmlNode *, xmlAttr *)&quot; \
-at 0x14d4bd0&gt;,
+at 0x1a20960&gt;,
  'attributeValueFromNsName': &lt;capsule object &quot;PyObject *(xmlNode *, co\
-nst xmlChar *, const xmlChar *)&quot; at 0x14d4c00&gt;,
+nst xmlChar *, const xmlChar *)&quot; at 0x1a20990&gt;,
  'callLookupFallback': &lt;capsule object &quot;PyObject *(struct LxmlFallback\
-ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x14d48a0&gt;\
+ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x1a20630&gt;\
 ..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">appendChild</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;void (struct L<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
@@ -1710,7 +1710,7 @@ ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x14d48a0&gt;\
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="lxml.etree-module.html#__test__" class="summary-name" onclick="show_private();">__test__</a> = <code title="{u'XML (line 2954)': u'''XML(text, parser=None, base_url=None)
+        <a href="lxml.etree-module.html#__test__" class="summary-name" onclick="show_private();">__test__</a> = <code title="{u'XML (line 2951)': u'''XML(text, parser=None, base_url=None)
 
     Parses an XML document or fragment from a string constant.
     Returns the root node (or the result returned by a parser target).
@@ -1718,14 +1718,14 @@ ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x14d48a0&gt;\
     like in
 
        &gt;&gt;&gt; root = etree.XML(&quot;&lt;root&gt;&lt;test/&gt;&lt;/root&gt;&quot;)
-..."><code class="variable-group">{</code><code class="variable-quote">u'</code><code class="variable-string">XML (line 2954)</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">u'</code><code class="variable-string">XML(text, parser=None, base_</code><code class="variable-ellipsis">...</code></code>
+..."><code class="variable-group">{</code><code class="variable-quote">u'</code><code class="variable-string">XML (line 2951)</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">u'</code><code class="variable-string">XML(text, parser=None, base_</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="&lt;lxml.etree._MemDebug object at 0x2aaaaabd38b0&gt;">&lt;lxml.etree._MemDebug object at 0x2aaaaabd38b0&gt;</code>
+        <a name="memory_debugger"></a><span class="summary-name">memory_debugger</span> = <code title="&lt;lxml.etree._MemDebug object at 0x2acb0bc828e0&gt;">&lt;lxml.etree._MemDebug object at 0x2acb0bc828e0&gt;</code>
     </td>
   </tr>
 </table>
@@ -2377,13 +2377,13 @@ function will only set the global error log of the current thread.</p>
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
 <code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">appendChild</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;void (struct LxmlElement *, struct Lx<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-mlElement *)&quot; at 0x14d4f00&gt;<code class="variable-op">,</code>
+mlElement *)&quot; at 0x1a20c90&gt;<code class="variable-op">,</code>
  <code class="variable-quote">'</code><code class="variable-string">attributeValue</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(xmlNode *, xmlAttr *)&quot; <span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-at 0x14d4bd0&gt;<code class="variable-op">,</code>
+at 0x1a20960&gt;<code class="variable-op">,</code>
  <code class="variable-quote">'</code><code class="variable-string">attributeValueFromNsName</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(xmlNode *, co<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-nst xmlChar *, const xmlChar *)&quot; at 0x14d4c00&gt;<code class="variable-op">,</code>
+nst xmlChar *, const xmlChar *)&quot; at 0x1a20990&gt;<code class="variable-op">,</code>
  <code class="variable-quote">'</code><code class="variable-string">callLookupFallback</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;capsule object &quot;PyObject *(struct LxmlFallback<span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
-ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x14d48a0&gt;<code class="variable-op"></code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
+ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x1a20630&gt;<code class="variable-op"></code><span class="variable-linewrap"><img src="crarr.png" alt="\" /></span>
 <code class="variable-ellipsis">...</code>
 </pre></td></tr></table>
 </dd>
@@ -2402,7 +2402,7 @@ ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x14d48a0&gt;<c
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">u'</code><code class="variable-string">XML (line 2954)</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">u'''</code><code class="variable-string">XML(text, parser=None, base_url=None)</code>
+<code class="variable-group">{</code><code class="variable-quote">u'</code><code class="variable-string">XML (line 2951)</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">u'''</code><code class="variable-string">XML(text, parser=None, base_url=None)</code>
 <code class="variable-string"></code>
 <code class="variable-string">    Parses an XML document or fragment from a string constant.</code>
 <code class="variable-string">    Returns the root node (or the result returned by a parser target).</code>
@@ -2448,7 +2448,7 @@ ElementClassLookup *, struct LxmlDocument *, xmlNode *)&quot; at 0x14d48a0&gt;<c
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1bbd29703ee1e57027e2b9fc28902e2e1c56092b..98b49a95fc9b9c33ddddb1e4577c969b6788718a 100644 (file)
@@ -233,7 +233,7 @@ Iterates over the ancestors of an element (from parent to parent).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c9204ee337374c539027b17d880d1cd2fa23caf8..1bff0792cb1c10b630f21fb94d8026db1e1f265c 100644 (file)
@@ -293,7 +293,7 @@ missing.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ef886915e2edf58be81d621a71527da3f88c81ef..e4ff1efec55609405719fd419e661deb1358d122 100644 (file)
@@ -211,7 +211,7 @@ Error during C14N serialisation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f05c464a3bc092a15f7cd91da1c8fbae8d6429ac..86ac62813bb200ef298531703b9839a871140081 100644 (file)
@@ -232,7 +232,7 @@ can be used to set Element text.  The usual way to use it is:</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f9036ad3f3f8ff111785b960bf3542073c2fc92..fb6aec64411dedc4693fa7134f7a52c88d3a7d83 100644 (file)
@@ -348,7 +348,7 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 73c94d33843802ea7fb41ed9b2dd7a935a185245..3a7ad5dbb9c8cf1151a253b9cf6ebf6f87b2dfa1 100644 (file)
@@ -272,7 +272,7 @@ lookup(self, type, doc, namespace, name)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 181b3d7c0c90e9f2cfac9c6d8e363308849a0cea..1f2024ccee5d63a9660fec937f66c978dceef4e4 100644 (file)
@@ -411,7 +411,7 @@ catalog.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c57cc932d55d4ef6175e5e92a0949afe8f1d49d4..00de6b500ee024c7ffb7033ca8978f7a44be7a86 100644 (file)
@@ -217,7 +217,7 @@ Base class for DTD errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 87306c32c9929c006bb363d5430567a31e4f0b86..5be2a569adc95e5797531594c2d81f6f3ea78a33 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing a DTD.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4640ef2cc3557299b3a6c9ec9d1a86388b1557e5..8f99254472afe44050db6c6d47142ce2206a42f5 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a DTD.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index de8b97be34abc12b62fef898e7df66e881f6178b..a58b3da4e556a996ecfca640a316ec2c55cf12ae 100644 (file)
@@ -310,7 +310,7 @@ normal truth test on this value will always tell if the
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dc3fa818cfd0ae357f43be9134d648399b8cc87b..35cf49aacc5313e9c763f19f3d8c5d3dc6c8139e 100644 (file)
@@ -213,7 +213,7 @@ method fails.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4913f3bd8d878eae21c30c8481a7ed54c8a4b4c3..d6ba65d65c716dca36b64ab3acdeb4d30f009c68 100644 (file)
@@ -325,7 +325,7 @@ and thus ignores comments and processing instructions.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a6489aa29c64ea717432215d6e107897d4ce9c40..092e05946828b9b073c4ca0548a542174044423c 100644 (file)
@@ -293,7 +293,7 @@ you pass <tt class="rst-docutils literal">smart_strings=False</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6b7bdb04ebb9018b236cb8f2f5e46278a6eb8c0b..77e20b46c61362ca15b5c8acdd5b14be2918cb4e 100644 (file)
@@ -361,7 +361,7 @@ hierarchies that implement a common namespace.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fc51eb8ee3b43313c97c58b1db0bf3ea8731be0f..a20867eae0fa51a9ad3c4743310407966f011dc2 100644 (file)
@@ -233,7 +233,7 @@ Iterates over the children of an element.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 64c8fe2fa0f468ac514cfb6e9547af5f8cc9cfb3..578abe81cc3b3dcd1c664bb3fd38c5d02c06b1ea 100644 (file)
@@ -232,7 +232,7 @@ Superclass of Element class lookups.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 358995c501206554e8978c03381d128af0d521dd..3d1cf12a297ab0a1909fe49824df19034f11fe81 100644 (file)
@@ -306,7 +306,7 @@ accept the respective Element classes.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 84642ff5f59fe0516054d4b731c970e9b6b2a366..0f7327aa1a015aa39e96e62f358153eda91f89a0 100644 (file)
@@ -287,7 +287,7 @@ tree it traverses is modified during iteration.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 357e2c2b74d0243dc2dc00ca6b14365b080be30b..7a730f9d1f1965bb1b33b528659362b7078cb6ce 100644 (file)
@@ -319,7 +319,7 @@ Pass None for the empty namespace.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0ef729a645a26dcc0b23aedfc9dbd1efcc35f2e8..f8fc86bac020f43097e7b1d57d17176d023f05b8 100644 (file)
@@ -279,7 +279,7 @@ tail text.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 50260dd939c761472038dd7ed9d6193f577b7661..42ba94b9c93bd34634bcf2447c68086859d4db19 100644 (file)
@@ -349,7 +349,7 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8f7074e9e20f67f8e09b9f4dd1299e09c5d6406a..29c08144ff90a1484d7d23b993bd80a81f164a54 100644 (file)
@@ -209,7 +209,7 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d087e3215a4ca59e1c322f054f19f598b39b2cc4..773e9fbbaba29c04293dbb3917218a445dbca7c7 100644 (file)
@@ -144,6 +144,13 @@ Libxml2 error domains
     </table>
   </td>
 </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="BUFFER"></a><span class="summary-name">BUFFER</span> = <code title="29">29</code>
+    </td>
+  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -305,6 +312,13 @@ Libxml2 error domains
         <a name="TREE"></a><span class="summary-name">TREE</span> = <code title="2">2</code>
     </td>
   </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="URI"></a><span class="summary-name">URI</span> = <code title="30">30</code>
+    </td>
+  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -471,7 +485,7 @@ Libxml2 error domains
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 30c97b390f8ad780a8ebad7e38375aea364aba4a..b77eaa1ffe949e4b2c462ef75f51b0352139a028 100644 (file)
@@ -243,7 +243,7 @@ Libxml2 error levels
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 133b5069afbb5d51f8efe43f6536d05aab808b19..9de4bbc9ed660d9f9b1004e6af6453d74d1e1105 100644 (file)
@@ -144,6 +144,13 @@ Libxml2 error types
     </table>
   </td>
 </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="BUF_OVERFLOW"></a><span class="summary-name">BUF_OVERFLOW</span> = <code title="7000">7000</code>
+    </td>
+  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -221,13 +228,6 @@ Libxml2 error types
         <a name="CATALOG_RECURSION"></a><span class="summary-name">CATALOG_RECURSION</span> = <code title="1654">1654</code>
     </td>
   </tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-        <a name="CHECK_"></a><span class="summary-name">CHECK_</span> = <code title="6005">6005</code>
-    </td>
-  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -494,13 +494,6 @@ Libxml2 error types
         <a name="CHECK_WRONG_PREV"></a><span class="summary-name">CHECK_WRONG_PREV</span> = <code title="5019">5019</code>
     </td>
   </tr>
-<tr>
-    <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
-    </td><td class="summary">
-        <a name="CHECK_X"></a><span class="summary-name">CHECK_X</span> = <code title="6006">6006</code>
-    </td>
-  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -1222,6 +1215,13 @@ Libxml2 error types
         <a name="ERR_NAME_REQUIRED"></a><span class="summary-name">ERR_NAME_REQUIRED</span> = <code title="68">68</code>
     </td>
   </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="ERR_NAME_TOO_LONG"></a><span class="summary-name">ERR_NAME_TOO_LONG</span> = <code title="110">110</code>
+    </td>
+  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -1467,6 +1467,13 @@ Libxml2 error types
         <a name="ERR_URI_REQUIRED"></a><span class="summary-name">ERR_URI_REQUIRED</span> = <code title="70">70</code>
     </td>
   </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="ERR_USER_STOP"></a><span class="summary-name">ERR_USER_STOP</span> = <code title="111">111</code>
+    </td>
+  </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -5399,7 +5406,7 @@ Libxml2 error types
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4c7a4a00203f05f850220770388e0b524f333991..0892e5c1d5f54f20120745d653da884fe1b75857 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b061a5fc4975e084bfbfd5cac45199276a0d61c8..b31963f84beafe7e5b0df6ed36dd60a8e226458d 100644 (file)
@@ -336,7 +336,7 @@ reasons.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9d75e1ee2eb35191025effdc59d042461f36f9d8..c169ca88fdcc66d6180a7d246aedfb9d7926d29a 100644 (file)
@@ -273,7 +273,7 @@ this one.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index faa0415d46bc183635ccbf347392e0da72f2faa1..80748f124e1fc2c2bee25960d9ae90d0bf28854d 100644 (file)
@@ -217,7 +217,7 @@ Base class of lxml registry errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b693840898045a5611668258624ce52571bb4e93..f30b34428dac73a4ac0c7eb3ee8782cd6d4e7417 100644 (file)
@@ -235,7 +235,7 @@ Base class for all syntax errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 35ae0b410363c6bc869da961e27ee5dc10f55738..84ffb079814969e931e0e8bf2aa8d82f0c137a66 100644 (file)
@@ -213,7 +213,7 @@ Error registering a namespace extension.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3c1beda12acec90f2acdb173ddebc57184a6ce97..e40017e1ba1893bcd6a99e6cfb353c8f8fb0d189 100644 (file)
@@ -350,7 +350,7 @@ called after object creation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e0395592901392ae8592c7bec9a8260a3989d389..7c8adb0e13ae3469e34b4e286cfe0f28f9c0c1b3 100644 (file)
@@ -295,7 +295,7 @@ exceptions.BaseException --+           |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ac615eb18ad16596e9f27d5086cb6277878d474a..c2ec0916aee721255faa5acd69bcef0048e09413 100644 (file)
@@ -236,7 +236,7 @@ Element class lookup based on the XML parser.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 57056d1700cd13aa7dd93bea46c253bd21b41167..36ea6f15eef094fe4b77377702196694941f8933 100644 (file)
@@ -211,7 +211,7 @@ Internal lxml parser error.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c5d4c649c6dc7f8fa48b8357d8c90d437214d438..2cd7b08da98545e52945e57c2ccf0d8885d98c9a 100644 (file)
@@ -433,7 +433,7 @@ format.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fe1204d21daf00d0560d2d77d8191b70d7d5ebd6..ad8e56db55cd9255b6f9d2a00c37f537365f495c 100644 (file)
@@ -289,7 +289,7 @@ iteration methods).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3d1c2319b0bf3d6c24122c065205df61075fc64a..54cfa7eba0d711a504528a5ff4a5cebd2eb61f98 100644 (file)
@@ -486,7 +486,7 @@ their text content.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2bb8f0b235e149ce3292687b5dfcca133c0f8c73..16d9b2f6f3601e529ba74962e8e415d9bee735a6 100644 (file)
@@ -325,7 +325,7 @@ filename through the <tt class="rst-docutils literal">file</tt> keyword argument
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index de6183b4b0834f5fa130a3538f04ad8581ec5c23..e53f939d5499e05dd2873f3ce9f6dc1f228a97fb 100644 (file)
@@ -217,7 +217,7 @@ Base class for RelaxNG errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 092712980837a76ee8e83c2d0c204240d69b6c94..fefe7ebae396b21e4755ea67206b56de38a3409b 100644 (file)
@@ -548,7 +548,7 @@ Libxml2 RelaxNG error types
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ad2a4a4a08a11698c665916b3733d0a0c94e1d81..e41e211823bf7fb9f32eee9ab5b92aeb06fe8786 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as RelaxNG.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 154d42b8ffcee556dce65a63200cecfa6bc92d13..b3bb03871fd53a3d4d4f9deda395c0853a633737 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a RelaxNG schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0932d90ae5a123f712d5cde1d4014eb609d8e3fe..f3d99585b6016ae9feb28fe9db9020cd4ea732f7 100644 (file)
@@ -454,7 +454,7 @@ argument.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 324a65f36018fe6eb0bf9a7db9be3f24828fd5b4..b0a68fdb5f21d5010005e46ce8d29cc63480e575 100644 (file)
@@ -366,7 +366,7 @@ errors in lxml.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d0046ca6aea52a3e6a7d969cac753fa70c6b0f96..248b098c0c05445515b1b5abc3f2b69bda9ed510 100644 (file)
@@ -217,7 +217,7 @@ Base class of all Schematron errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f34eb17774272c9a40e78d374177293053bffd91..637d0c68baebae04a52c19a2e52a85549ae54638 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as Schematron schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e7f36cf0e1eb925cc397208d318d64f93b2bd8db..4fa5fc6bb158783bacf02c6eab988c11668281f9 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with a Schematron schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 39064af8f29c742bc5a18c750ec4ae475b228663..e1229be6b2ee73afc9e08046ab5432a2238105c7 100644 (file)
@@ -211,7 +211,7 @@ A libxml2 error that occurred during serialisation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 875a280d535c0079bbad72d866f3b2ab1cb8f00e..9157dabfdb87af6e0baf8e3401ba222dfb5c695c 100644 (file)
@@ -234,7 +234,7 @@ Iterates over the siblings of an element.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 71a272359a16e811b7c2945d284b68615c3977a8..a086a0cd031e15906e34fa6fe654df112a9b7b83 100644 (file)
@@ -382,7 +382,7 @@ element.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 90006c4e4e2889e2520284875221d7dc6e3f215e..e28298b442aca49aab781a1ebd2f2ceafee0b96c 100644 (file)
@@ -291,7 +291,7 @@ processing.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2ee20b21521fb2c3f921b88d5c1ae6272a20f191..1f67acccbaaf412370659d00d1bf270f1afed6af 100644 (file)
@@ -211,7 +211,7 @@ Error during XInclude processing.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0860d36f79aebea04909b5cae103c9e4ca194578..b82a9129d307e6dbe7968979a481c3a243ac7e18 100644 (file)
@@ -376,7 +376,7 @@ apply to the default parser.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 422af3a9928563d5ee1589979bac46208c010ef8..a43d9bb3911b6ea5a9acc90381b352609afaacf8 100644 (file)
@@ -327,7 +327,7 @@ schema insert default/fixed attributes into validated documents.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c6b559d1de288e6639431ba0526d10056ad6aa3f..dac1401e67b3638211b7abb1b31a47dca2fe56f7 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XML Schema errors
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 48bf76acd7f99f8e44ec7994d7add5c74cffb55f..b70c4c8998b4f3b75224b9c414d2442f331da596 100644 (file)
@@ -213,7 +213,7 @@ Error while parsing an XML document as XML Schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 93e33c7de4d1ceb1246360ca0a22f882d68a64d8..79a635bd729d0ff1315d00256ef8b62110a7e1ad 100644 (file)
@@ -213,7 +213,7 @@ Error while validating an XML document with an XML Schema.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b5080a3d016c096adaf35920e8c19a0b58b8846a..bec00778112b5b6cca953ad76ed1911120ab357e 100644 (file)
@@ -233,7 +233,7 @@ Syntax error while parsing an XML document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index be7eb738259c6b865811df5608fded1a43ec2f68..e76003761f18f0c9e0bfcaf914024ce798c5f00c 100644 (file)
@@ -361,7 +361,7 @@ returned for string results unless you pass
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6b13e72c7caf545d93301a530138ee52487ae875..0e40b070ec31690f5c19fb758569df273e5101e2 100644 (file)
@@ -340,7 +340,7 @@ are currently not supported for variables.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fc912ea45b2e03f1353fbb749eabeaf54c2a8d9a..0fa8d6df496eb1ca2c90e0ce43bfbdc42ef4b2c5 100644 (file)
@@ -375,7 +375,7 @@ against the ElementTree as returned by getroottree().</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 131fb799fb94718482f63870a076546e7d1c7711..82d34fc349c3966fbc6f7891cdd7f87527ba6293 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XPath errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 25cf8e8b05d6201ce5b065e2dd0e5c3ee0d9d21f..c61bcc9d0d675ceadb0318079585d47582bec046 100644 (file)
@@ -219,7 +219,7 @@ Error during XPath evaluation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 63cf794a16df0ad2f6a47fef99ace821b0ac4fa7..4b66d1300d406bbfa2c29d273a117721178a9ebf 100644 (file)
@@ -215,7 +215,7 @@ Internal error looking up an XPath extension function.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7ad4f5d058079c0efa8875738c20b486ccde5cc6..a0ea54f41e311e7cf25f81f69af07fb9923b0a0f 100644 (file)
@@ -215,7 +215,7 @@ Error handling an XPath result.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7968234ef8cf3d07e813fc2efd3adc6c80ec898..093e43085ed3bfb6864bd07dadc6b646918c45ba 100644 (file)
@@ -241,7 +241,7 @@ exceptions.BaseException --+               |
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 423b3d4ffe40875a61aed8145fdcd4ce108a792b..6c6e52e7c3b5ed3fa7c3325b03601530397aebba 100644 (file)
@@ -575,7 +575,7 @@ result = transform(doc, some_strval = XSLT.strparam(
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0a766ffbf775ffa6f2bf240638843af62ff52736..451be9f39588f516e1219ba5b94de6c0b44ef293 100644 (file)
@@ -428,7 +428,7 @@ XSLTAccessControl(create_dir=False, read_file=True, read_network=True,<span clas
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 87ab9c5bc23621796a146c3f7f8e5fbc1e2e3065..d9d2da03f9ad8d89bae7514f069e373c7b274494 100644 (file)
@@ -213,7 +213,7 @@ Error running an XSL transformation.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c5865ce73b7bfdd076aed03e7135cf779aaec717..47d3f314fb4407f64e5ca715128b6e513ab91e8f 100644 (file)
@@ -217,7 +217,7 @@ Base class of all XSLT errors.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 500ddc55ae6e8aade29cc1c4043204e23ab5b19c..0d2c65f0362256edbcae8c18b0e7e326a19c8d03 100644 (file)
@@ -397,7 +397,7 @@ case.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eca1ac1a68efbce1bd46cda34009189a48471559..61c54966fbbc52f5eed4aec0822b135d5487e367 100644 (file)
@@ -213,7 +213,7 @@ Error registering an XSLT extension.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8caed977bfe8fdb38302b88d7923b59c0d997298..0ab8b3fe7adf2c57c0d369e81e16f59c6d6af493 100644 (file)
@@ -213,7 +213,7 @@ Error parsing a stylesheet document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 72308c1e15532ddbdf0cccf66501271d8f2afb1d..6bbcc662a0fd3779e1e5d3a35b785fbcb56ee0a2 100644 (file)
@@ -213,7 +213,7 @@ Error serialising an XSLT result.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b154572d3f7b9c89ff61e494bacd9ad3348983ec..f9ec5191ee18e06eb842dbc90d706224a0ff25a4 100644 (file)
@@ -704,7 +704,7 @@ A dict-like proxy for the <tt class="rst-rst-rst-docutils literal rst-rst-docuti
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f7c862bbbbb68a300e1e2a242feb121b231935c9..4cb71578077aaa0b76cdc20432b0548bd427898d 100644 (file)
@@ -346,7 +346,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index abb97c53a5aca46af29a8387eaa61651ecce998d..c53c5428d24ac81c8ab33d7e1bc903c1d65a15af 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dc044521898a23141fd045a029fdc34b2eb29acb..0f6571fbb76af736973416bc2cb1885ab359b3d3 100644 (file)
@@ -227,7 +227,7 @@ document is cleaned up.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b773d0cd2a5977f091b6d67a8b4dcfb6d79d8b42..ccc04ec5bfed59281e7cb67fbb047e7677268b2f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 54defa765a6209962d58a21d9979c079647b9707..2a7f87279866276584267151766718ec8496cce4 100644 (file)
@@ -1599,7 +1599,7 @@ parents.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0bc8d8396f8f22669fc8567e863d4d085a268643..a291998118e9d8ca7ab81f16f631b76e6bcbc36e 100644 (file)
@@ -276,7 +276,7 @@ Dead but public. :)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b431363d82d63f23da6ceb16d1d0f48fc59d10f1..d45f57ae8e0e6979384e5fcbf53db62b3fa00398 100644 (file)
@@ -278,7 +278,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7c2b779c85ed3a8b5d8ddf57b103d56d4eeac6b4..85e65e78232b1faa01ce25b109b770664e792553 100644 (file)
@@ -267,7 +267,7 @@ basestring --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4d7466c563ff0362a865d2eb7f2e99368e02024b..770705310f26fae452b62308f10845de43eef60f 100644 (file)
@@ -231,7 +231,7 @@ Dead but public. :)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dda63dff6beaf4356ee4109172860516bafb4193..af38b8a9134aa223bc32d7a608e499703b8ef699 100644 (file)
@@ -998,7 +998,7 @@ class directly.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 83fad4a911a05a08af9c4d4a8c7c56bcbe84fe21..8d9d7379e8355b8f0b27f0ebbdd11f50986716fd 100644 (file)
@@ -333,7 +333,7 @@ basestring --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6e1eaa3e431b9d3c31bc96af707b09a59ce041ef..ad2a0fa79f0d260607bed8d83a9ed8fc29f590fd 100644 (file)
@@ -355,7 +355,7 @@ the value None, if there was no text.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cf652923470003ee99f4328cf6da0e61a185600b..702e71afdf8a52123157c781de9f72db603f9957 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a340111b054a10e345220e65c19e1865b8683b23..abd3ed420c366ae5659784487f5b2dbdb148b229 100644 (file)
@@ -377,7 +377,7 @@ different from what the <tt class="rst-docutils literal">error_log</tt> property
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c5c77b6bd2a3d186829407a8144c70d75ad7de42..18a1fb5b629a9684e0e6f46214df58690f11f98e 100644 (file)
@@ -482,7 +482,7 @@ that were created or modified 'by hand' are not supported.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 30eee9f03572ca77fb9a05c7c438cfc22e1580a9..603791465a9ce805fc21421527933579be60d018 100644 (file)
@@ -570,7 +570,7 @@ entries.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 965a7bb09a7bc35784381247a566ed21cb3731e1..586f10d345e55547b12efcd3421627cc6e286f7b 100644 (file)
@@ -347,7 +347,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 616717405b122ddaa127a2fa512ded9328c306df..e08ce87490c3272deb6f2b1811ab8ef9c8bfc02f 100644 (file)
@@ -407,7 +407,7 @@ It is not guaranteed to work for all possible text content.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d683fb6dafb6da4fdac7e8bf4bc534e848d7db17..98b91bc763f90f71c13e9b875b8b00b91bcf61b1 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 237fb3cef7eff8949de8dfcc81c48072a32976a2..ecceaea16d32e6dc53d9f15783ff8d05fb09fa05 100644 (file)
@@ -229,7 +229,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 69af3ce81b538b9cf3a2db5282147167143b6bca..44c7c50de85151194d078dc94d13466f13d03dc0 100644 (file)
@@ -262,7 +262,7 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4c2d78b5a44adcd28e7521e8c0a44dcf1777f966..f450379d920c2ad034946dd5344d8786be7ce433 100644 (file)
@@ -346,7 +346,7 @@ Base class for XML validators.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 72e8ec407fe6832c39104b4397ca0ec0223efd93..93a55f671fa41829384e989ad0102252781949ba 100644 (file)
@@ -322,7 +322,7 @@ are currently not supported for variables.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d1f1aa1f082a9de753106817b10494ddd970ff79..1c94eeec138e948405ccaf55da1e2e6e5a1d524e 100644 (file)
@@ -389,7 +389,7 @@ the processing instruction.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6272aab8a0089bc8780c7cfee21bed0d855b5a28..67c8ca8c9956aacde21f0eef92d08fa036535fc4 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ebc966b262fcc591e6253169b3835af3a0c31bf0..c621eb5d44928485e65a206f91b4d74d7f3ccc7f 100644 (file)
@@ -466,7 +466,7 @@ attribute default values are requested.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 908f04c5602900b3498a2fed6aa3a9af0b9790a4..43379ad2133f9c3973de74bb2df412d1b84790bc 100644 (file)
@@ -323,7 +323,7 @@ was parsing XML data with <tt class="rst-docutils literal">iterparse()</tt>.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index be5d78775a018bcef7ca9eba35cc0743c7bc2304..d31d0259da73bcac263adec40fd03880344a0efe 100644 (file)
@@ -319,7 +319,7 @@ with xmlfile(&quot;somefile.xml&quot;, encoding='utf-8') as xf:
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7ec68f5a465133b589577e25440a5f1fa18827cf..ba3b578de3303964694a3efc1a7fb5846ca0f9e2 100644 (file)
@@ -1325,7 +1325,7 @@ _MethodFunc('make_links_absolute', copy= True)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 31ab6a45b9f20fbd246a21754cbe74b3e35585f5..5cee6c4267d48b3436072fe7fc2f794706c52aaf 100644 (file)
@@ -3598,7 +3598,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e9d3cc77bddf8e685007163b5a917add87cb66e7..36f083e9a9467ad43b23cc639364a1fee5e1f59b 100644 (file)
@@ -413,7 +413,7 @@ uncheck individual checkboxes according to their value.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f3ab46d826e62458a044c9667068d3d40c4b5aff..6f2318f66d4473de842e7f287ddc976e9da2b641 100644 (file)
@@ -346,7 +346,7 @@ checkboxes with the same name.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b47c6ee32a86a3a4c54cf6489c835d3989b49727..4d9ba7dc42da554ba45681957518a26c9a4fa484 100644 (file)
@@ -263,7 +263,7 @@ keyword.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 20d6eb451aa40a3a11704628f22a9d05a310dfef..9f62f420eacd1597bdee1848f21540c60e6f1364 100644 (file)
@@ -117,7 +117,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:11 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 552474baec3dd63efdfd23ceae37dbf7a90a8cec..9b8fd6724a6ac14f51cfeed0fbd0f7ad5162c3fc 100644 (file)
@@ -198,7 +198,7 @@ _abcoll.Container --+
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
-      <span class="summary-type">&nbsp;</span>
+      <span class="summary-type">list of D's keys</span>
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
@@ -364,7 +364,7 @@ _abcoll.Container --+
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="&lt;_weakrefset.WeakSet object at 0x1c61590&gt;">&lt;_weakrefset.WeakSet object at 0x1c61590&gt;</code>
+        <a name="_abc_negative_cache"></a><span class="summary-name">_abc_negative_cache</span> = <code title="&lt;_weakrefset.WeakSet object at 0x230b9d0&gt;">&lt;_weakrefset.WeakSet object at 0x230b9d0&gt;</code>
     </td>
   </tr>
 <tr class="private">
@@ -378,7 +378,7 @@ _abcoll.Container --+
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object at 0x1c61410&gt;">&lt;_weakrefset.WeakSet object at 0x1c61410&gt;</code>
+        <a name="_abc_registry"></a><span class="summary-name">_abc_registry</span> = <code title="&lt;_weakrefset.WeakSet object at 0x230b850&gt;">&lt;_weakrefset.WeakSet object at 0x230b850&gt;</code>
     </td>
   </tr>
   <tr>
@@ -549,8 +549,10 @@ _abcoll.Container --+
   
   
   <dl class="fields">
+    <dt>Returns: list of D's keys</dt>
     <dt>Overrides:
         _abcoll.Mapping.keys
+        <dd><em class="note">(inherited documentation)</em></dd>
     </dt>
   </dl>
 </td></tr></table>
@@ -680,7 +682,7 @@ _abcoll.Container --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 93eacc54a0d6d653bef89acfb22105198ef140d3..df246074c2bd7f0a1c946be877e1fbe8aa62c9e2 100644 (file)
@@ -550,7 +550,7 @@ string, and defaults to <tt class="rst-rst-docutils literal rst-docutils literal
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 34eaa3cbfe7ec217781f0359fd928cdbba97b297..91fca61943101f4ed58150567fe3ca5722b9981b 100644 (file)
@@ -254,7 +254,7 @@ objects.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8db3ca7ff2c36ca9d1cc6205db4bacef2ec41224..a10efecf1a9d5be41c5e827fdc16c1faf3db1c42 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b68a805c00f408d490972dddfdea9e57eceb4320..ebd8e8c55f665cb157a6c541df3bef24fb97f6be 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9e0a477c98402b29facc56e884f993cea9e90166..c7d357bffedbcfa799e7822796ebdb8903bae855 100644 (file)
@@ -364,7 +364,7 @@ Element classes.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ffe79a0bb6839ba76ce40a62022aac2b2dc1bdeb..8d0f025fcc1bd0cdb16f6acc86d37b3150ff8a86 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index be5d10e3a476c435412d62ded5526617c8f99e1b..504f76fcabe34185aa740fc76fbefd18d8a26db2 100644 (file)
@@ -767,7 +767,7 @@ element to get the document's head.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2bf5a2baf5a5179831bf9df0b4bfb659a6feabca..5648a71f0766c404d6ebafff9bea51594991ec93 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c9b729d522f40ebf46264a66163f71812db7a138..f07c2ac4d29db9872e0c5b07188086662f4ca4b8 100644 (file)
@@ -593,7 +593,7 @@ attribute.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aade490ad3ba3ee2cb6ba2479ae409d2745012c1..7adeb35d6daa4278ce1110f35c692037ecb0fb09 100644 (file)
@@ -431,7 +431,7 @@ nput' or local-name(.) = 'textarea')]
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e6a724a7417b81ac87ec5c43b1515d745c19440c..25bd7256458eba908a0445ae9136e894c841ef51 100644 (file)
@@ -329,7 +329,7 @@ Mix-in for all input elements (input, select, and textarea)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cc02f48ded2824436925ffe44f15513194ef9cb5..654d908f58b16c440a9a9f6c7cb6fd1c89b82f0f 100644 (file)
@@ -364,7 +364,7 @@ can't be found.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6fd3fdf70afc349a782a8179a2c3fe2b5b264dc3..71aad60ddb761d1704cdfdc524df93d1f892047b 100644 (file)
@@ -389,7 +389,7 @@ to unselect the option.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b3232b56537eb9ee6d89fe1cf0f1e5ea3dcaeb0..c3885dd905cd6adf085c8d2b4b337a7e7fdfbcff 100644 (file)
@@ -412,7 +412,7 @@ unchecks any other value).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 763c2cb94b32bf68ef1df42ea416a508de830473..f255aa0b1dc7dacd5c689cfebad9404335097550 100644 (file)
@@ -507,7 +507,7 @@ attribute of all the <tt class="rst-docutils literal">&lt;option&gt;</tt> elemen
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index affffa886c3f9314b7f46f6cec35a72acced2a34..d93a9ec4d9d44f116b7e94eb212a01fdff655a7d 100644 (file)
@@ -373,7 +373,7 @@ get/set the value with <tt class="rst-rst-rst-rst-rst-docutils literal rst-rst-r
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a020235923e680b03d14f622b78dbe929fdc3847..3a1e714fe291f9df3e69b12e7a3eba5a1d355b7c 100644 (file)
@@ -266,7 +266,7 @@ parser like this:</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9f6492bfe951709c93e65eb65be098e794e74450..d097c275dd26d520f25a56fb265a4a2ab53327fe 100644 (file)
@@ -253,7 +253,7 @@ of the resulting document.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2212f1fc883ce9beccdf7e55ad5a717f885a9c06..a7d093b423ae002ce9359b68c4594bb0761a623a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e4bafdbb91893c30c7276a35fd9b3ff1aeea3f4f..4a046259f7a8aa7ab5981a08d7928897e938177e 100644 (file)
@@ -431,7 +431,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e246a4dea871b6cdca879c1f9b6cf85f34935cf..651a423076230c39ea8f9f9870fcb3eff6bd2c00 100644 (file)
@@ -727,7 +727,7 @@ a<code class="re-op">-</code>z0<code class="re-op">-</code>9%&amp;\?;=~<code cla
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0c7e626efff8863252a2c29185958945e6e915ea..c513cf0008b593dda4040227ce216c3bccc7517a 100644 (file)
@@ -1247,7 +1247,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bc53d4f1f7fd1385ab14ee2c03078431dd430a45..2b6848268d48374a65e40f7e1af100e41770fef9 100644 (file)
@@ -759,7 +759,7 @@ more sneaky attempts.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d00e05b3f0d33509c7b07d83aa3e6da34401fa43..1c06dea647fe18f7d1ec063c0faf2507b60e01b6 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8a76414a01b6de1e1373e3411b6e76e8ee1565ec..445e3792d4a6b928af6c6092fa11802bc60818b9 100644 (file)
@@ -240,7 +240,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 778af3c892d833dddae75d82883be0e39dc280ba..498a896dba8f16789909f11a779ec53456145c46 100644 (file)
@@ -193,7 +193,7 @@ blocks amidst large spans of changes
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
           <td><span class="summary-sig"><a href="lxml.html.diff-module.html#html_annotate" class="summary-sig-name">html_annotate</a>(<span class="summary-sig-arg">doclist</span>,
-        <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default">&lt;function default_markup at 0x1ec9aa0&gt;</span>)</span><br />
+        <span class="summary-sig-arg">markup</span>=<span class="summary-sig-default">&lt;function default_markup at 0x2572ed8&gt;</span>)</span><br />
       doclist should be ordered from oldest to newest, like:</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source&nbsp;code</a></span>
@@ -565,6 +565,23 @@ Also &lt;ins&gt; and &lt;del&gt; tags are removed.</td>
         </tr>
       </table>
       
+    </td>
+  </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a href="lxml.html.diff-module.html#split_trailing_whitespace" class="summary-sig-name" onclick="show_private();">split_trailing_whitespace</a>(<span class="summary-sig-arg">word</span>)</span><br />
+      This function takes a word, such as 'test</td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.html.diff-pysrc.html#split_trailing_whitespace">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
     </td>
   </tr>
 <tr class="private">
@@ -612,8 +629,8 @@ end tag is a chunk.</td>
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
           <td><span class="summary-sig"><a name="split_words"></a><span class="summary-sig-name">split_words</span>(<span class="summary-sig-arg">text</span>)</span><br />
-      Splits some text into words. Includes trailing whitespace (one
-space) on each word when appropriate.</td>
+      Splits some text into words. Includes trailing whitespace
+on each word when appropriate.</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.html.diff-pysrc.html#split_words">source&nbsp;code</a></span>
             
@@ -907,6 +924,13 @@ given &lt;p&gt;Hi &lt;i&gt;there!&lt;/i&gt;&lt;/p&gt;, if you remove the &lt;i&g
 ..."><code class="variable-group">(</code><code class="variable-quote">'</code><code class="variable-string">dd</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">dt</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">frameset</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">li</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">t</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
+<tr class="private">
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+        <a name="split_words_re"></a><span class="summary-name">split_words_re</span> = <code title="re.compile(r'(?u)\S+(?:\s+|$)')">re.compile(r'<code class="re-flags">(?u)</code>\S<code class="re-op">+</code><code class="re-group">(?:</code>\s<code class="re-op">+</code><code class="re-op">|</code>$<code class="re-group">)</code>')</code>
+    </td>
+  </tr>
 <tr class="private">
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
@@ -948,7 +972,7 @@ given &lt;p&gt;Hi &lt;i&gt;there!&lt;/i&gt;&lt;/p&gt;, if you remove the &lt;i&g
   <table width="100%" cellpadding="0" cellspacing="0" border="0">
   <tr valign="top"><td>
   <h3 class="epydoc"><span class="sig"><span class="sig-name">html_annotate</span>(<span class="sig-arg">doclist</span>,
-        <span class="sig-arg">markup</span>=<span class="sig-default">&lt;function default_markup at 0x1ec9aa0&gt;</span>)</span>
+        <span class="sig-arg">markup</span>=<span class="sig-default">&lt;function default_markup at 0x2572ed8&gt;</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.html.diff-pysrc.html#html_annotate">source&nbsp;code</a></span>&nbsp;
@@ -1148,6 +1172,28 @@ rid of any &lt;ins&gt; and &lt;del&gt; tags.</p>
   </dl>
 </td></tr></table>
 </div>
+<a name="split_trailing_whitespace"></a>
+<div class="private">
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">split_trailing_whitespace</span>(<span class="sig-arg">word</span>)</span>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lxml.html.diff-pysrc.html#split_trailing_whitespace">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <blockquote>
+This function takes a word, such as 'test</blockquote>
+<p>' and returns ('test','</p>
+<p>')</p>
+  <dl class="fields">
+  </dl>
+</td></tr></table>
+</div>
 <a name="flatten_el"></a>
 <div class="private">
 <table class="details" border="1" cellpadding="3"
@@ -1324,7 +1370,7 @@ includes the elements tail.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7b354379fdefaaa313eee948fccb99a0c9217579..67492901815237ed3fa96cb6152b65f3ebfd9701 100644 (file)
@@ -211,7 +211,7 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-28', 'text', 'link-10');">text</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">' '</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-28', 'text', 'link-10');">text</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">last</tt><tt class="py-op">.</tt><tt class="py-name">trailing_whitespace</tt> </tt>
 <a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt id="link-29" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
@@ -254,12 +254,12 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 <a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">            <tt id="link-41" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-41', 'html', 'link-3');">html</a></tt> <tt class="py-op">+=</tt> <tt class="py-string">' '</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt id="link-42" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-41', 'html', 'link-3');">html</a></tt> <tt class="py-op">+=</tt> <tt id="link-42" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-42', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">trailing_whitespace</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt id="link-43" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-42', 'html', 'link-3');">html</a></tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">post</tt> <tt class="py-keyword">in</tt> <tt id="link-43" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-43', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">:</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-43', 'html', 'link-3');">html</a></tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">post</tt> <tt class="py-keyword">in</tt> <tt id="link-44" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-44', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">:</tt> </tt>
 <a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">post</tt> </tt>
 </div><a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line"> </tt>
 <a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line"> </tt>
@@ -284,11 +284,11 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 <a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line"><tt class="py-docstring">    are treated like words, and the href attribute of &lt;a&gt; tags, which</tt> </tt>
 <a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line"><tt class="py-docstring">    are noted inside the tag itself when there are changes.</tt> </tt>
 <a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt>  </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">    <tt class="py-name">old_html_tokens</tt> <tt class="py-op">=</tt> <tt id="link-44" class="py-name"><a title="lxml.html.diff.tokenize" class="py-name" href="#" onclick="return doclink('link-44', 'tokenize', 'link-17');">tokenize</a></tt><tt class="py-op">(</tt><tt class="py-name">old_html</tt><tt class="py-op">)</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">    <tt class="py-name">new_html_tokens</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name"><a title="lxml.html.diff.tokenize" class="py-name" href="#" onclick="return doclink('link-45', 'tokenize', 'link-17');">tokenize</a></tt><tt class="py-op">(</tt><tt class="py-name">new_html</tt><tt class="py-op">)</tt> </tt>
-<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name" targets="Function lxml.html.diff.htmldiff_tokens()=lxml.html.diff-module.html#htmldiff_tokens"><a title="lxml.html.diff.htmldiff_tokens" class="py-name" href="#" onclick="return doclink('link-46', 'htmldiff_tokens', 'link-46');">htmldiff_tokens</a></tt><tt class="py-op">(</tt><tt class="py-name">old_html_tokens</tt><tt class="py-op">,</tt> <tt class="py-name">new_html_tokens</tt><tt class="py-op">)</tt> </tt>
-<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-47" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-47', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-48" class="py-name" targets="Function lxml.html.diff.fixup_ins_del_tags()=lxml.html.diff-module.html#fixup_ins_del_tags"><a title="lxml.html.diff.fixup_ins_del_tags" class="py-name" href="#" onclick="return doclink('link-48', 'fixup_ins_del_tags', 'link-48');">fixup_ins_del_tags</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">    <tt class="py-name">old_html_tokens</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name"><a title="lxml.html.diff.tokenize" class="py-name" href="#" onclick="return doclink('link-45', 'tokenize', 'link-17');">tokenize</a></tt><tt class="py-op">(</tt><tt class="py-name">old_html</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">    <tt class="py-name">new_html_tokens</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="lxml.html.diff.tokenize" class="py-name" href="#" onclick="return doclink('link-46', 'tokenize', 'link-17');">tokenize</a></tt><tt class="py-op">(</tt><tt class="py-name">new_html</tt><tt class="py-op">)</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name" targets="Function lxml.html.diff.htmldiff_tokens()=lxml.html.diff-module.html#htmldiff_tokens"><a title="lxml.html.diff.htmldiff_tokens" class="py-name" href="#" onclick="return doclink('link-47', 'htmldiff_tokens', 'link-47');">htmldiff_tokens</a></tt><tt class="py-op">(</tt><tt class="py-name">old_html_tokens</tt><tt class="py-op">,</tt> <tt class="py-name">new_html_tokens</tt><tt class="py-op">)</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-48', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-49" class="py-name" targets="Function lxml.html.diff.fixup_ins_del_tags()=lxml.html.diff-module.html#fixup_ins_del_tags"><a title="lxml.html.diff.fixup_ins_del_tags" class="py-name" href="#" onclick="return doclink('link-49', 'fixup_ins_del_tags', 'link-49');">fixup_ins_del_tags</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line"> </tt>
 <a name="htmldiff_tokens"></a><div id="htmldiff_tokens-def"><a name="L177"></a><tt class="py-lineno">177</tt> <a class="py-toggle" href="#" id="htmldiff_tokens-toggle" onclick="return toggle('htmldiff_tokens');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#htmldiff_tokens">htmldiff_tokens</a><tt class="py-op">(</tt><tt class="py-param">html1_tokens</tt><tt class="py-op">,</tt> <tt class="py-param">html2_tokens</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="htmldiff_tokens-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="htmldiff_tokens-expanded"><a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">    <tt class="py-docstring">""" Does a diff on the tokens themselves, returning a list of text</tt> </tt>
@@ -307,24 +307,24 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 <a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">    <tt class="py-comment"># we are only keeping the markup from the new document, it can be</tt> </tt>
 <a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">    <tt class="py-comment"># fuzzy where in the new document the old text would have gone.</tt> </tt>
 <a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">    <tt class="py-comment"># Again we just do a best effort attempt.</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name"><a title="lxml.html.diff.InsensitiveSequenceMatcher" class="py-name" href="#" onclick="return doclink('link-49', 'InsensitiveSequenceMatcher', 'link-18');">InsensitiveSequenceMatcher</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">=</tt><tt class="py-name">html1_tokens</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">=</tt><tt class="py-name">html2_tokens</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">    <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-50" class="py-name"><a title="lxml.html.diff.InsensitiveSequenceMatcher" class="py-name" href="#" onclick="return doclink('link-50', 'InsensitiveSequenceMatcher', 'link-18');">InsensitiveSequenceMatcher</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">=</tt><tt class="py-name">html1_tokens</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">=</tt><tt class="py-name">html2_tokens</tt><tt class="py-op">)</tt> </tt>
 <a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">    <tt class="py-name">commands</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt><tt class="py-op">.</tt><tt class="py-name">get_opcodes</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 <a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">command</tt><tt class="py-op">,</tt> <tt class="py-name">i1</tt><tt class="py-op">,</tt> <tt class="py-name">i2</tt><tt class="py-op">,</tt> <tt class="py-name">j1</tt><tt class="py-op">,</tt> <tt class="py-name">j2</tt> <tt class="py-keyword">in</tt> <tt class="py-name">commands</tt><tt class="py-op">:</tt> </tt>
 <a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">command</tt> <tt class="py-op">==</tt> <tt class="py-string">'equal'</tt><tt class="py-op">:</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-50', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt id="link-51" class="py-name" targets="Function lxml.html.diff.expand_tokens()=lxml.html.diff-module.html#expand_tokens"><a title="lxml.html.diff.expand_tokens" class="py-name" href="#" onclick="return doclink('link-51', 'expand_tokens', 'link-51');">expand_tokens</a></tt><tt class="py-op">(</tt><tt class="py-name">html2_tokens</tt><tt class="py-op">[</tt><tt class="py-name">j1</tt><tt class="py-op">:</tt><tt class="py-name">j2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">equal</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-51', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt id="link-52" class="py-name" targets="Function lxml.html.diff.expand_tokens()=lxml.html.diff-module.html#expand_tokens"><a title="lxml.html.diff.expand_tokens" class="py-name" href="#" onclick="return doclink('link-52', 'expand_tokens', 'link-52');">expand_tokens</a></tt><tt class="py-op">(</tt><tt class="py-name">html2_tokens</tt><tt class="py-op">[</tt><tt class="py-name">j1</tt><tt class="py-op">:</tt><tt class="py-name">j2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">equal</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">            <tt class="py-keyword">continue</tt> </tt>
 <a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">command</tt> <tt class="py-op">==</tt> <tt class="py-string">'insert'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">command</tt> <tt class="py-op">==</tt> <tt class="py-string">'replace'</tt><tt class="py-op">:</tt> </tt>
-<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">            <tt class="py-name">ins_tokens</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="lxml.html.diff.expand_tokens" class="py-name" href="#" onclick="return doclink('link-52', 'expand_tokens', 'link-51');">expand_tokens</a></tt><tt class="py-op">(</tt><tt class="py-name">html2_tokens</tt><tt class="py-op">[</tt><tt class="py-name">j1</tt><tt class="py-op">:</tt><tt class="py-name">j2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">            <tt id="link-53" class="py-name" targets="Function lxml.html.diff.merge_insert()=lxml.html.diff-module.html#merge_insert"><a title="lxml.html.diff.merge_insert" class="py-name" href="#" onclick="return doclink('link-53', 'merge_insert', 'link-53');">merge_insert</a></tt><tt class="py-op">(</tt><tt class="py-name">ins_tokens</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">            <tt class="py-name">ins_tokens</tt> <tt class="py-op">=</tt> <tt id="link-53" class="py-name"><a title="lxml.html.diff.expand_tokens" class="py-name" href="#" onclick="return doclink('link-53', 'expand_tokens', 'link-52');">expand_tokens</a></tt><tt class="py-op">(</tt><tt class="py-name">html2_tokens</tt><tt class="py-op">[</tt><tt class="py-name">j1</tt><tt class="py-op">:</tt><tt class="py-name">j2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">            <tt id="link-54" class="py-name" targets="Function lxml.html.diff.merge_insert()=lxml.html.diff-module.html#merge_insert"><a title="lxml.html.diff.merge_insert" class="py-name" href="#" onclick="return doclink('link-54', 'merge_insert', 'link-54');">merge_insert</a></tt><tt class="py-op">(</tt><tt class="py-name">ins_tokens</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
 <a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">command</tt> <tt class="py-op">==</tt> <tt class="py-string">'delete'</tt> <tt class="py-keyword">or</tt> <tt class="py-name">command</tt> <tt class="py-op">==</tt> <tt class="py-string">'replace'</tt><tt class="py-op">:</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">            <tt class="py-name">del_tokens</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="lxml.html.diff.expand_tokens" class="py-name" href="#" onclick="return doclink('link-54', 'expand_tokens', 'link-51');">expand_tokens</a></tt><tt class="py-op">(</tt><tt class="py-name">html1_tokens</tt><tt class="py-op">[</tt><tt class="py-name">i1</tt><tt class="py-op">:</tt><tt class="py-name">i2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">            <tt id="link-55" class="py-name" targets="Function lxml.html.diff.merge_delete()=lxml.html.diff-module.html#merge_delete"><a title="lxml.html.diff.merge_delete" class="py-name" href="#" onclick="return doclink('link-55', 'merge_delete', 'link-55');">merge_delete</a></tt><tt class="py-op">(</tt><tt class="py-name">del_tokens</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">            <tt class="py-name">del_tokens</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="lxml.html.diff.expand_tokens" class="py-name" href="#" onclick="return doclink('link-55', 'expand_tokens', 'link-52');">expand_tokens</a></tt><tt class="py-op">(</tt><tt class="py-name">html1_tokens</tt><tt class="py-op">[</tt><tt class="py-name">i1</tt><tt class="py-op">:</tt><tt class="py-name">i2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">            <tt id="link-56" class="py-name" targets="Function lxml.html.diff.merge_delete()=lxml.html.diff-module.html#merge_delete"><a title="lxml.html.diff.merge_delete" class="py-name" href="#" onclick="return doclink('link-56', 'merge_delete', 'link-56');">merge_delete</a></tt><tt class="py-op">(</tt><tt class="py-name">del_tokens</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
 <a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">    <tt class="py-comment"># If deletes were inserted directly as &lt;del&gt; then we'd have an</tt> </tt>
 <a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line">    <tt class="py-comment"># invalid document at this point.  Instead we put in special</tt> </tt>
 <a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">    <tt class="py-comment"># markers, and when the complete diffed document has been created</tt> </tt>
 <a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">    <tt class="py-comment"># we try to move the deletes around and resolve any problems.</tt> </tt>
-<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name" targets="Function lxml.html.diff.cleanup_delete()=lxml.html.diff-module.html#cleanup_delete"><a title="lxml.html.diff.cleanup_delete" class="py-name" href="#" onclick="return doclink('link-56', 'cleanup_delete', 'link-56');">cleanup_delete</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name" targets="Function lxml.html.diff.cleanup_delete()=lxml.html.diff-module.html#cleanup_delete"><a title="lxml.html.diff.cleanup_delete" class="py-name" href="#" onclick="return doclink('link-57', 'cleanup_delete', 'link-57');">cleanup_delete</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
 <a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line"> </tt>
 <a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
 </div><a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line"> </tt>
@@ -332,22 +332,22 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 </div><div id="expand_tokens-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="expand_tokens-expanded"><a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">    <tt class="py-docstring">"""Given a list of tokens, return a generator of the chunks of</tt> </tt>
 <a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"><tt class="py-docstring">    text for the data in the tokens.</tt> </tt>
 <a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-57" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-57', 'token', 'link-23');">token</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tokens</tt><tt class="py-op">:</tt> </tt>
-<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">pre</tt> <tt class="py-keyword">in</tt> <tt id="link-58" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-58', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">pre_tags</tt><tt class="py-op">:</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-58" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-58', 'token', 'link-23');">token</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tokens</tt><tt class="py-op">:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">pre</tt> <tt class="py-keyword">in</tt> <tt id="link-59" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-59', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">pre_tags</tt><tt class="py-op">:</tt> </tt>
 <a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">pre</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">equal</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-59" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-59', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt id="link-60" class="py-name" targets="Variable lxml.html.diff.href_token.hide_when_equal=lxml.html.diff.href_token-class.html#hide_when_equal,Variable lxml.html.diff.token.hide_when_equal=lxml.html.diff.token-class.html#hide_when_equal"><a title="lxml.html.diff.href_token.hide_when_equal
-lxml.html.diff.token.hide_when_equal" class="py-name" href="#" onclick="return doclink('link-60', 'hide_when_equal', 'link-60');">hide_when_equal</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-61" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-61', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">:</tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                <tt class="py-keyword">yield</tt> <tt id="link-62" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-62', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="lxml.html
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">equal</tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-60" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-60', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Variable lxml.html.diff.href_token.hide_when_equal=lxml.html.diff.href_token-class.html#hide_when_equal,Variable lxml.html.diff.token.hide_when_equal=lxml.html.diff.token-class.html#hide_when_equal"><a title="lxml.html.diff.href_token.hide_when_equal
+lxml.html.diff.token.hide_when_equal" class="py-name" href="#" onclick="return doclink('link-61', 'hide_when_equal', 'link-61');">hide_when_equal</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-62" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-62', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                <tt class="py-keyword">yield</tt> <tt id="link-63" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-63', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-63', 'html', 'link-3');">html</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-64', 'html', 'link-3');">html</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">+</tt> <tt id="link-65" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-65', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">trailing_whitespace</tt> </tt>
 <a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">                <tt class="py-keyword">yield</tt> <tt id="link-64" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-64', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="lxml.html
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">                <tt class="py-keyword">yield</tt> <tt id="link-66" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-66', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-65', 'html', 'link-3');">html</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">post</tt> <tt class="py-keyword">in</tt> <tt id="link-66" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-66', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">:</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-67', 'html', 'link-3');">html</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">post</tt> <tt class="py-keyword">in</tt> <tt id="link-68" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-68', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">:</tt> </tt>
 <a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">post</tt> </tt>
 </div><a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line"> </tt>
 <a name="merge_insert"></a><div id="merge_insert-def"><a name="L230"></a><tt class="py-lineno">230</tt> <a class="py-toggle" href="#" id="merge_insert-toggle" onclick="return toggle('merge_insert');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#merge_insert">merge_insert</a><tt class="py-op">(</tt><tt class="py-param">ins_chunks</tt><tt class="py-op">,</tt> <tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -356,19 +356,19 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 <a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">    <tt class="py-comment"># Though we don't throw away unbalanced_start or unbalanced_end</tt> </tt>
 <a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">    <tt class="py-comment"># (we assume there is accompanying markup later or earlier in the</tt> </tt>
 <a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">    <tt class="py-comment"># document), we only put &lt;ins&gt; around the balanced portion.</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">    <tt class="py-name">unbalanced_start</tt><tt class="py-op">,</tt> <tt class="py-name">balanced</tt><tt class="py-op">,</tt> <tt class="py-name">unbalanced_end</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name" targets="Function lxml.html.diff.split_unbalanced()=lxml.html.diff-module.html#split_unbalanced"><a title="lxml.html.diff.split_unbalanced" class="py-name" href="#" onclick="return doclink('link-67', 'split_unbalanced', 'link-67');">split_unbalanced</a></tt><tt class="py-op">(</tt><tt class="py-name">ins_chunks</tt><tt class="py-op">)</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-68', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">unbalanced_start</tt><tt class="py-op">)</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">    <tt class="py-name">unbalanced_start</tt><tt class="py-op">,</tt> <tt class="py-name">balanced</tt><tt class="py-op">,</tt> <tt class="py-name">unbalanced_end</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name" targets="Function lxml.html.diff.split_unbalanced()=lxml.html.diff-module.html#split_unbalanced"><a title="lxml.html.diff.split_unbalanced" class="py-name" href="#" onclick="return doclink('link-69', 'split_unbalanced', 'link-69');">split_unbalanced</a></tt><tt class="py-op">(</tt><tt class="py-name">ins_chunks</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-70', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">unbalanced_start</tt><tt class="py-op">)</tt> </tt>
 <a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">doc</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">doc</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-comment"># Fix up the case where the word before the insert didn't end with </tt> </tt>
 <a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">        <tt class="py-comment"># a space</tt> </tt>
 <a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-string">' '</tt> </tt>
-<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-69', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ins&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-71', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;ins&gt;'</tt><tt class="py-op">)</tt> </tt>
 <a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">balanced</tt> <tt class="py-keyword">and</tt> <tt class="py-name">balanced</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-comment"># We move space outside of &lt;/ins&gt;</tt> </tt>
 <a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">        <tt class="py-name">balanced</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">balanced</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-70', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">balanced</tt><tt class="py-op">)</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-71', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/ins&gt; '</tt><tt class="py-op">)</tt> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-72', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">unbalanced_end</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-72', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">balanced</tt><tt class="py-op">)</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-73', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/ins&gt; '</tt><tt class="py-op">)</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-74', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">unbalanced_end</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line"> </tt>
 <a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line"><tt class="py-comment"># These are sentinals to represent the start and end of a &lt;del&gt;</tt> </tt>
 <a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line"><tt class="py-comment"># segment, until we do the cleanup phase to turn them into proper</tt> </tt>
@@ -386,9 +386,9 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 </div><div id="merge_delete-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="merge_delete-expanded"><a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">    <tt class="py-docstring">""" Adds the text chunks in del_chunks to the document doc (another</tt> </tt>
 <a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line"><tt class="py-docstring">    list of text chunks) with marker to show it is a delete.</tt> </tt>
 <a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line"><tt class="py-docstring">    cleanup_delete later resolves these markers into &lt;del&gt; tags."""</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-73" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-73', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt id="link-74" class="py-name" targets="Class lxml.html.diff.DEL_START=lxml.html.diff.DEL_START-class.html"><a title="lxml.html.diff.DEL_START" class="py-name" href="#" onclick="return doclink('link-74', 'DEL_START', 'link-74');">DEL_START</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-75', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">del_chunks</tt><tt class="py-op">)</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-76', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt id="link-77" class="py-name" targets="Class lxml.html.diff.DEL_END=lxml.html.diff.DEL_END-class.html"><a title="lxml.html.diff.DEL_END" class="py-name" href="#" onclick="return doclink('link-77', 'DEL_END', 'link-77');">DEL_END</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-75', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt id="link-76" class="py-name" targets="Class lxml.html.diff.DEL_START=lxml.html.diff.DEL_START-class.html"><a title="lxml.html.diff.DEL_START" class="py-name" href="#" onclick="return doclink('link-76', 'DEL_START', 'link-76');">DEL_START</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-77', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">del_chunks</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">    <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-78', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt id="link-79" class="py-name" targets="Class lxml.html.diff.DEL_END=lxml.html.diff.DEL_END-class.html"><a title="lxml.html.diff.DEL_END" class="py-name" href="#" onclick="return doclink('link-79', 'DEL_END', 'link-79');">DEL_END</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"> </tt>
 <a name="cleanup_delete"></a><div id="cleanup_delete-def"><a name="L270"></a><tt class="py-lineno">270</tt> <a class="py-toggle" href="#" id="cleanup_delete-toggle" onclick="return toggle('cleanup_delete');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#cleanup_delete">cleanup_delete</a><tt class="py-op">(</tt><tt class="py-param">chunks</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="cleanup_delete-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="cleanup_delete-expanded"><a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">    <tt class="py-docstring">""" Cleans up any DEL_START/DEL_END markers in the document, replacing</tt> </tt>
@@ -404,28 +404,28 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 <a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt class="py-comment"># into stuff-preceding-DEL_START, stuff-inside, and</tt> </tt>
 <a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">        <tt class="py-comment"># stuff-following-DEL_END</tt> </tt>
 <a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">            <tt class="py-name">pre_delete</tt><tt class="py-op">,</tt> <tt class="py-name">delete</tt><tt class="py-op">,</tt> <tt class="py-name">post_delete</tt> <tt class="py-op">=</tt> <tt id="link-78" class="py-name" targets="Function lxml.html.diff.split_delete()=lxml.html.diff-module.html#split_delete"><a title="lxml.html.diff.split_delete" class="py-name" href="#" onclick="return doclink('link-78', 'split_delete', 'link-78');">split_delete</a></tt><tt class="py-op">(</tt><tt class="py-name">chunks</tt><tt class="py-op">)</tt> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-79" class="py-name" targets="Class lxml.html.diff.NoDeletes=lxml.html.diff.NoDeletes-class.html"><a title="lxml.html.diff.NoDeletes" class="py-name" href="#" onclick="return doclink('link-79', 'NoDeletes', 'link-79');">NoDeletes</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">            <tt class="py-name">pre_delete</tt><tt class="py-op">,</tt> <tt class="py-name">delete</tt><tt class="py-op">,</tt> <tt class="py-name">post_delete</tt> <tt class="py-op">=</tt> <tt id="link-80" class="py-name" targets="Function lxml.html.diff.split_delete()=lxml.html.diff-module.html#split_delete"><a title="lxml.html.diff.split_delete" class="py-name" href="#" onclick="return doclink('link-80', 'split_delete', 'link-80');">split_delete</a></tt><tt class="py-op">(</tt><tt class="py-name">chunks</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt id="link-81" class="py-name" targets="Class lxml.html.diff.NoDeletes=lxml.html.diff.NoDeletes-class.html"><a title="lxml.html.diff.NoDeletes" class="py-name" href="#" onclick="return doclink('link-81', 'NoDeletes', 'link-81');">NoDeletes</a></tt><tt class="py-op">:</tt> </tt>
 <a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">            <tt class="py-comment"># Nothing found, we've cleaned up the entire doc</tt> </tt>
 <a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
 <a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-comment"># The stuff-inside-DEL_START/END may not be well balanced</tt> </tt>
 <a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">        <tt class="py-comment"># markup.  First we figure out what unbalanced portions there are:</tt> </tt>
-<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">        <tt class="py-name">unbalanced_start</tt><tt class="py-op">,</tt> <tt class="py-name">balanced</tt><tt class="py-op">,</tt> <tt class="py-name">unbalanced_end</tt> <tt class="py-op">=</tt> <tt id="link-80" class="py-name"><a title="lxml.html.diff.split_unbalanced" class="py-name" href="#" onclick="return doclink('link-80', 'split_unbalanced', 'link-67');">split_unbalanced</a></tt><tt class="py-op">(</tt><tt class="py-name">delete</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">        <tt class="py-name">unbalanced_start</tt><tt class="py-op">,</tt> <tt class="py-name">balanced</tt><tt class="py-op">,</tt> <tt class="py-name">unbalanced_end</tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name"><a title="lxml.html.diff.split_unbalanced" class="py-name" href="#" onclick="return doclink('link-82', 'split_unbalanced', 'link-69');">split_unbalanced</a></tt><tt class="py-op">(</tt><tt class="py-name">delete</tt><tt class="py-op">)</tt> </tt>
 <a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">        <tt class="py-comment"># Then we move the span forward and/or backward based on these</tt> </tt>
 <a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line">        <tt class="py-comment"># unbalanced portions:</tt> </tt>
-<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">        <tt id="link-81" class="py-name" targets="Function lxml.html.diff.locate_unbalanced_start()=lxml.html.diff-module.html#locate_unbalanced_start"><a title="lxml.html.diff.locate_unbalanced_start" class="py-name" href="#" onclick="return doclink('link-81', 'locate_unbalanced_start', 'link-81');">locate_unbalanced_start</a></tt><tt class="py-op">(</tt><tt class="py-name">unbalanced_start</tt><tt class="py-op">,</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">,</tt> <tt class="py-name">post_delete</tt><tt class="py-op">)</tt> </tt>
-<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">        <tt id="link-82" class="py-name" targets="Function lxml.html.diff.locate_unbalanced_end()=lxml.html.diff-module.html#locate_unbalanced_end"><a title="lxml.html.diff.locate_unbalanced_end" class="py-name" href="#" onclick="return doclink('link-82', 'locate_unbalanced_end', 'link-82');">locate_unbalanced_end</a></tt><tt class="py-op">(</tt><tt class="py-name">unbalanced_end</tt><tt class="py-op">,</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">,</tt> <tt class="py-name">post_delete</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">        <tt id="link-83" class="py-name" targets="Function lxml.html.diff.locate_unbalanced_start()=lxml.html.diff-module.html#locate_unbalanced_start"><a title="lxml.html.diff.locate_unbalanced_start" class="py-name" href="#" onclick="return doclink('link-83', 'locate_unbalanced_start', 'link-83');">locate_unbalanced_start</a></tt><tt class="py-op">(</tt><tt class="py-name">unbalanced_start</tt><tt class="py-op">,</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">,</tt> <tt class="py-name">post_delete</tt><tt class="py-op">)</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">        <tt id="link-84" class="py-name" targets="Function lxml.html.diff.locate_unbalanced_end()=lxml.html.diff-module.html#locate_unbalanced_end"><a title="lxml.html.diff.locate_unbalanced_end" class="py-name" href="#" onclick="return doclink('link-84', 'locate_unbalanced_end', 'link-84');">locate_unbalanced_end</a></tt><tt class="py-op">(</tt><tt class="py-name">unbalanced_end</tt><tt class="py-op">,</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">,</tt> <tt class="py-name">post_delete</tt><tt class="py-op">)</tt> </tt>
 <a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt class="py-name">pre_delete</tt> </tt>
 <a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">doc</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">doc</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">            <tt class="py-comment"># Fix up case where the word before us didn't have a trailing space</tt> </tt>
 <a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">            <tt class="py-name">doc</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">+=</tt> <tt class="py-string">' '</tt> </tt>
-<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-83" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-83', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;del&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-85', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;del&gt;'</tt><tt class="py-op">)</tt> </tt>
 <a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">balanced</tt> <tt class="py-keyword">and</tt> <tt class="py-name">balanced</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line">            <tt class="py-comment"># We move space outside of &lt;/del&gt;</tt> </tt>
 <a name="L302"></a><tt class="py-lineno">302</tt>  <tt class="py-line">            <tt class="py-name">balanced</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">balanced</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-84', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">balanced</tt><tt class="py-op">)</tt> </tt>
-<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-85', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/del&gt; '</tt><tt class="py-op">)</tt> </tt>
-<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-86', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">post_delete</tt><tt class="py-op">)</tt> </tt>
+<a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-86', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">balanced</tt><tt class="py-op">)</tt> </tt>
+<a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-87', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/del&gt; '</tt><tt class="py-op">)</tt> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line">        <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-88', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">post_delete</tt><tt class="py-op">)</tt> </tt>
 <a name="L306"></a><tt class="py-lineno">306</tt>  <tt class="py-line">        <tt class="py-name">chunks</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt> </tt>
 <a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">chunks</tt> </tt>
 </div><a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line"> </tt>
@@ -437,80 +437,80 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 <a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"><tt class="py-docstring">    not closed in this span.  Similarly, unbalanced_end is a list of</tt> </tt>
 <a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line"><tt class="py-docstring">    tags that are closed but were not opened.  Extracting these might</tt> </tt>
 <a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line"><tt class="py-docstring">    mean some reordering of the chunks."""</tt> </tt>
-<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">    <tt id="link-87" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-87', 'start', 'link-87');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">    <tt id="link-88" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-88', 'end', 'link-88');">end</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L317"></a><tt class="py-lineno">317</tt>  <tt class="py-line">    <tt id="link-89" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-89', 'start', 'link-89');">start</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L318"></a><tt class="py-lineno">318</tt>  <tt class="py-line">    <tt id="link-90" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-90', 'end', 'link-90');">end</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 <a name="L319"></a><tt class="py-lineno">319</tt>  <tt class="py-line">    <tt class="py-name">tag_stack</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 <a name="L320"></a><tt class="py-lineno">320</tt>  <tt class="py-line">    <tt class="py-name">balanced</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 <a name="L321"></a><tt class="py-lineno">321</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chunks</tt><tt class="py-op">:</tt> </tt>
 <a name="L322"></a><tt class="py-lineno">322</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">chunk</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">            <tt class="py-name">balanced</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-89', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno">323</tt>  <tt class="py-line">            <tt class="py-name">balanced</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-91', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
 <a name="L324"></a><tt class="py-lineno">324</tt>  <tt class="py-line">            <tt class="py-keyword">continue</tt> </tt>
 <a name="L325"></a><tt class="py-lineno">325</tt>  <tt class="py-line">        <tt class="py-name">endtag</tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'/'</tt> </tt>
-<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">        <tt id="link-90" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
+<a name="L326"></a><tt class="py-lineno">326</tt>  <tt class="py-line">        <tt id="link-92" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-90', 'name', 'link-90');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-91', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;/'</tt><tt class="py-op">)</tt> </tt>
-<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-92" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-92', 'name', 'link-92');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-93', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L327"></a><tt class="py-lineno">327</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-94" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-92', 'name', 'link-90');">name</a></tt> <tt class="py-keyword">in</tt> <tt id="link-93" class="py-name" targets="Variable lxml.doctestcompare.LXMLOutputChecker.empty_tags=lxml.doctestcompare.LXMLOutputChecker-class.html#empty_tags,Variable lxml.html.defs.empty_tags=lxml.html.defs-module.html#empty_tags,Variable lxml.html.diff.empty_tags=lxml.html.diff-module.html#empty_tags"><a title="lxml.doctestcompare.LXMLOutputChecker.empty_tags
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-94', 'name', 'link-92');">name</a></tt> <tt class="py-keyword">in</tt> <tt id="link-95" class="py-name" targets="Variable lxml.doctestcompare.LXMLOutputChecker.empty_tags=lxml.doctestcompare.LXMLOutputChecker-class.html#empty_tags,Variable lxml.html.defs.empty_tags=lxml.html.defs-module.html#empty_tags,Variable lxml.html.diff.empty_tags=lxml.html.diff-module.html#empty_tags"><a title="lxml.doctestcompare.LXMLOutputChecker.empty_tags
 lxml.html.defs.empty_tags
-lxml.html.diff.empty_tags" class="py-name" href="#" onclick="return doclink('link-93', 'empty_tags', 'link-93');">empty_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">            <tt class="py-name">balanced</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-94', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+lxml.html.diff.empty_tags" class="py-name" href="#" onclick="return doclink('link-95', 'empty_tags', 'link-95');">empty_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L328"></a><tt class="py-lineno">328</tt>  <tt class="py-line">            <tt class="py-name">balanced</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-96', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
 <a name="L329"></a><tt class="py-lineno">329</tt>  <tt class="py-line">            <tt class="py-keyword">continue</tt> </tt>
 <a name="L330"></a><tt class="py-lineno">330</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">endtag</tt><tt class="py-op">:</tt> </tt>
-<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tag_stack</tt> <tt class="py-keyword">and</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt id="link-95" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L331"></a><tt class="py-lineno">331</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tag_stack</tt> <tt class="py-keyword">and</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt id="link-97" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-95', 'name', 'link-90');">name</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">                <tt class="py-name">balanced</tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-96', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
-<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">                <tt id="link-97" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-97', 'name', 'link-92');">name</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L332"></a><tt class="py-lineno">332</tt>  <tt class="py-line">                <tt class="py-name">balanced</tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-98', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L333"></a><tt class="py-lineno">333</tt>  <tt class="py-line">                <tt id="link-99" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-97', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">,</tt> <tt id="link-98" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-99', 'name', 'link-92');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-98', 'tag', 'link-98');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-99', 'pop', 'link-99');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">                <tt class="py-name">balanced</tt><tt class="py-op">[</tt><tt class="py-name">pos</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-100" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-100', 'tag', 'link-100');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-101', 'pop', 'link-101');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L334"></a><tt class="py-lineno">334</tt>  <tt class="py-line">                <tt class="py-name">balanced</tt><tt class="py-op">[</tt><tt class="py-name">pos</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-102" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-100', 'tag', 'link-98');">tag</a></tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-102', 'tag', 'link-100');">tag</a></tt> </tt>
 <a name="L335"></a><tt class="py-lineno">335</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">:</tt> </tt>
-<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">                <tt id="link-101" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-101', 'start', 'link-87');">start</a></tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-102', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-103" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L336"></a><tt class="py-lineno">336</tt>  <tt class="py-line">                <tt id="link-103" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-103', 'start', 'link-89');">start</a></tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-104', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt id="link-105" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-103', 'tag', 'link-98');">tag</a></tt> <tt class="py-keyword">for</tt> <tt id="link-104" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-105', 'tag', 'link-100');">tag</a></tt> <tt class="py-keyword">for</tt> <tt id="link-106" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-104', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">,</tt> <tt id="link-105" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-106', 'name', 'link-92');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">,</tt> <tt id="link-107" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-105', 'tag', 'link-98');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-107', 'tag', 'link-100');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 <a name="L337"></a><tt class="py-lineno">337</tt>  <tt class="py-line">                <tt class="py-name">tag_stack</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">                <tt id="link-106" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-106', 'end', 'link-88');">end</a></tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-107', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L338"></a><tt class="py-lineno">338</tt>  <tt class="py-line">                <tt id="link-108" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-108', 'end', 'link-90');">end</a></tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-109', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
 <a name="L339"></a><tt class="py-lineno">339</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">                <tt id="link-108" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-108', 'end', 'link-88');">end</a></tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-109', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L340"></a><tt class="py-lineno">340</tt>  <tt class="py-line">                <tt id="link-110" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-110', 'end', 'link-90');">end</a></tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-111', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
 <a name="L341"></a><tt class="py-lineno">341</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">            <tt class="py-name">tag_stack</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-110', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-111" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L342"></a><tt class="py-lineno">342</tt>  <tt class="py-line">            <tt class="py-name">tag_stack</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-112', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt id="link-113" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-111', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">balanced</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">chunk</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">            <tt class="py-name">balanced</tt><tt class="py-op">.</tt><tt id="link-112" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-112', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">    <tt id="link-113" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-113', 'start', 'link-87');">start</a></tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-114', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt class="py-name">chunk</tt> <tt class="py-keyword">for</tt> <tt id="link-115" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-113', 'name', 'link-92');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">balanced</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">chunk</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L343"></a><tt class="py-lineno">343</tt>  <tt class="py-line">            <tt class="py-name">balanced</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-114', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L344"></a><tt class="py-lineno">344</tt>  <tt class="py-line">    <tt id="link-115" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-115', 'start', 'link-89');">start</a></tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-116', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L345"></a><tt class="py-lineno">345</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt class="py-name">chunk</tt> <tt class="py-keyword">for</tt> <tt id="link-117" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-115', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">,</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-117', 'name', 'link-92');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pos</tt><tt class="py-op">,</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tag_stack</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 <a name="L346"></a><tt class="py-lineno">346</tt>  <tt class="py-line">    <tt class="py-name">balanced</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">chunk</tt> <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">balanced</tt> <tt class="py-keyword">if</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt> </tt>
-<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-116" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-116', 'start', 'link-87');">start</a></tt><tt class="py-op">,</tt> <tt class="py-name">balanced</tt><tt class="py-op">,</tt> <tt id="link-117" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-117', 'end', 'link-88');">end</a></tt> </tt>
+<a name="L347"></a><tt class="py-lineno">347</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-118" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-118', 'start', 'link-89');">start</a></tt><tt class="py-op">,</tt> <tt class="py-name">balanced</tt><tt class="py-op">,</tt> <tt id="link-119" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-119', 'end', 'link-90');">end</a></tt> </tt>
 </div><a name="L348"></a><tt class="py-lineno">348</tt>  <tt class="py-line"> </tt>
 <a name="split_delete"></a><div id="split_delete-def"><a name="L349"></a><tt class="py-lineno">349</tt> <a class="py-toggle" href="#" id="split_delete-toggle" onclick="return toggle('split_delete');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#split_delete">split_delete</a><tt class="py-op">(</tt><tt class="py-param">chunks</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="split_delete-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="split_delete-expanded"><a name="L350"></a><tt class="py-lineno">350</tt>  <tt class="py-line">    <tt class="py-docstring">""" Returns (stuff_before_DEL_START, stuff_inside_DEL_START_END,</tt> </tt>
@@ -518,10 +518,10 @@ lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('li
 <a name="L352"></a><tt class="py-lineno">352</tt>  <tt class="py-line"><tt class="py-docstring">    more DEL_STARTs in stuff_after_DEL_END).  Raises NoDeletes if</tt> </tt>
 <a name="L353"></a><tt class="py-lineno">353</tt>  <tt class="py-line"><tt class="py-docstring">    there's no DEL_START found. """</tt> </tt>
 <a name="L354"></a><tt class="py-lineno">354</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">        <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">chunks</tt><tt class="py-op">.</tt><tt id="link-118" class="py-name" targets="Method lxml.etree._Element.index()=lxml.etree._Element-class.html#index"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-118', 'index', 'link-118');">index</a></tt><tt class="py-op">(</tt><tt id="link-119" class="py-name"><a title="lxml.html.diff.DEL_START" class="py-name" href="#" onclick="return doclink('link-119', 'DEL_START', 'link-74');">DEL_START</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L355"></a><tt class="py-lineno">355</tt>  <tt class="py-line">        <tt class="py-name">pos</tt> <tt class="py-op">=</tt> <tt class="py-name">chunks</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name" targets="Method lxml.etree._Element.index()=lxml.etree._Element-class.html#index"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-120', 'index', 'link-120');">index</a></tt><tt class="py-op">(</tt><tt id="link-121" class="py-name"><a title="lxml.html.diff.DEL_START" class="py-name" href="#" onclick="return doclink('link-121', 'DEL_START', 'link-76');">DEL_START</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L356"></a><tt class="py-lineno">356</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-120" class="py-name"><a title="lxml.html.diff.NoDeletes" class="py-name" href="#" onclick="return doclink('link-120', 'NoDeletes', 'link-79');">NoDeletes</a></tt> </tt>
-<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">    <tt class="py-name">pos2</tt> <tt class="py-op">=</tt> <tt class="py-name">chunks</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-121', 'index', 'link-118');">index</a></tt><tt class="py-op">(</tt><tt id="link-122" class="py-name"><a title="lxml.html.diff.DEL_END" class="py-name" href="#" onclick="return doclink('link-122', 'DEL_END', 'link-77');">DEL_END</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno">357</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-122" class="py-name"><a title="lxml.html.diff.NoDeletes" class="py-name" href="#" onclick="return doclink('link-122', 'NoDeletes', 'link-81');">NoDeletes</a></tt> </tt>
+<a name="L358"></a><tt class="py-lineno">358</tt>  <tt class="py-line">    <tt class="py-name">pos2</tt> <tt class="py-op">=</tt> <tt class="py-name">chunks</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-123', 'index', 'link-120');">index</a></tt><tt class="py-op">(</tt><tt id="link-124" class="py-name"><a title="lxml.html.diff.DEL_END" class="py-name" href="#" onclick="return doclink('link-124', 'DEL_END', 'link-79');">DEL_END</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L359"></a><tt class="py-lineno">359</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">chunks</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">pos</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">chunks</tt><tt class="py-op">[</tt><tt class="py-name">pos</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-name">pos2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">chunks</tt><tt class="py-op">[</tt><tt class="py-name">pos2</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
 </div><a name="L360"></a><tt class="py-lineno">360</tt>  <tt class="py-line"> </tt>
 <a name="locate_unbalanced_start"></a><div id="locate_unbalanced_start-def"><a name="L361"></a><tt class="py-lineno">361</tt> <a class="py-toggle" href="#" id="locate_unbalanced_start-toggle" onclick="return toggle('locate_unbalanced_start');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#locate_unbalanced_start">locate_unbalanced_start</a><tt class="py-op">(</tt><tt class="py-param">unbalanced_start</tt><tt class="py-op">,</tt> <tt class="py-param">pre_delete</tt><tt class="py-op">,</tt> <tt class="py-param">post_delete</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -551,67 +551,67 @@ lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('li
 <a name="L385"></a><tt class="py-lineno">385</tt>  <tt class="py-line">            <tt class="py-comment"># We have totally succeded in finding the position</tt> </tt>
 <a name="L386"></a><tt class="py-lineno">386</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
 <a name="L387"></a><tt class="py-lineno">387</tt>  <tt class="py-line">        <tt class="py-name">finding</tt> <tt class="py-op">=</tt> <tt class="py-name">unbalanced_start</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">        <tt class="py-name">finding_name</tt> <tt class="py-op">=</tt> <tt class="py-name">finding</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-123', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L388"></a><tt class="py-lineno">388</tt>  <tt class="py-line">        <tt class="py-name">finding_name</tt> <tt class="py-op">=</tt> <tt class="py-name">finding</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-125', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;'</tt><tt class="py-op">)</tt> </tt>
 <a name="L389"></a><tt class="py-lineno">389</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">post_delete</tt><tt class="py-op">:</tt> </tt>
 <a name="L390"></a><tt class="py-lineno">390</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">        <tt id="link-124" class="py-name" targets="Method lxml.etree.ElementDepthFirstIterator.next()=lxml.etree.ElementDepthFirstIterator-class.html#next,Method lxml.etree.ElementTextIterator.next()=lxml.etree.ElementTextIterator-class.html#next,Method lxml.etree._ElementIterator.next()=lxml.etree._ElementIterator-class.html#next,Method lxml.etree._ElementMatchIterator.next()=lxml.etree._ElementMatchIterator-class.html#next,Method lxml.etree.iterparse.next()=lxml.etree.iterparse-class.html#next,Method lxml.etree.iterwalk.next()=lxml.etree.iterwalk-class.html#next"><a title="lxml.etree.ElementDepthFirstIterator.next
+<a name="L391"></a><tt class="py-lineno">391</tt>  <tt class="py-line">        <tt id="link-126" class="py-name" targets="Method lxml.etree.ElementDepthFirstIterator.next()=lxml.etree.ElementDepthFirstIterator-class.html#next,Method lxml.etree.ElementTextIterator.next()=lxml.etree.ElementTextIterator-class.html#next,Method lxml.etree._ElementIterator.next()=lxml.etree._ElementIterator-class.html#next,Method lxml.etree._ElementMatchIterator.next()=lxml.etree._ElementMatchIterator-class.html#next,Method lxml.etree.iterparse.next()=lxml.etree.iterparse-class.html#next,Method lxml.etree.iterwalk.next()=lxml.etree.iterwalk-class.html#next"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-124', 'next', 'link-124');">next</a></tt> <tt class="py-op">=</tt> <tt class="py-name">post_delete</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-125" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-126', 'next', 'link-126');">next</a></tt> <tt class="py-op">=</tt> <tt class="py-name">post_delete</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L392"></a><tt class="py-lineno">392</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-127" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-125', 'next', 'link-124');">next</a></tt> <tt class="py-keyword">is</tt> <tt id="link-126" class="py-name"><a title="lxml.html.diff.DEL_START" class="py-name" href="#" onclick="return doclink('link-126', 'DEL_START', 'link-74');">DEL_START</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-127" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-127', 'next', 'link-126');">next</a></tt> <tt class="py-keyword">is</tt> <tt id="link-128" class="py-name"><a title="lxml.html.diff.DEL_START" class="py-name" href="#" onclick="return doclink('link-128', 'DEL_START', 'link-76');">DEL_START</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-129" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-127', 'next', 'link-124');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-129', 'next', 'link-126');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L393"></a><tt class="py-lineno">393</tt>  <tt class="py-line">            <tt class="py-comment"># Reached a word, we can't move the delete text forward</tt> </tt>
 <a name="L394"></a><tt class="py-lineno">394</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-128" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+<a name="L395"></a><tt class="py-lineno">395</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-130" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-128', 'next', 'link-124');">next</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'/'</tt><tt class="py-op">:</tt> </tt>
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-130', 'next', 'link-126');">next</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'/'</tt><tt class="py-op">:</tt> </tt>
 <a name="L396"></a><tt class="py-lineno">396</tt>  <tt class="py-line">            <tt class="py-comment"># Reached a closing tag, can we go further?  Maybe not...</tt> </tt>
 <a name="L397"></a><tt class="py-lineno">397</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">        <tt id="link-129" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L398"></a><tt class="py-lineno">398</tt>  <tt class="py-line">        <tt id="link-131" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-129', 'name', 'link-90');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-130" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-131', 'name', 'link-92');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-132" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-130', 'next', 'link-124');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-131', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-132" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-132', 'next', 'link-126');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-133', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L399"></a><tt class="py-lineno">399</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-134" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-132', 'name', 'link-90');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'ins'</tt><tt class="py-op">:</tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-134', 'name', 'link-92');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'ins'</tt><tt class="py-op">:</tt> </tt>
 <a name="L400"></a><tt class="py-lineno">400</tt>  <tt class="py-line">            <tt class="py-comment"># Can't move into an insert</tt> </tt>
 <a name="L401"></a><tt class="py-lineno">401</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt id="link-133" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L402"></a><tt class="py-lineno">402</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt id="link-135" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-133', 'name', 'link-90');">name</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'del'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt> </tt>
-<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">            <tt class="py-string">"Unexpected delete tag: %r"</tt> <tt class="py-op">%</tt> <tt id="link-134" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-135', 'name', 'link-92');">name</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'del'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt> </tt>
+<a name="L403"></a><tt class="py-lineno">403</tt>  <tt class="py-line">            <tt class="py-string">"Unexpected delete tag: %r"</tt> <tt class="py-op">%</tt> <tt id="link-136" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-134', 'next', 'link-124');">next</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-135" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-136', 'next', 'link-126');">next</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L404"></a><tt class="py-lineno">404</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-137" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-135', 'name', 'link-90');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-name">finding_name</tt><tt class="py-op">:</tt> </tt>
-<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line">            <tt class="py-name">unbalanced_start</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-136', 'pop', 'link-99');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line">            <tt class="py-name">pre_delete</tt><tt class="py-op">.</tt><tt id="link-137" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-137', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">post_delete</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-138', 'pop', 'link-99');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-137', 'name', 'link-92');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-name">finding_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L405"></a><tt class="py-lineno">405</tt>  <tt class="py-line">            <tt class="py-name">unbalanced_start</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-138', 'pop', 'link-101');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L406"></a><tt class="py-lineno">406</tt>  <tt class="py-line">            <tt class="py-name">pre_delete</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-139', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">post_delete</tt><tt class="py-op">.</tt><tt id="link-140" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-140', 'pop', 'link-101');">pop</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L407"></a><tt class="py-lineno">407</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L408"></a><tt class="py-lineno">408</tt>  <tt class="py-line">            <tt class="py-comment"># Found a tag that doesn't match</tt> </tt>
 <a name="L409"></a><tt class="py-lineno">409</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
@@ -624,52 +624,52 @@ lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('li
 <a name="L416"></a><tt class="py-lineno">416</tt>  <tt class="py-line">            <tt class="py-comment"># Success</tt> </tt>
 <a name="L417"></a><tt class="py-lineno">417</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
 <a name="L418"></a><tt class="py-lineno">418</tt>  <tt class="py-line">        <tt class="py-name">finding</tt> <tt class="py-op">=</tt> <tt class="py-name">unbalanced_end</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line">        <tt class="py-name">finding_name</tt> <tt class="py-op">=</tt> <tt class="py-name">finding</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-139', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L419"></a><tt class="py-lineno">419</tt>  <tt class="py-line">        <tt class="py-name">finding_name</tt> <tt class="py-op">=</tt> <tt class="py-name">finding</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-141', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;/'</tt><tt class="py-op">)</tt> </tt>
 <a name="L420"></a><tt class="py-lineno">420</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">:</tt> </tt>
 <a name="L421"></a><tt class="py-lineno">421</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line">        <tt id="link-140" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+<a name="L422"></a><tt class="py-lineno">422</tt>  <tt class="py-line">        <tt id="link-142" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-140', 'next', 'link-124');">next</a></tt> <tt class="py-op">=</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-141" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-142', 'next', 'link-126');">next</a></tt> <tt class="py-op">=</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L423"></a><tt class="py-lineno">423</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-143" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-141', 'next', 'link-124');">next</a></tt> <tt class="py-keyword">is</tt> <tt id="link-142" class="py-name"><a title="lxml.html.diff.DEL_END" class="py-name" href="#" onclick="return doclink('link-142', 'DEL_END', 'link-77');">DEL_END</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-143" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-143', 'next', 'link-126');">next</a></tt> <tt class="py-keyword">is</tt> <tt id="link-144" class="py-name"><a title="lxml.html.diff.DEL_END" class="py-name" href="#" onclick="return doclink('link-144', 'DEL_END', 'link-79');">DEL_END</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-145" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-143', 'next', 'link-124');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-145', 'next', 'link-126');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L424"></a><tt class="py-lineno">424</tt>  <tt class="py-line">            <tt class="py-comment"># A word or a start tag</tt> </tt>
 <a name="L425"></a><tt class="py-lineno">425</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">        <tt id="link-144" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L426"></a><tt class="py-lineno">426</tt>  <tt class="py-line">        <tt id="link-146" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-144', 'name', 'link-90');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-145" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-146', 'name', 'link-92');">name</a></tt> <tt class="py-op">=</tt> <tt id="link-147" class="py-name"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
-lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-145', 'next', 'link-124');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-146" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-146', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;/'</tt><tt class="py-op">)</tt> </tt>
-<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-147" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-147', 'next', 'link-126');">next</a></tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-148" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-148', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;&gt;/'</tt><tt class="py-op">)</tt> </tt>
+<a name="L427"></a><tt class="py-lineno">427</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-149" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-147', 'name', 'link-90');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'ins'</tt> <tt class="py-keyword">or</tt> <tt id="link-148" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-149', 'name', 'link-92');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'ins'</tt> <tt class="py-keyword">or</tt> <tt id="link-150" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-148', 'name', 'link-90');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'del'</tt><tt class="py-op">:</tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-150', 'name', 'link-92');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'del'</tt><tt class="py-op">:</tt> </tt>
 <a name="L428"></a><tt class="py-lineno">428</tt>  <tt class="py-line">            <tt class="py-comment"># Can't move into an insert or delete</tt> </tt>
 <a name="L429"></a><tt class="py-lineno">429</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-149" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L430"></a><tt class="py-lineno">430</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-151" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-149', 'name', 'link-90');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-name">finding_name</tt><tt class="py-op">:</tt> </tt>
-<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line">            <tt class="py-name">unbalanced_end</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-150', 'pop', 'link-99');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line">            <tt class="py-name">post_delete</tt><tt class="py-op">.</tt><tt id="link-151" class="py-name" targets="Method lxml.etree._Element.insert()=lxml.etree._Element-class.html#insert"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-151', 'insert', 'link-151');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-152', 'pop', 'link-99');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-151', 'name', 'link-92');">name</a></tt> <tt class="py-op">==</tt> <tt class="py-name">finding_name</tt><tt class="py-op">:</tt> </tt>
+<a name="L431"></a><tt class="py-lineno">431</tt>  <tt class="py-line">            <tt class="py-name">unbalanced_end</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-152', 'pop', 'link-101');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno">432</tt>  <tt class="py-line">            <tt class="py-name">post_delete</tt><tt class="py-op">.</tt><tt id="link-153" class="py-name" targets="Method lxml.etree._Element.insert()=lxml.etree._Element-class.html#insert"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-153', 'insert', 'link-153');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">pre_delete</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-154', 'pop', 'link-101');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L433"></a><tt class="py-lineno">433</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L434"></a><tt class="py-lineno">434</tt>  <tt class="py-line">            <tt class="py-comment"># Found a tag that doesn't match</tt> </tt>
 <a name="L435"></a><tt class="py-lineno">435</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
@@ -689,11 +689,11 @@ lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('li
 <a name="L449"></a><tt class="py-lineno">449</tt>  <tt class="py-line"> </tt>
 <a name="L450"></a><tt class="py-lineno">450</tt>  <tt class="py-line">    <tt class="py-comment"># When this is true, the token will be eliminated from the</tt> </tt>
 <a name="L451"></a><tt class="py-lineno">451</tt>  <tt class="py-line">    <tt class="py-comment"># displayed diff if no change has occurred:</tt> </tt>
-<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line">    <tt id="link-153" class="py-name"><a title="lxml.html.diff.href_token.hide_when_equal
-lxml.html.diff.token.hide_when_equal" class="py-name" href="#" onclick="return doclink('link-153', 'hide_when_equal', 'link-60');">hide_when_equal</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L452"></a><tt class="py-lineno">452</tt>  <tt class="py-line">    <tt id="link-155" class="py-name"><a title="lxml.html.diff.href_token.hide_when_equal
+lxml.html.diff.token.hide_when_equal" class="py-name" href="#" onclick="return doclink('link-155', 'hide_when_equal', 'link-61');">hide_when_equal</a></tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
 <a name="L453"></a><tt class="py-lineno">453</tt>  <tt class="py-line"> </tt>
-<a name="token.__new__"></a><div id="token.__new__-def"><a name="L454"></a><tt class="py-lineno">454</tt> <a class="py-toggle" href="#" id="token.__new__-toggle" onclick="return toggle('token.__new__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.token-class.html#__new__">__new__</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">post_tags</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="token.__new__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="token.__new__-expanded"><a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line">        <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">_unicode</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name" targets="Method lxml.etree.AncestorsIterator.__new__()=lxml.etree.AncestorsIterator-class.html#__new__,Method lxml.etree.AttributeBasedElementClassLookup.__new__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__new__,Method lxml.etree.CDATA.__new__()=lxml.etree.CDATA-class.html#__new__,Method lxml.etree.CommentBase.__new__()=lxml.etree.CommentBase-class.html#__new__,Method lxml.etree.CustomElementClassLookup.__new__()=lxml.etree.CustomElementClassLookup-class.html#__new__,Method lxml.etree.DTD.__new__()=lxml.etree.DTD-class.html#__new__,Method lxml.etree.DocInfo.__new__()=lxml.etree.DocInfo-class.html#__new__,Method lxml.etree.ETCompatXMLParser.__new__()=lxml.etree.ETCompatXMLParser-class.html#__new__,Method lxml.etree.ETXPath.__new__()=lxml.etree.ETXPath-class.html#__new__,Method lxml.etree.ElementBase.__new__()=lxml.etree.ElementBase-class.html#__new__,Method lxml.etree.ElementChildIterator.__new__()=lxml.etree.ElementChildIterator-class.html#__new__,Method lxml.etree.ElementClassLookup.__new__()=lxml.etree.ElementClassLookup-class.html#__new__,Method lxml.etree.ElementDefaultClassLookup.__new__()=lxml.etree.ElementDefaultClassLookup-class.html#__new__,Method lxml.etree.ElementDepthFirstIterator.__new__()=lxml.etree.ElementDepthFirstIterator-class.html#__new__,Method lxml.etree.ElementNamespaceClassLookup.__new__()=lxml.etree.ElementNamespaceClassLookup-class.html#__new__,Method lxml.etree.ElementTextIterator.__new__()=lxml.etree.ElementTextIterator-class.html#__new__,Method lxml.etree.EntityBase.__new__()=lxml.etree.EntityBase-class.html#__new__,Method lxml.etree.FallbackElementClassLookup.__new__()=lxml.etree.FallbackElementClassLookup-class.html#__new__,Method lxml.etree.HTMLParser.__new__()=lxml.etree.HTMLParser-class.html#__new__,Method lxml.etree.PIBase.__new__()=lxml.etree.PIBase-class.html#__new__,Method lxml.etree.ParserBasedElementClassLookup.__new__()=lxml.etree.ParserBasedElementClassLookup-class.html#__new__,Method lxml.etree.PyErrorLog.__new__()=lxml.etree.PyErrorLog-class.html#__new__,Method lxml.etree.PythonElementClassLookup.__new__()=lxml.etree.PythonElementClassLookup-class.html#__new__,Method lxml.etree.QName.__new__()=lxml.etree.QName-class.html#__new__,Method lxml.etree.RelaxNG.__new__()=lxml.etree.RelaxNG-class.html#__new__,Method lxml.etree.Resolver.__new__()=lxml.etree.Resolver-class.html#__new__,Method lxml.etree.Schematron.__new__()=lxml.etree.Schematron-class.html#__new__,Method lxml.etree.SiblingsIterator.__new__()=lxml.etree.SiblingsIterator-class.html#__new__,Method lxml.etree.TreeBuilder.__new__()=lxml.etree.TreeBuilder-class.html#__new__,Method lxml.etree.XInclude.__new__()=lxml.etree.XInclude-class.html#__new__,Method lxml.etree.XMLParser.__new__()=lxml.etree.XMLParser-class.html#__new__,Method lxml.etree.XMLSchema.__new__()=lxml.etree.XMLSchema-class.html#__new__,Method lxml.etree.XPath.__new__()=lxml.etree.XPath-class.html#__new__,Method lxml.etree.XPathDocumentEvaluator.__new__()=lxml.etree.XPathDocumentEvaluator-class.html#__new__,Method lxml.etree.XPathElementEvaluator.__new__()=lxml.etree.XPathElementEvaluator-class.html#__new__,Method lxml.etree.XSLT.__new__()=lxml.etree.XSLT-class.html#__new__,Method lxml.etree.XSLTAccessControl.__new__()=lxml.etree.XSLTAccessControl-class.html#__new__,Method lxml.etree.XSLTExtension.__new__()=lxml.etree.XSLTExtension-class.html#__new__,Method lxml.etree._Attrib.__new__()=lxml.etree._Attrib-class.html#__new__,Method lxml.etree._BaseErrorLog.__new__()=lxml.etree._BaseErrorLog-class.html#__new__,Method lxml.etree._Comment.__new__()=lxml.etree._Comment-class.html#__new__,Method lxml.etree._Document.__new__()=lxml.etree._Document-class.html#__new__,Method lxml.etree._DomainErrorLog.__new__()=lxml.etree._DomainErrorLog-class.html#__new__,Method lxml.etree._Element.__new__()=lxml.etree._Element-class.html#__new__,Method lxml.etree._ElementIterator.__new__()=lxml.etree._ElementIterator-class.html#__new__,Method lxml.etree._ElementMatchIterator.__new__()=lxml.etree._ElementMatchIterator-class.html#__new__,Method lxml.etree._ElementTagMatcher.__new__()=lxml.etree._ElementTagMatcher-class.html#__new__,Method lxml.etree._ElementTree.__new__()=lxml.etree._ElementTree-class.html#__new__,Method lxml.etree._ElementUnicodeResult.__new__()=lxml.etree._ElementUnicodeResult-class.html#__new__,Method lxml.etree._Entity.__new__()=lxml.etree._Entity-class.html#__new__,Method lxml.etree._ErrorLog.__new__()=lxml.etree._ErrorLog-class.html#__new__,Method lxml.etree._FeedParser.__new__()=lxml.etree._FeedParser-class.html#__new__,Method lxml.etree._IDDict.__new__()=lxml.etree._IDDict-class.html#__new__,Method lxml.etree._ListErrorLog.__new__()=lxml.etree._ListErrorLog-class.html#__new__,Method lxml.etree._LogEntry.__new__()=lxml.etree._LogEntry-class.html#__new__,Method lxml.etree._ProcessingInstruction.__new__()=lxml.etree._ProcessingInstruction-class.html#__new__,Method lxml.etree._RotatingErrorLog.__new__()=lxml.etree._RotatingErrorLog-class.html#__new__,Method lxml.etree._SaxParserTarget.__new__()=lxml.etree._SaxParserTarget-class.html#__new__,Method lxml.etree._Validator.__new__()=lxml.etree._Validator-class.html#__new__,Method lxml.etree._XPathEvaluatorBase.__new__()=lxml.etree._XPathEvaluatorBase-class.html#__new__,Method lxml.etree._XSLTProcessingInstruction.__new__()=lxml.etree._XSLTProcessingInstruction-class.html#__new__,Method lxml.etree._XSLTResultTree.__new__()=lxml.etree._XSLTResultTree-class.html#__new__,Method lxml.etree.iterparse.__new__()=lxml.etree.iterparse-class.html#__new__,Method lxml.etree.iterwalk.__new__()=lxml.etree.iterwalk-class.html#__new__,Method lxml.etree.xmlfile.__new__()=lxml.etree.xmlfile-class.html#__new__,Static Method lxml.html.diff.tag_token.__new__()=lxml.html.diff.tag_token-class.html#__new__,Static Method lxml.html.diff.token.__new__()=lxml.html.diff.token-class.html#__new__,Method lxml.objectify.BoolElement.__new__()=lxml.objectify.BoolElement-class.html#__new__,Method lxml.objectify.ElementMaker.__new__()=lxml.objectify.ElementMaker-class.html#__new__,Method lxml.objectify.FloatElement.__new__()=lxml.objectify.FloatElement-class.html#__new__,Method lxml.objectify.IntElement.__new__()=lxml.objectify.IntElement-class.html#__new__,Method lxml.objectify.LongElement.__new__()=lxml.objectify.LongElement-class.html#__new__,Method lxml.objectify.NoneElement.__new__()=lxml.objectify.NoneElement-class.html#__new__,Method lxml.objectify.NumberElement.__new__()=lxml.objectify.NumberElement-class.html#__new__,Method lxml.objectify.ObjectPath.__new__()=lxml.objectify.ObjectPath-class.html#__new__,Method lxml.objectify.ObjectifiedDataElement.__new__()=lxml.objectify.ObjectifiedDataElement-class.html#__new__,Method lxml.objectify.ObjectifiedElement.__new__()=lxml.objectify.ObjectifiedElement-class.html#__new__,Method lxml.objectify.ObjectifyElementClassLookup.__new__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__new__,Method lxml.objectify.PyType.__new__()=lxml.objectify.PyType-class.html#__new__,Method lxml.objectify.StringElement.__new__()=lxml.objectify.StringElement-class.html#__new__"><a title="lxml.etree.AncestorsIterator.__new__
+<a name="token.__new__"></a><div id="token.__new__-def"><a name="L454"></a><tt class="py-lineno">454</tt> <a class="py-toggle" href="#" id="token.__new__-toggle" onclick="return toggle('token.__new__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.token-class.html#__new__">__new__</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">post_tags</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="token.__new__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="token.__new__-expanded"><a name="L455"></a><tt class="py-lineno">455</tt>  <tt class="py-line">        <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt class="py-name">_unicode</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name" targets="Method lxml.etree.AncestorsIterator.__new__()=lxml.etree.AncestorsIterator-class.html#__new__,Method lxml.etree.AttributeBasedElementClassLookup.__new__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__new__,Method lxml.etree.CDATA.__new__()=lxml.etree.CDATA-class.html#__new__,Method lxml.etree.CommentBase.__new__()=lxml.etree.CommentBase-class.html#__new__,Method lxml.etree.CustomElementClassLookup.__new__()=lxml.etree.CustomElementClassLookup-class.html#__new__,Method lxml.etree.DTD.__new__()=lxml.etree.DTD-class.html#__new__,Method lxml.etree.DocInfo.__new__()=lxml.etree.DocInfo-class.html#__new__,Method lxml.etree.ETCompatXMLParser.__new__()=lxml.etree.ETCompatXMLParser-class.html#__new__,Method lxml.etree.ETXPath.__new__()=lxml.etree.ETXPath-class.html#__new__,Method lxml.etree.ElementBase.__new__()=lxml.etree.ElementBase-class.html#__new__,Method lxml.etree.ElementChildIterator.__new__()=lxml.etree.ElementChildIterator-class.html#__new__,Method lxml.etree.ElementClassLookup.__new__()=lxml.etree.ElementClassLookup-class.html#__new__,Method lxml.etree.ElementDefaultClassLookup.__new__()=lxml.etree.ElementDefaultClassLookup-class.html#__new__,Method lxml.etree.ElementDepthFirstIterator.__new__()=lxml.etree.ElementDepthFirstIterator-class.html#__new__,Method lxml.etree.ElementNamespaceClassLookup.__new__()=lxml.etree.ElementNamespaceClassLookup-class.html#__new__,Method lxml.etree.ElementTextIterator.__new__()=lxml.etree.ElementTextIterator-class.html#__new__,Method lxml.etree.EntityBase.__new__()=lxml.etree.EntityBase-class.html#__new__,Method lxml.etree.FallbackElementClassLookup.__new__()=lxml.etree.FallbackElementClassLookup-class.html#__new__,Method lxml.etree.HTMLParser.__new__()=lxml.etree.HTMLParser-class.html#__new__,Method lxml.etree.PIBase.__new__()=lxml.etree.PIBase-class.html#__new__,Method lxml.etree.ParserBasedElementClassLookup.__new__()=lxml.etree.ParserBasedElementClassLookup-class.html#__new__,Method lxml.etree.PyErrorLog.__new__()=lxml.etree.PyErrorLog-class.html#__new__,Method lxml.etree.PythonElementClassLookup.__new__()=lxml.etree.PythonElementClassLookup-class.html#__new__,Method lxml.etree.QName.__new__()=lxml.etree.QName-class.html#__new__,Method lxml.etree.RelaxNG.__new__()=lxml.etree.RelaxNG-class.html#__new__,Method lxml.etree.Resolver.__new__()=lxml.etree.Resolver-class.html#__new__,Method lxml.etree.Schematron.__new__()=lxml.etree.Schematron-class.html#__new__,Method lxml.etree.SiblingsIterator.__new__()=lxml.etree.SiblingsIterator-class.html#__new__,Method lxml.etree.TreeBuilder.__new__()=lxml.etree.TreeBuilder-class.html#__new__,Method lxml.etree.XInclude.__new__()=lxml.etree.XInclude-class.html#__new__,Method lxml.etree.XMLParser.__new__()=lxml.etree.XMLParser-class.html#__new__,Method lxml.etree.XMLSchema.__new__()=lxml.etree.XMLSchema-class.html#__new__,Method lxml.etree.XPath.__new__()=lxml.etree.XPath-class.html#__new__,Method lxml.etree.XPathDocumentEvaluator.__new__()=lxml.etree.XPathDocumentEvaluator-class.html#__new__,Method lxml.etree.XPathElementEvaluator.__new__()=lxml.etree.XPathElementEvaluator-class.html#__new__,Method lxml.etree.XSLT.__new__()=lxml.etree.XSLT-class.html#__new__,Method lxml.etree.XSLTAccessControl.__new__()=lxml.etree.XSLTAccessControl-class.html#__new__,Method lxml.etree.XSLTExtension.__new__()=lxml.etree.XSLTExtension-class.html#__new__,Method lxml.etree._Attrib.__new__()=lxml.etree._Attrib-class.html#__new__,Method lxml.etree._BaseErrorLog.__new__()=lxml.etree._BaseErrorLog-class.html#__new__,Method lxml.etree._Comment.__new__()=lxml.etree._Comment-class.html#__new__,Method lxml.etree._Document.__new__()=lxml.etree._Document-class.html#__new__,Method lxml.etree._DomainErrorLog.__new__()=lxml.etree._DomainErrorLog-class.html#__new__,Method lxml.etree._Element.__new__()=lxml.etree._Element-class.html#__new__,Method lxml.etree._ElementIterator.__new__()=lxml.etree._ElementIterator-class.html#__new__,Method lxml.etree._ElementMatchIterator.__new__()=lxml.etree._ElementMatchIterator-class.html#__new__,Method lxml.etree._ElementTagMatcher.__new__()=lxml.etree._ElementTagMatcher-class.html#__new__,Method lxml.etree._ElementTree.__new__()=lxml.etree._ElementTree-class.html#__new__,Method lxml.etree._ElementUnicodeResult.__new__()=lxml.etree._ElementUnicodeResult-class.html#__new__,Method lxml.etree._Entity.__new__()=lxml.etree._Entity-class.html#__new__,Method lxml.etree._ErrorLog.__new__()=lxml.etree._ErrorLog-class.html#__new__,Method lxml.etree._FeedParser.__new__()=lxml.etree._FeedParser-class.html#__new__,Method lxml.etree._IDDict.__new__()=lxml.etree._IDDict-class.html#__new__,Method lxml.etree._ListErrorLog.__new__()=lxml.etree._ListErrorLog-class.html#__new__,Method lxml.etree._LogEntry.__new__()=lxml.etree._LogEntry-class.html#__new__,Method lxml.etree._ProcessingInstruction.__new__()=lxml.etree._ProcessingInstruction-class.html#__new__,Method lxml.etree._RotatingErrorLog.__new__()=lxml.etree._RotatingErrorLog-class.html#__new__,Method lxml.etree._SaxParserTarget.__new__()=lxml.etree._SaxParserTarget-class.html#__new__,Method lxml.etree._Validator.__new__()=lxml.etree._Validator-class.html#__new__,Method lxml.etree._XPathEvaluatorBase.__new__()=lxml.etree._XPathEvaluatorBase-class.html#__new__,Method lxml.etree._XSLTProcessingInstruction.__new__()=lxml.etree._XSLTProcessingInstruction-class.html#__new__,Method lxml.etree._XSLTResultTree.__new__()=lxml.etree._XSLTResultTree-class.html#__new__,Method lxml.etree.iterparse.__new__()=lxml.etree.iterparse-class.html#__new__,Method lxml.etree.iterwalk.__new__()=lxml.etree.iterwalk-class.html#__new__,Method lxml.etree.xmlfile.__new__()=lxml.etree.xmlfile-class.html#__new__,Static Method lxml.html.diff.tag_token.__new__()=lxml.html.diff.tag_token-class.html#__new__,Static Method lxml.html.diff.token.__new__()=lxml.html.diff.token-class.html#__new__,Method lxml.objectify.BoolElement.__new__()=lxml.objectify.BoolElement-class.html#__new__,Method lxml.objectify.ElementMaker.__new__()=lxml.objectify.ElementMaker-class.html#__new__,Method lxml.objectify.FloatElement.__new__()=lxml.objectify.FloatElement-class.html#__new__,Method lxml.objectify.IntElement.__new__()=lxml.objectify.IntElement-class.html#__new__,Method lxml.objectify.LongElement.__new__()=lxml.objectify.LongElement-class.html#__new__,Method lxml.objectify.NoneElement.__new__()=lxml.objectify.NoneElement-class.html#__new__,Method lxml.objectify.NumberElement.__new__()=lxml.objectify.NumberElement-class.html#__new__,Method lxml.objectify.ObjectPath.__new__()=lxml.objectify.ObjectPath-class.html#__new__,Method lxml.objectify.ObjectifiedDataElement.__new__()=lxml.objectify.ObjectifiedDataElement-class.html#__new__,Method lxml.objectify.ObjectifiedElement.__new__()=lxml.objectify.ObjectifiedElement-class.html#__new__,Method lxml.objectify.ObjectifyElementClassLookup.__new__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__new__,Method lxml.objectify.PyType.__new__()=lxml.objectify.PyType-class.html#__new__,Method lxml.objectify.StringElement.__new__()=lxml.objectify.StringElement-class.html#__new__"><a title="lxml.etree.AncestorsIterator.__new__
 lxml.etree.AttributeBasedElementClassLookup.__new__
 lxml.etree.CDATA.__new__
 lxml.etree.CommentBase.__new__
@@ -772,11 +772,11 @@ lxml.objectify.ObjectifiedDataElement.__new__
 lxml.objectify.ObjectifiedElement.__new__
 lxml.objectify.ObjectifyElementClassLookup.__new__
 lxml.objectify.PyType.__new__
-lxml.objectify.StringElement.__new__" class="py-name" href="#" onclick="return doclink('link-154', '__new__', 'link-154');">__new__</a></tt><tt class="py-op">(</tt><tt class="py-name">cls</tt><tt class="py-op">,</tt> <tt id="link-155" class="py-name"><a title="lxml.etree.QName.text
+lxml.objectify.StringElement.__new__" class="py-name" href="#" onclick="return doclink('link-156', '__new__', 'link-156');">__new__</a></tt><tt class="py-op">(</tt><tt class="py-name">cls</tt><tt class="py-op">,</tt> <tt id="link-157" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-155', 'text', 'link-10');">text</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-157', 'text', 'link-10');">text</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L456"></a><tt class="py-lineno">456</tt>  <tt class="py-line"> </tt>
 <a name="L457"></a><tt class="py-lineno">457</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">pre_tags</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 <a name="L458"></a><tt class="py-lineno">458</tt>  <tt class="py-line">            <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">pre_tags</tt> <tt class="py-op">=</tt> <tt class="py-name">pre_tags</tt> </tt>
@@ -793,7 +793,7 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 <a name="L469"></a><tt class="py-lineno">469</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">obj</tt> </tt>
 </div><a name="L470"></a><tt class="py-lineno">470</tt>  <tt class="py-line"> </tt>
 <a name="token.__repr__"></a><div id="token.__repr__-def"><a name="L471"></a><tt class="py-lineno">471</tt> <a class="py-toggle" href="#" id="token.__repr__-toggle" onclick="return toggle('token.__repr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.token-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="token.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="token.__repr__-expanded"><a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'token(%s, %r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">_unicode</tt><tt class="py-op">.</tt><tt id="link-156" class="py-name" targets="Method lxml.cssselect.CSSSelector.__repr__()=lxml.cssselect.CSSSelector-class.html#__repr__,Method lxml.etree.XPath.__repr__()=lxml.etree.XPath-class.html#__repr__,Method lxml.etree.XSLTAccessControl.__repr__()=lxml.etree.XSLTAccessControl-class.html#__repr__,Method lxml.etree._Attrib.__repr__()=lxml.etree._Attrib-class.html#__repr__,Method lxml.etree._BaseErrorLog.__repr__()=lxml.etree._BaseErrorLog-class.html#__repr__,Method lxml.etree._Comment.__repr__()=lxml.etree._Comment-class.html#__repr__,Method lxml.etree._Element.__repr__()=lxml.etree._Element-class.html#__repr__,Method lxml.etree._Entity.__repr__()=lxml.etree._Entity-class.html#__repr__,Method lxml.etree._IDDict.__repr__()=lxml.etree._IDDict-class.html#__repr__,Method lxml.etree._ListErrorLog.__repr__()=lxml.etree._ListErrorLog-class.html#__repr__,Method lxml.etree._LogEntry.__repr__()=lxml.etree._LogEntry-class.html#__repr__,Method lxml.etree._ProcessingInstruction.__repr__()=lxml.etree._ProcessingInstruction-class.html#__repr__,Method lxml.html.CheckboxGroup.__repr__()=lxml.html.CheckboxGroup-class.html#__repr__,Method lxml.html.CheckboxValues.__repr__()=lxml.html.CheckboxValues-class.html#__repr__,Method lxml.html.FieldsDict.__repr__()=lxml.html.FieldsDict-class.html#__repr__,Method lxml.html.InputGetter.__repr__()=lxml.html.InputGetter-class.html#__repr__,Method lxml.html.InputMixin.__repr__()=lxml.html.InputMixin-class.html#__repr__,Method lxml.html.MultipleSelectOptions.__repr__()=lxml.html.MultipleSelectOptions-class.html#__repr__,Method lxml.html.RadioGroup.__repr__()=lxml.html.RadioGroup-class.html#__repr__,Method lxml.html.diff.tag_token.__repr__()=lxml.html.diff.tag_token-class.html#__repr__,Method lxml.html.diff.token.__repr__()=lxml.html.diff.token-class.html#__repr__,Method lxml.objectify.BoolElement.__repr__()=lxml.objectify.BoolElement-class.html#__repr__,Method lxml.objectify.NoneElement.__repr__()=lxml.objectify.NoneElement-class.html#__repr__,Method lxml.objectify.NumberElement.__repr__()=lxml.objectify.NumberElement-class.html#__repr__,Method lxml.objectify.ObjectifiedDataElement.__repr__()=lxml.objectify.ObjectifiedDataElement-class.html#__repr__,Method lxml.objectify.PyType.__repr__()=lxml.objectify.PyType-class.html#__repr__,Method lxml.objectify.StringElement.__repr__()=lxml.objectify.StringElement-class.html#__repr__"><a title="lxml.cssselect.CSSSelector.__repr__
+</div><div id="token.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="token.__repr__-expanded"><a name="L472"></a><tt class="py-lineno">472</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'token(%s, %r, %r, %r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">_unicode</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name" targets="Method lxml.cssselect.CSSSelector.__repr__()=lxml.cssselect.CSSSelector-class.html#__repr__,Method lxml.etree.XPath.__repr__()=lxml.etree.XPath-class.html#__repr__,Method lxml.etree.XSLTAccessControl.__repr__()=lxml.etree.XSLTAccessControl-class.html#__repr__,Method lxml.etree._Attrib.__repr__()=lxml.etree._Attrib-class.html#__repr__,Method lxml.etree._BaseErrorLog.__repr__()=lxml.etree._BaseErrorLog-class.html#__repr__,Method lxml.etree._Comment.__repr__()=lxml.etree._Comment-class.html#__repr__,Method lxml.etree._Element.__repr__()=lxml.etree._Element-class.html#__repr__,Method lxml.etree._Entity.__repr__()=lxml.etree._Entity-class.html#__repr__,Method lxml.etree._IDDict.__repr__()=lxml.etree._IDDict-class.html#__repr__,Method lxml.etree._ListErrorLog.__repr__()=lxml.etree._ListErrorLog-class.html#__repr__,Method lxml.etree._LogEntry.__repr__()=lxml.etree._LogEntry-class.html#__repr__,Method lxml.etree._ProcessingInstruction.__repr__()=lxml.etree._ProcessingInstruction-class.html#__repr__,Method lxml.html.CheckboxGroup.__repr__()=lxml.html.CheckboxGroup-class.html#__repr__,Method lxml.html.CheckboxValues.__repr__()=lxml.html.CheckboxValues-class.html#__repr__,Method lxml.html.FieldsDict.__repr__()=lxml.html.FieldsDict-class.html#__repr__,Method lxml.html.InputGetter.__repr__()=lxml.html.InputGetter-class.html#__repr__,Method lxml.html.InputMixin.__repr__()=lxml.html.InputMixin-class.html#__repr__,Method lxml.html.MultipleSelectOptions.__repr__()=lxml.html.MultipleSelectOptions-class.html#__repr__,Method lxml.html.RadioGroup.__repr__()=lxml.html.RadioGroup-class.html#__repr__,Method lxml.html.diff.tag_token.__repr__()=lxml.html.diff.tag_token-class.html#__repr__,Method lxml.html.diff.token.__repr__()=lxml.html.diff.token-class.html#__repr__,Method lxml.objectify.BoolElement.__repr__()=lxml.objectify.BoolElement-class.html#__repr__,Method lxml.objectify.NoneElement.__repr__()=lxml.objectify.NoneElement-class.html#__repr__,Method lxml.objectify.NumberElement.__repr__()=lxml.objectify.NumberElement-class.html#__repr__,Method lxml.objectify.ObjectifiedDataElement.__repr__()=lxml.objectify.ObjectifiedDataElement-class.html#__repr__,Method lxml.objectify.PyType.__repr__()=lxml.objectify.PyType-class.html#__repr__,Method lxml.objectify.StringElement.__repr__()=lxml.objectify.StringElement-class.html#__repr__"><a title="lxml.cssselect.CSSSelector.__repr__
 lxml.etree.XPath.__repr__
 lxml.etree.XSLTAccessControl.__repr__
 lxml.etree._Attrib.__repr__
@@ -819,20 +819,21 @@ lxml.objectify.NoneElement.__repr__
 lxml.objectify.NumberElement.__repr__
 lxml.objectify.ObjectifiedDataElement.__repr__
 lxml.objectify.PyType.__repr__
-lxml.objectify.StringElement.__repr__" class="py-name" href="#" onclick="return doclink('link-156', '__repr__', 'link-156');">__repr__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pre_tags</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line"> </tt>
-<a name="token.html"></a><div id="token.html-def"><a name="L474"></a><tt class="py-lineno">474</tt> <a class="py-toggle" href="#" id="token.html-toggle" onclick="return toggle('token.html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.token-class.html#html">html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="token.html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="token.html-expanded"><a name="L475"></a><tt class="py-lineno">475</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">_unicode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line"> </tt>
-<a name="tag_token"></a><div id="tag_token-def"><a name="L477"></a><tt class="py-lineno">477</tt> <a class="py-toggle" href="#" id="tag_token-toggle" onclick="return toggle('tag_token');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.diff.tag_token-class.html">tag_token</a><tt class="py-op">(</tt><tt class="py-base-class">token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="tag_token-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="tag_token-expanded"><a name="L478"></a><tt class="py-lineno">478</tt>  <tt class="py-line"> </tt>
-<a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line">    <tt class="py-docstring">""" Represents a token that is actually a tag.  Currently this is just</tt> </tt>
-<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line"><tt class="py-docstring">    the &lt;img&gt; tag, which takes up visible space just like a word but</tt> </tt>
-<a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line"><tt class="py-docstring">    is only represented in a document by a tag.  """</tt> </tt>
-<a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line"> </tt>
-<a name="tag_token.__new__"></a><div id="tag_token.__new__-def"><a name="L483"></a><tt class="py-lineno">483</tt> <a class="py-toggle" href="#" id="tag_token.__new__-toggle" onclick="return toggle('tag_token.__new__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.tag_token-class.html#__new__">__new__</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">html_repr</tt><tt class="py-op">,</tt> <tt class="py-param">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>  </tt>
-<a name="L484"></a><tt class="py-lineno">484</tt>  <tt class="py-line">                <tt class="py-param">post_tags</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="tag_token.__new__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tag_token.__new__-expanded"><a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line">        <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-157" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-157', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="lxml.etree.AncestorsIterator.__new__
+lxml.objectify.StringElement.__repr__" class="py-name" href="#" onclick="return doclink('link-158', '__repr__', 'link-158');">__repr__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pre_tags</tt><tt class="py-op">,</tt> </tt>
+<a name="L473"></a><tt class="py-lineno">473</tt>  <tt class="py-line">                                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L474"></a><tt class="py-lineno">474</tt>  <tt class="py-line"> </tt>
+<a name="token.html"></a><div id="token.html-def"><a name="L475"></a><tt class="py-lineno">475</tt> <a class="py-toggle" href="#" id="token.html-toggle" onclick="return toggle('token.html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.token-class.html#html">html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="token.html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="token.html-expanded"><a name="L476"></a><tt class="py-lineno">476</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">_unicode</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L477"></a><tt class="py-lineno">477</tt>  <tt class="py-line"> </tt>
+<a name="tag_token"></a><div id="tag_token-def"><a name="L478"></a><tt class="py-lineno">478</tt> <a class="py-toggle" href="#" id="tag_token-toggle" onclick="return toggle('tag_token');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.diff.tag_token-class.html">tag_token</a><tt class="py-op">(</tt><tt class="py-base-class">token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tag_token-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="tag_token-expanded"><a name="L479"></a><tt class="py-lineno">479</tt>  <tt class="py-line"> </tt>
+<a name="L480"></a><tt class="py-lineno">480</tt>  <tt class="py-line">    <tt class="py-docstring">""" Represents a token that is actually a tag.  Currently this is just</tt> </tt>
+<a name="L481"></a><tt class="py-lineno">481</tt>  <tt class="py-line"><tt class="py-docstring">    the &lt;img&gt; tag, which takes up visible space just like a word but</tt> </tt>
+<a name="L482"></a><tt class="py-lineno">482</tt>  <tt class="py-line"><tt class="py-docstring">    is only represented in a document by a tag.  """</tt> </tt>
+<a name="L483"></a><tt class="py-lineno">483</tt>  <tt class="py-line"> </tt>
+<a name="tag_token.__new__"></a><div id="tag_token.__new__-def"><a name="L484"></a><tt class="py-lineno">484</tt> <a class="py-toggle" href="#" id="tag_token.__new__-toggle" onclick="return toggle('tag_token.__new__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.tag_token-class.html#__new__">__new__</a><tt class="py-op">(</tt><tt class="py-param">cls</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">,</tt> <tt class="py-param">html_repr</tt><tt class="py-op">,</tt> <tt class="py-param">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt>  </tt>
+<a name="L485"></a><tt class="py-lineno">485</tt>  <tt class="py-line">                <tt class="py-param">post_tags</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tag_token.__new__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tag_token.__new__-expanded"><a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line">        <tt class="py-name">obj</tt> <tt class="py-op">=</tt> <tt id="link-159" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-159', 'token', 'link-23');">token</a></tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="lxml.etree.AncestorsIterator.__new__
 lxml.etree.AttributeBasedElementClassLookup.__new__
 lxml.etree.CDATA.__new__
 lxml.etree.CommentBase.__new__
@@ -911,797 +912,783 @@ lxml.objectify.ObjectifiedDataElement.__new__
 lxml.objectify.ObjectifiedElement.__new__
 lxml.objectify.ObjectifyElementClassLookup.__new__
 lxml.objectify.PyType.__new__
-lxml.objectify.StringElement.__new__" class="py-name" href="#" onclick="return doclink('link-158', '__new__', 'link-154');">__new__</a></tt><tt class="py-op">(</tt><tt class="py-name">cls</tt><tt class="py-op">,</tt> <tt class="py-string">"%s: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-159" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-159', 'type', 'link-22');">type</a></tt><tt class="py-op">,</tt> <tt id="link-160" class="py-name" targets="Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-160', 'data', 'link-160');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  </tt>
-<a name="L486"></a><tt class="py-lineno">486</tt>  <tt class="py-line">                            <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">pre_tags</tt><tt class="py-op">,</tt>  </tt>
-<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line">                            <tt class="py-name">post_tags</tt><tt class="py-op">=</tt><tt class="py-name">post_tags</tt><tt class="py-op">,</tt>  </tt>
-<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line">                            <tt class="py-name">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
-<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line">        <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.StringElement.__new__" class="py-name" href="#" onclick="return doclink('link-160', '__new__', 'link-156');">__new__</a></tt><tt class="py-op">(</tt><tt class="py-name">cls</tt><tt class="py-op">,</tt> <tt class="py-string">"%s: %s"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-161" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-161', 'type', 'link-22');">type</a></tt><tt class="py-op">,</tt> <tt id="link-162" class="py-name" targets="Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-162', 'data', 'link-162');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt>  </tt>
+<a name="L487"></a><tt class="py-lineno">487</tt>  <tt class="py-line">                            <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">pre_tags</tt><tt class="py-op">,</tt>  </tt>
+<a name="L488"></a><tt class="py-lineno">488</tt>  <tt class="py-line">                            <tt class="py-name">post_tags</tt><tt class="py-op">=</tt><tt class="py-name">post_tags</tt><tt class="py-op">,</tt>  </tt>
+<a name="L489"></a><tt class="py-lineno">489</tt>  <tt class="py-line">                            <tt class="py-name">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
+<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line">        <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-161', 'tag', 'link-98');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-162" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-163', 'tag', 'link-100');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-164" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-162', 'tag', 'link-98');">tag</a></tt> </tt>
-<a name="L490"></a><tt class="py-lineno">490</tt>  <tt class="py-line">        <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-163', 'data', 'link-160');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-164" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-164', 'data', 'link-160');">data</a></tt> </tt>
-<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line">        <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">html_repr</tt> <tt class="py-op">=</tt> <tt class="py-name">html_repr</tt> </tt>
-<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">obj</tt> </tt>
-</div><a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line"> </tt>
-<a name="tag_token.__repr__"></a><div id="tag_token.__repr__-def"><a name="L494"></a><tt class="py-lineno">494</tt> <a class="py-toggle" href="#" id="tag_token.__repr__-toggle" onclick="return toggle('tag_token.__repr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.tag_token-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="tag_token.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tag_token.__repr__-expanded"><a name="L495"></a><tt class="py-lineno">495</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'tag_token(%s, %s, html_repr=%s, post_tags=%r, pre_tags=%r, trailing_whitespace=%s)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-164', 'tag', 'link-100');">tag</a></tt> </tt>
+<a name="L491"></a><tt class="py-lineno">491</tt>  <tt class="py-line">        <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt id="link-165" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-165', 'data', 'link-162');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-166" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-166', 'data', 'link-162');">data</a></tt> </tt>
+<a name="L492"></a><tt class="py-lineno">492</tt>  <tt class="py-line">        <tt class="py-name">obj</tt><tt class="py-op">.</tt><tt class="py-name">html_repr</tt> <tt class="py-op">=</tt> <tt class="py-name">html_repr</tt> </tt>
+<a name="L493"></a><tt class="py-lineno">493</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">obj</tt> </tt>
+</div><a name="L494"></a><tt class="py-lineno">494</tt>  <tt class="py-line"> </tt>
+<a name="tag_token.__repr__"></a><div id="tag_token.__repr__-def"><a name="L495"></a><tt class="py-lineno">495</tt> <a class="py-toggle" href="#" id="tag_token.__repr__-toggle" onclick="return toggle('tag_token.__repr__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.tag_token-class.html#__repr__">__repr__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tag_token.__repr__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tag_token.__repr__-expanded"><a name="L496"></a><tt class="py-lineno">496</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">'tag_token(%s, %s, html_repr=%s, post_tags=%r, pre_tags=%r, trailing_whitespace=%r)'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-165', 'tag', 'link-98');">tag</a></tt><tt class="py-op">,</tt>  </tt>
-<a name="L497"></a><tt class="py-lineno">497</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-166', 'data', 'link-160');">data</a></tt><tt class="py-op">,</tt>  </tt>
-<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">html_repr</tt><tt class="py-op">,</tt>  </tt>
-<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pre_tags</tt><tt class="py-op">,</tt>  </tt>
-<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">,</tt>  </tt>
-<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
-</div><a name="tag_token.html"></a><div id="tag_token.html-def"><a name="L502"></a><tt class="py-lineno">502</tt> <a class="py-toggle" href="#" id="tag_token.html-toggle" onclick="return toggle('tag_token.html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.tag_token-class.html#html">html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="tag_token.html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tag_token.html-expanded"><a name="L503"></a><tt class="py-lineno">503</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">html_repr</tt> </tt>
-</div></div><a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line"> </tt>
-<a name="href_token"></a><div id="href_token-def"><a name="L505"></a><tt class="py-lineno">505</tt> <a class="py-toggle" href="#" id="href_token-toggle" onclick="return toggle('href_token');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.diff.href_token-class.html">href_token</a><tt class="py-op">(</tt><tt class="py-base-class">token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="href_token-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="href_token-expanded"><a name="L506"></a><tt class="py-lineno">506</tt>  <tt class="py-line"> </tt>
-<a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line">    <tt class="py-docstring">""" Represents the href in an anchor tag.  Unlike other words, we only</tt> </tt>
-<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line"><tt class="py-docstring">    show the href when it changes.  """</tt> </tt>
-<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line"> </tt>
-<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line">    <tt id="link-167" class="py-name"><a title="lxml.html.diff.href_token.hide_when_equal
-lxml.html.diff.token.hide_when_equal" class="py-name" href="#" onclick="return doclink('link-167', 'hide_when_equal', 'link-60');">hide_when_equal</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line"> </tt>
-<a name="href_token.html"></a><div id="href_token.html-def"><a name="L512"></a><tt class="py-lineno">512</tt> <a class="py-toggle" href="#" id="href_token.html-toggle" onclick="return toggle('href_token.html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.href_token-class.html#html">html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="href_token.html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="href_token.html-expanded"><a name="L513"></a><tt class="py-lineno">513</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">' Link: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt> </tt>
-</div></div><a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line"> </tt>
-<a name="tokenize"></a><div id="tokenize-def"><a name="L515"></a><tt class="py-lineno">515</tt> <a class="py-toggle" href="#" id="tokenize-toggle" onclick="return toggle('tokenize');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#tokenize">tokenize</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">include_hrefs</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="tokenize-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="tokenize-expanded"><a name="L516"></a><tt class="py-lineno">516</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line"><tt class="py-docstring">    Parse the given HTML and returns token objects (words with attached tags).</tt> </tt>
-<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line"><tt class="py-docstring">    This parses only the content of a page; anything in the head is</tt> </tt>
-<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line"><tt class="py-docstring">    ignored, and the &lt;head&gt; and &lt;body&gt; elements are themselves</tt> </tt>
-<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line"><tt class="py-docstring">    optional.  The content is then parsed by lxml, which ensures the</tt> </tt>
-<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line"><tt class="py-docstring">    validity of the resulting parsed document (though lxml may make</tt> </tt>
-<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line"><tt class="py-docstring">    incorrect guesses when the markup is particular bad).</tt> </tt>
-<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;ins&gt; and &lt;del&gt; tags are also eliminated from the document, as</tt> </tt>
-<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line"><tt class="py-docstring">    that gets confusing.</tt> </tt>
-<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line"><tt class="py-docstring">    If include_hrefs is true, then the href attribute of &lt;a&gt; tags is</tt> </tt>
-<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line"><tt class="py-docstring">    included as a special kind of diffable token."""</tt> </tt>
-<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-168" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-167', 'tag', 'link-100');">tag</a></tt><tt class="py-op">,</tt>  </tt>
+<a name="L498"></a><tt class="py-lineno">498</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-168" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-168', 'data', 'link-162');">data</a></tt><tt class="py-op">,</tt>  </tt>
+<a name="L499"></a><tt class="py-lineno">499</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">html_repr</tt><tt class="py-op">,</tt>  </tt>
+<a name="L500"></a><tt class="py-lineno">500</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">pre_tags</tt><tt class="py-op">,</tt>  </tt>
+<a name="L501"></a><tt class="py-lineno">501</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">,</tt>  </tt>
+<a name="L502"></a><tt class="py-lineno">502</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
+</div><a name="tag_token.html"></a><div id="tag_token.html-def"><a name="L503"></a><tt class="py-lineno">503</tt> <a class="py-toggle" href="#" id="tag_token.html-toggle" onclick="return toggle('tag_token.html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.tag_token-class.html#html">html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tag_token.html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="tag_token.html-expanded"><a name="L504"></a><tt class="py-lineno">504</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">html_repr</tt> </tt>
+</div></div><a name="L505"></a><tt class="py-lineno">505</tt>  <tt class="py-line"> </tt>
+<a name="href_token"></a><div id="href_token-def"><a name="L506"></a><tt class="py-lineno">506</tt> <a class="py-toggle" href="#" id="href_token-toggle" onclick="return toggle('href_token');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.diff.href_token-class.html">href_token</a><tt class="py-op">(</tt><tt class="py-base-class">token</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="href_token-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="href_token-expanded"><a name="L507"></a><tt class="py-lineno">507</tt>  <tt class="py-line"> </tt>
+<a name="L508"></a><tt class="py-lineno">508</tt>  <tt class="py-line">    <tt class="py-docstring">""" Represents the href in an anchor tag.  Unlike other words, we only</tt> </tt>
+<a name="L509"></a><tt class="py-lineno">509</tt>  <tt class="py-line"><tt class="py-docstring">    show the href when it changes.  """</tt> </tt>
+<a name="L510"></a><tt class="py-lineno">510</tt>  <tt class="py-line"> </tt>
+<a name="L511"></a><tt class="py-lineno">511</tt>  <tt class="py-line">    <tt id="link-169" class="py-name"><a title="lxml.html.diff.href_token.hide_when_equal
+lxml.html.diff.token.hide_when_equal" class="py-name" href="#" onclick="return doclink('link-169', 'hide_when_equal', 'link-61');">hide_when_equal</a></tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L512"></a><tt class="py-lineno">512</tt>  <tt class="py-line"> </tt>
+<a name="href_token.html"></a><div id="href_token.html-def"><a name="L513"></a><tt class="py-lineno">513</tt> <a class="py-toggle" href="#" id="href_token.html-toggle" onclick="return toggle('href_token.html');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.href_token-class.html#html">html</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="href_token.html-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="href_token.html-expanded"><a name="L514"></a><tt class="py-lineno">514</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-string">' Link: %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt> </tt>
+</div></div><a name="L515"></a><tt class="py-lineno">515</tt>  <tt class="py-line"> </tt>
+<a name="tokenize"></a><div id="tokenize-def"><a name="L516"></a><tt class="py-lineno">516</tt> <a class="py-toggle" href="#" id="tokenize-toggle" onclick="return toggle('tokenize');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#tokenize">tokenize</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">include_hrefs</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="tokenize-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="tokenize-expanded"><a name="L517"></a><tt class="py-lineno">517</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L518"></a><tt class="py-lineno">518</tt>  <tt class="py-line"><tt class="py-docstring">    Parse the given HTML and returns token objects (words with attached tags).</tt> </tt>
+<a name="L519"></a><tt class="py-lineno">519</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L520"></a><tt class="py-lineno">520</tt>  <tt class="py-line"><tt class="py-docstring">    This parses only the content of a page; anything in the head is</tt> </tt>
+<a name="L521"></a><tt class="py-lineno">521</tt>  <tt class="py-line"><tt class="py-docstring">    ignored, and the &lt;head&gt; and &lt;body&gt; elements are themselves</tt> </tt>
+<a name="L522"></a><tt class="py-lineno">522</tt>  <tt class="py-line"><tt class="py-docstring">    optional.  The content is then parsed by lxml, which ensures the</tt> </tt>
+<a name="L523"></a><tt class="py-lineno">523</tt>  <tt class="py-line"><tt class="py-docstring">    validity of the resulting parsed document (though lxml may make</tt> </tt>
+<a name="L524"></a><tt class="py-lineno">524</tt>  <tt class="py-line"><tt class="py-docstring">    incorrect guesses when the markup is particular bad).</tt> </tt>
+<a name="L525"></a><tt class="py-lineno">525</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L526"></a><tt class="py-lineno">526</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;ins&gt; and &lt;del&gt; tags are also eliminated from the document, as</tt> </tt>
+<a name="L527"></a><tt class="py-lineno">527</tt>  <tt class="py-line"><tt class="py-docstring">    that gets confusing.</tt> </tt>
+<a name="L528"></a><tt class="py-lineno">528</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L529"></a><tt class="py-lineno">529</tt>  <tt class="py-line"><tt class="py-docstring">    If include_hrefs is true, then the href attribute of &lt;a&gt; tags is</tt> </tt>
+<a name="L530"></a><tt class="py-lineno">530</tt>  <tt class="py-line"><tt class="py-docstring">    included as a special kind of diffable token."""</tt> </tt>
+<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-170" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-168', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-169" class="py-name" targets="Function lxml.etree.iselement()=lxml.etree-module.html#iselement"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-169', 'iselement', 'link-169');">iselement</a></tt><tt class="py-op">(</tt><tt id="link-170" class="py-name"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-170', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-171" class="py-name" targets="Function lxml.etree.iselement()=lxml.etree-module.html#iselement"><a title="lxml.etree.iselement" class="py-name" href="#" onclick="return doclink('link-171', 'iselement', 'link-171');">iselement</a></tt><tt class="py-op">(</tt><tt id="link-172" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-170', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L531"></a><tt class="py-lineno">531</tt>  <tt class="py-line">        <tt class="py-name">body_el</tt> <tt class="py-op">=</tt> <tt id="link-171" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-172', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">        <tt class="py-name">body_el</tt> <tt class="py-op">=</tt> <tt id="link-173" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-171', 'html', 'link-3');">html</a></tt> </tt>
-<a name="L532"></a><tt class="py-lineno">532</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">        <tt class="py-name">body_el</tt> <tt class="py-op">=</tt> <tt id="link-172" class="py-name" targets="Function lxml.html.diff.parse_html()=lxml.html.diff-module.html#parse_html"><a title="lxml.html.diff.parse_html" class="py-name" href="#" onclick="return doclink('link-172', 'parse_html', 'link-172');">parse_html</a></tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-173', 'html', 'link-3');">html</a></tt> </tt>
+<a name="L533"></a><tt class="py-lineno">533</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">        <tt class="py-name">body_el</tt> <tt class="py-op">=</tt> <tt id="link-174" class="py-name" targets="Function lxml.html.diff.parse_html()=lxml.html.diff-module.html#parse_html"><a title="lxml.html.diff.parse_html" class="py-name" href="#" onclick="return doclink('link-174', 'parse_html', 'link-174');">parse_html</a></tt><tt class="py-op">(</tt><tt id="link-175" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-173', 'html', 'link-3');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">cleanup</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L534"></a><tt class="py-lineno">534</tt>  <tt class="py-line">    <tt class="py-comment"># Then we split the document into text chunks for each tag, word, and end tag:</tt> </tt>
-<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">    <tt class="py-name">chunks</tt> <tt class="py-op">=</tt> <tt id="link-174" class="py-name" targets="Function lxml.html.diff.flatten_el()=lxml.html.diff-module.html#flatten_el"><a title="lxml.html.diff.flatten_el" class="py-name" href="#" onclick="return doclink('link-174', 'flatten_el', 'link-174');">flatten_el</a></tt><tt class="py-op">(</tt><tt class="py-name">body_el</tt><tt class="py-op">,</tt> <tt class="py-name">skip_tag</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">include_hrefs</tt><tt class="py-op">=</tt><tt class="py-name">include_hrefs</tt><tt class="py-op">)</tt> </tt>
-<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line">    <tt class="py-comment"># Finally re-joining them into token objects:</tt> </tt>
-<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-175" class="py-name" targets="Function lxml.html.diff.fixup_chunks()=lxml.html.diff-module.html#fixup_chunks"><a title="lxml.html.diff.fixup_chunks" class="py-name" href="#" onclick="return doclink('link-175', 'fixup_chunks', 'link-175');">fixup_chunks</a></tt><tt class="py-op">(</tt><tt class="py-name">chunks</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line"> </tt>
-<a name="parse_html"></a><div id="parse_html-def"><a name="L539"></a><tt class="py-lineno">539</tt> <a class="py-toggle" href="#" id="parse_html-toggle" onclick="return toggle('parse_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#parse_html">parse_html</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">cleanup</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="parse_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse_html-expanded"><a name="L540"></a><tt class="py-lineno">540</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line"><tt class="py-docstring">    Parses an HTML fragment, returning an lxml element.  Note that the HTML will be</tt> </tt>
-<a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line"><tt class="py-docstring">    wrapped in a &lt;div&gt; tag that was not in the original document.</tt> </tt>
-<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line"><tt class="py-docstring">    If cleanup is true, make sure there's no &lt;head&gt; or &lt;body&gt;, and get</tt> </tt>
-<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line"><tt class="py-docstring">    rid of any &lt;ins&gt; and &lt;del&gt; tags.</tt> </tt>
-<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">cleanup</tt><tt class="py-op">:</tt> </tt>
-<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line">        <tt class="py-comment"># This removes any extra markup or structure like &lt;head&gt;:</tt> </tt>
-<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line">        <tt id="link-176" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-175', 'html', 'link-3');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">cleanup</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L535"></a><tt class="py-lineno">535</tt>  <tt class="py-line">    <tt class="py-comment"># Then we split the document into text chunks for each tag, word, and end tag:</tt> </tt>
+<a name="L536"></a><tt class="py-lineno">536</tt>  <tt class="py-line">    <tt class="py-name">chunks</tt> <tt class="py-op">=</tt> <tt id="link-176" class="py-name" targets="Function lxml.html.diff.flatten_el()=lxml.html.diff-module.html#flatten_el"><a title="lxml.html.diff.flatten_el" class="py-name" href="#" onclick="return doclink('link-176', 'flatten_el', 'link-176');">flatten_el</a></tt><tt class="py-op">(</tt><tt class="py-name">body_el</tt><tt class="py-op">,</tt> <tt class="py-name">skip_tag</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">include_hrefs</tt><tt class="py-op">=</tt><tt class="py-name">include_hrefs</tt><tt class="py-op">)</tt> </tt>
+<a name="L537"></a><tt class="py-lineno">537</tt>  <tt class="py-line">    <tt class="py-comment"># Finally re-joining them into token objects:</tt> </tt>
+<a name="L538"></a><tt class="py-lineno">538</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-177" class="py-name" targets="Function lxml.html.diff.fixup_chunks()=lxml.html.diff-module.html#fixup_chunks"><a title="lxml.html.diff.fixup_chunks" class="py-name" href="#" onclick="return doclink('link-177', 'fixup_chunks', 'link-177');">fixup_chunks</a></tt><tt class="py-op">(</tt><tt class="py-name">chunks</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L539"></a><tt class="py-lineno">539</tt>  <tt class="py-line"> </tt>
+<a name="parse_html"></a><div id="parse_html-def"><a name="L540"></a><tt class="py-lineno">540</tt> <a class="py-toggle" href="#" id="parse_html-toggle" onclick="return toggle('parse_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#parse_html">parse_html</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">cleanup</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="parse_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="parse_html-expanded"><a name="L541"></a><tt class="py-lineno">541</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L542"></a><tt class="py-lineno">542</tt>  <tt class="py-line"><tt class="py-docstring">    Parses an HTML fragment, returning an lxml element.  Note that the HTML will be</tt> </tt>
+<a name="L543"></a><tt class="py-lineno">543</tt>  <tt class="py-line"><tt class="py-docstring">    wrapped in a &lt;div&gt; tag that was not in the original document.</tt> </tt>
+<a name="L544"></a><tt class="py-lineno">544</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L545"></a><tt class="py-lineno">545</tt>  <tt class="py-line"><tt class="py-docstring">    If cleanup is true, make sure there's no &lt;head&gt; or &lt;body&gt;, and get</tt> </tt>
+<a name="L546"></a><tt class="py-lineno">546</tt>  <tt class="py-line"><tt class="py-docstring">    rid of any &lt;ins&gt; and &lt;del&gt; tags.</tt> </tt>
+<a name="L547"></a><tt class="py-lineno">547</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L548"></a><tt class="py-lineno">548</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">cleanup</tt><tt class="py-op">:</tt> </tt>
+<a name="L549"></a><tt class="py-lineno">549</tt>  <tt class="py-line">        <tt class="py-comment"># This removes any extra markup or structure like &lt;head&gt;:</tt> </tt>
+<a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line">        <tt id="link-178" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-176', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-177" class="py-name" targets="Function lxml.html.diff.cleanup_html()=lxml.html.diff-module.html#cleanup_html"><a title="lxml.html.diff.cleanup_html" class="py-name" href="#" onclick="return doclink('link-177', 'cleanup_html', 'link-177');">cleanup_html</a></tt><tt class="py-op">(</tt><tt id="link-178" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-178', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-179" class="py-name" targets="Function lxml.html.diff.cleanup_html()=lxml.html.diff-module.html#cleanup_html"><a title="lxml.html.diff.cleanup_html" class="py-name" href="#" onclick="return doclink('link-179', 'cleanup_html', 'link-179');">cleanup_html</a></tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-178', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L550"></a><tt class="py-lineno">550</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-179" class="py-name"><a title="lxml.html.html5parser.fragment_fromstring" class="py-name" href="#" onclick="return doclink('link-179', 'fragment_fromstring', 'link-4');">fragment_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-180', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-181" class="py-name"><a title="lxml.html.html5parser.fragment_fromstring" class="py-name" href="#" onclick="return doclink('link-181', 'fragment_fromstring', 'link-4');">fragment_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-182" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-180', 'html', 'link-3');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">create_parent</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L551"></a><tt class="py-lineno">551</tt>  <tt class="py-line"> </tt>
-<a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line"><tt id="link-181" class="py-name" targets="Variable lxml.html.diff._body_re=lxml.html.diff-module.html#_body_re"><a title="lxml.html.diff._body_re" class="py-name" href="#" onclick="return doclink('link-181', '_body_re', 'link-181');">_body_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'&lt;body.*?&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-182" class="py-name" targets="Variable lxml.html.builder.I=lxml.html.builder-module.html#I"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-182', 'I', 'link-182');">I</a></tt><tt class="py-op">|</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name" targets="Variable lxml.html.builder.S=lxml.html.builder-module.html#S"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-183', 'S', 'link-183');">S</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line"><tt id="link-184" class="py-name" targets="Variable lxml.html.diff._end_body_re=lxml.html.diff-module.html#_end_body_re"><a title="lxml.html.diff._end_body_re" class="py-name" href="#" onclick="return doclink('link-184', '_end_body_re', 'link-184');">_end_body_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'&lt;/body.*?&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-185', 'I', 'link-182');">I</a></tt><tt class="py-op">|</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-186" class="py-name"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-186', 'S', 'link-183');">S</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line"><tt id="link-187" class="py-name" targets="Variable lxml.html.diff._ins_del_re=lxml.html.diff-module.html#_ins_del_re"><a title="lxml.html.diff._ins_del_re" class="py-name" href="#" onclick="return doclink('link-187', '_ins_del_re', 'link-187');">_ins_del_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'&lt;/?(ins|del).*?&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-188', 'I', 'link-182');">I</a></tt><tt class="py-op">|</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-189" class="py-name"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-189', 'S', 'link-183');">S</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line"> </tt>
-<a name="cleanup_html"></a><div id="cleanup_html-def"><a name="L556"></a><tt class="py-lineno">556</tt> <a class="py-toggle" href="#" id="cleanup_html-toggle" onclick="return toggle('cleanup_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#cleanup_html">cleanup_html</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="cleanup_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="cleanup_html-expanded"><a name="L557"></a><tt class="py-lineno">557</tt>  <tt class="py-line">    <tt class="py-docstring">""" This 'cleans' the HTML, meaning that any page structure is removed</tt> </tt>
-<a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line"><tt class="py-docstring">    (only the contents of &lt;body&gt; are used, if there is any &lt;body).</tt> </tt>
-<a name="L559"></a><tt class="py-lineno">559</tt>  <tt class="py-line"><tt class="py-docstring">    Also &lt;ins&gt; and &lt;del&gt; tags are removed.  """</tt> </tt>
-<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line">    <tt class="py-name">match</tt> <tt class="py-op">=</tt> <tt id="link-190" class="py-name"><a title="lxml.html.diff._body_re" class="py-name" href="#" onclick="return doclink('link-190', '_body_re', 'link-181');">_body_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-191" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-182', 'html', 'link-3');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">create_parent</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L552"></a><tt class="py-lineno">552</tt>  <tt class="py-line"> </tt>
+<a name="L553"></a><tt class="py-lineno">553</tt>  <tt class="py-line"><tt id="link-183" class="py-name" targets="Variable lxml.html.diff._body_re=lxml.html.diff-module.html#_body_re"><a title="lxml.html.diff._body_re" class="py-name" href="#" onclick="return doclink('link-183', '_body_re', 'link-183');">_body_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'&lt;body.*?&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-184" class="py-name" targets="Variable lxml.html.builder.I=lxml.html.builder-module.html#I"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-184', 'I', 'link-184');">I</a></tt><tt class="py-op">|</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name" targets="Variable lxml.html.builder.S=lxml.html.builder-module.html#S"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-185', 'S', 'link-185');">S</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L554"></a><tt class="py-lineno">554</tt>  <tt class="py-line"><tt id="link-186" class="py-name" targets="Variable lxml.html.diff._end_body_re=lxml.html.diff-module.html#_end_body_re"><a title="lxml.html.diff._end_body_re" class="py-name" href="#" onclick="return doclink('link-186', '_end_body_re', 'link-186');">_end_body_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'&lt;/body.*?&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-187', 'I', 'link-184');">I</a></tt><tt class="py-op">|</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-188" class="py-name"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-188', 'S', 'link-185');">S</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L555"></a><tt class="py-lineno">555</tt>  <tt class="py-line"><tt id="link-189" class="py-name" targets="Variable lxml.html.diff._ins_del_re=lxml.html.diff-module.html#_ins_del_re"><a title="lxml.html.diff._ins_del_re" class="py-name" href="#" onclick="return doclink('link-189', '_ins_del_re', 'link-189');">_ins_del_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'&lt;/?(ins|del).*?&gt;'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-190" class="py-name"><a title="lxml.html.builder.I" class="py-name" href="#" onclick="return doclink('link-190', 'I', 'link-184');">I</a></tt><tt class="py-op">|</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="lxml.html.builder.S" class="py-name" href="#" onclick="return doclink('link-191', 'S', 'link-185');">S</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L556"></a><tt class="py-lineno">556</tt>  <tt class="py-line"> </tt>
+<a name="cleanup_html"></a><div id="cleanup_html-def"><a name="L557"></a><tt class="py-lineno">557</tt> <a class="py-toggle" href="#" id="cleanup_html-toggle" onclick="return toggle('cleanup_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#cleanup_html">cleanup_html</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="cleanup_html-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="cleanup_html-expanded"><a name="L558"></a><tt class="py-lineno">558</tt>  <tt class="py-line">    <tt class="py-docstring">""" This 'cleans' the HTML, meaning that any page structure is removed</tt> </tt>
+<a name="L559"></a><tt class="py-lineno">559</tt>  <tt class="py-line"><tt class="py-docstring">    (only the contents of &lt;body&gt; are used, if there is any &lt;body).</tt> </tt>
+<a name="L560"></a><tt class="py-lineno">560</tt>  <tt class="py-line"><tt class="py-docstring">    Also &lt;ins&gt; and &lt;del&gt; tags are removed.  """</tt> </tt>
+<a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line">    <tt class="py-name">match</tt> <tt class="py-op">=</tt> <tt id="link-192" class="py-name"><a title="lxml.html.diff._body_re" class="py-name" href="#" onclick="return doclink('link-192', '_body_re', 'link-183');">_body_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-193" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-191', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L561"></a><tt class="py-lineno">561</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">match</tt><tt class="py-op">:</tt> </tt>
-<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line">        <tt id="link-192" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-193', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L562"></a><tt class="py-lineno">562</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">match</tt><tt class="py-op">:</tt> </tt>
+<a name="L563"></a><tt class="py-lineno">563</tt>  <tt class="py-line">        <tt id="link-194" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-192', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-193" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-194', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-195" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-193', 'html', 'link-3');">html</a></tt><tt class="py-op">[</tt><tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-194" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-194', 'end', 'link-88');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L563"></a><tt class="py-lineno">563</tt>  <tt class="py-line">    <tt class="py-name">match</tt> <tt class="py-op">=</tt> <tt id="link-195" class="py-name"><a title="lxml.html.diff._end_body_re" class="py-name" href="#" onclick="return doclink('link-195', '_end_body_re', 'link-184');">_end_body_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-196" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-195', 'html', 'link-3');">html</a></tt><tt class="py-op">[</tt><tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-196', 'end', 'link-90');">end</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line">    <tt class="py-name">match</tt> <tt class="py-op">=</tt> <tt id="link-197" class="py-name"><a title="lxml.html.diff._end_body_re" class="py-name" href="#" onclick="return doclink('link-197', '_end_body_re', 'link-186');">_end_body_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-198" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-196', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno">564</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">match</tt><tt class="py-op">:</tt> </tt>
-<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line">        <tt id="link-197" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-198', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L565"></a><tt class="py-lineno">565</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">match</tt><tt class="py-op">:</tt> </tt>
+<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line">        <tt id="link-199" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-197', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-198" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-199', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-200" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-198', 'html', 'link-3');">html</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-199', 'start', 'link-87');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L566"></a><tt class="py-lineno">566</tt>  <tt class="py-line">    <tt id="link-200" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-200', 'html', 'link-3');">html</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-name">match</tt><tt class="py-op">.</tt><tt id="link-201" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-201', 'start', 'link-89');">start</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L567"></a><tt class="py-lineno">567</tt>  <tt class="py-line">    <tt id="link-202" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-200', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-201" class="py-name"><a title="lxml.html.diff._ins_del_re" class="py-name" href="#" onclick="return doclink('link-201', '_ins_del_re', 'link-187');">_ins_del_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-202" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-202', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-203" class="py-name"><a title="lxml.html.diff._ins_del_re" class="py-name" href="#" onclick="return doclink('link-203', '_ins_del_re', 'link-189');">_ins_del_re</a></tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt id="link-204" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-202', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L567"></a><tt class="py-lineno">567</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-203" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-204', 'html', 'link-3');">html</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L568"></a><tt class="py-lineno">568</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-205" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-203', 'html', 'link-3');">html</a></tt> </tt>
-</div><a name="L568"></a><tt class="py-lineno">568</tt>  <tt class="py-line">     </tt>
-<a name="L569"></a><tt class="py-lineno">569</tt>  <tt class="py-line"> </tt>
-<a name="L570"></a><tt class="py-lineno">570</tt>  <tt class="py-line"><tt id="link-204" class="py-name" targets="Variable lxml.html.diff.end_whitespace_re=lxml.html.diff-module.html#end_whitespace_re"><a title="lxml.html.diff.end_whitespace_re" class="py-name" href="#" onclick="return doclink('link-204', 'end_whitespace_re', 'link-204');">end_whitespace_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'[ \t\n\r]$'</tt><tt class="py-op">)</tt> </tt>
-<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line"> </tt>
-<a name="fixup_chunks"></a><div id="fixup_chunks-def"><a name="L572"></a><tt class="py-lineno">572</tt> <a class="py-toggle" href="#" id="fixup_chunks-toggle" onclick="return toggle('fixup_chunks');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#fixup_chunks">fixup_chunks</a><tt class="py-op">(</tt><tt class="py-param">chunks</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="fixup_chunks-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fixup_chunks-expanded"><a name="L573"></a><tt class="py-lineno">573</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L574"></a><tt class="py-lineno">574</tt>  <tt class="py-line"><tt class="py-docstring">    This function takes a list of chunks and produces a list of tokens.</tt> </tt>
-<a name="L575"></a><tt class="py-lineno">575</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line">    <tt class="py-name">tag_accum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line">    <tt class="py-name">cur_word</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chunks</tt><tt class="py-op">:</tt> </tt>
-<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L581"></a><tt class="py-lineno">581</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'img'</tt><tt class="py-op">:</tt> </tt>
-<a name="L582"></a><tt class="py-lineno">582</tt>  <tt class="py-line">                <tt class="py-name">src</tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L583"></a><tt class="py-lineno">583</tt>  <tt class="py-line">                <tt id="link-205" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-205', 'html', 'link-3');">html</a></tt> </tt>
+</div><a name="L569"></a><tt class="py-lineno">569</tt>  <tt class="py-line">     </tt>
+<a name="L570"></a><tt class="py-lineno">570</tt>  <tt class="py-line"> </tt>
+<a name="L571"></a><tt class="py-lineno">571</tt>  <tt class="py-line"><tt id="link-206" class="py-name" targets="Variable lxml.html.diff.end_whitespace_re=lxml.html.diff-module.html#end_whitespace_re"><a title="lxml.html.diff.end_whitespace_re" class="py-name" href="#" onclick="return doclink('link-206', 'end_whitespace_re', 'link-206');">end_whitespace_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'[ \t\n\r]$'</tt><tt class="py-op">)</tt> </tt>
+<a name="L572"></a><tt class="py-lineno">572</tt>  <tt class="py-line"> </tt>
+<a name="split_trailing_whitespace"></a><div id="split_trailing_whitespace-def"><a name="L573"></a><tt class="py-lineno">573</tt> <a class="py-toggle" href="#" id="split_trailing_whitespace-toggle" onclick="return toggle('split_trailing_whitespace');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#split_trailing_whitespace">split_trailing_whitespace</a><tt class="py-op">(</tt><tt class="py-param">word</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="split_trailing_whitespace-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="split_trailing_whitespace-expanded"><a name="L574"></a><tt class="py-lineno">574</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L575"></a><tt class="py-lineno">575</tt>  <tt class="py-line"><tt class="py-docstring">    This function takes a word, such as 'test\n\n' and returns ('test','\n\n')</tt> </tt>
+<a name="L576"></a><tt class="py-lineno">576</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L577"></a><tt class="py-lineno">577</tt>  <tt class="py-line">    <tt class="py-name">stripped_length</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L578"></a><tt class="py-lineno">578</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-name">stripped_length</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">word</tt><tt class="py-op">[</tt><tt class="py-name">stripped_length</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L579"></a><tt class="py-lineno">579</tt>  <tt class="py-line"> </tt>
+<a name="L580"></a><tt class="py-lineno">580</tt>  <tt class="py-line"> </tt>
+<a name="fixup_chunks"></a><div id="fixup_chunks-def"><a name="L581"></a><tt class="py-lineno">581</tt> <a class="py-toggle" href="#" id="fixup_chunks-toggle" onclick="return toggle('fixup_chunks');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#fixup_chunks">fixup_chunks</a><tt class="py-op">(</tt><tt class="py-param">chunks</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fixup_chunks-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fixup_chunks-expanded"><a name="L582"></a><tt class="py-lineno">582</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L583"></a><tt class="py-lineno">583</tt>  <tt class="py-line"><tt class="py-docstring">    This function takes a list of chunks and produces a list of tokens.</tt> </tt>
+<a name="L584"></a><tt class="py-lineno">584</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L585"></a><tt class="py-lineno">585</tt>  <tt class="py-line">    <tt class="py-name">tag_accum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L586"></a><tt class="py-lineno">586</tt>  <tt class="py-line">    <tt class="py-name">cur_word</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">chunk</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chunks</tt><tt class="py-op">:</tt> </tt>
+<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'img'</tt><tt class="py-op">:</tt> </tt>
+<a name="L591"></a><tt class="py-lineno">591</tt>  <tt class="py-line">                <tt class="py-name">src</tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line">                <tt id="link-207" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-205', 'tag', 'link-98');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L584"></a><tt class="py-lineno">584</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-206" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-207', 'tag', 'link-100');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">trailing_whitespace</tt> <tt class="py-op">=</tt> <tt id="link-208" class="py-name" targets="Function lxml.html.diff.split_trailing_whitespace()=lxml.html.diff-module.html#split_trailing_whitespace"><a title="lxml.html.diff.split_trailing_whitespace" class="py-name" href="#" onclick="return doclink('link-208', 'split_trailing_whitespace', 'link-208');">split_trailing_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line">                <tt class="py-name">cur_word</tt> <tt class="py-op">=</tt> <tt id="link-209" class="py-name" targets="Class lxml.html.diff.tag_token=lxml.html.diff.tag_token-class.html"><a title="lxml.html.diff.tag_token" class="py-name" href="#" onclick="return doclink('link-209', 'tag_token', 'link-209');">tag_token</a></tt><tt class="py-op">(</tt><tt class="py-string">'img'</tt><tt class="py-op">,</tt> <tt class="py-name">src</tt><tt class="py-op">,</tt> <tt class="py-name">html_repr</tt><tt class="py-op">=</tt><tt id="link-210" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-206', 'tag', 'link-98');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L585"></a><tt class="py-lineno">585</tt>  <tt class="py-line">                    <tt id="link-207" class="py-name"><a title="lxml.etree._Comment.tag
-lxml.etree._Element.tag
-lxml.etree._Entity.tag
-lxml.etree._ProcessingInstruction.tag
-lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-207', 'tag', 'link-98');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-208" class="py-name"><a title="lxml.etree._Comment.tag
-lxml.etree._Element.tag
-lxml.etree._Entity.tag
-lxml.etree._ProcessingInstruction.tag
-lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-208', 'tag', 'link-98');">tag</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L586"></a><tt class="py-lineno">586</tt>  <tt class="py-line">                    <tt class="py-name">trailing_whitespace</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L587"></a><tt class="py-lineno">587</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L588"></a><tt class="py-lineno">588</tt>  <tt class="py-line">                    <tt class="py-name">trailing_whitespace</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L589"></a><tt class="py-lineno">589</tt>  <tt class="py-line">                <tt class="py-name">cur_word</tt> <tt class="py-op">=</tt> <tt id="link-209" class="py-name" targets="Class lxml.html.diff.tag_token=lxml.html.diff.tag_token-class.html"><a title="lxml.html.diff.tag_token" class="py-name" href="#" onclick="return doclink('link-209', 'tag_token', 'link-209');">tag_token</a></tt><tt class="py-op">(</tt><tt class="py-string">'img'</tt><tt class="py-op">,</tt> <tt class="py-name">src</tt><tt class="py-op">,</tt> <tt class="py-name">html_repr</tt><tt class="py-op">=</tt><tt id="link-210" class="py-name"><a title="lxml.etree._Comment.tag
-lxml.etree._Element.tag
-lxml.etree._Entity.tag
-lxml.etree._ProcessingInstruction.tag
-lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-210', 'tag', 'link-98');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L590"></a><tt class="py-lineno">590</tt>  <tt class="py-line">                                     <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">tag_accum</tt><tt class="py-op">,</tt> </tt>
-<a name="L591"></a><tt class="py-lineno">591</tt>  <tt class="py-line">                                     <tt class="py-name">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
-<a name="L592"></a><tt class="py-lineno">592</tt>  <tt class="py-line">                <tt class="py-name">tag_accum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L593"></a><tt class="py-lineno">593</tt>  <tt class="py-line">                <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-211', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">cur_word</tt><tt class="py-op">)</tt> </tt>
-<a name="L594"></a><tt class="py-lineno">594</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'href'</tt><tt class="py-op">:</tt> </tt>
-<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">                <tt class="py-name">href</tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line">                <tt class="py-name">cur_word</tt> <tt class="py-op">=</tt> <tt id="link-212" class="py-name" targets="Class lxml.html.diff.href_token=lxml.html.diff.href_token-class.html"><a title="lxml.html.diff.href_token" class="py-name" href="#" onclick="return doclink('link-212', 'href_token', 'link-212');">href_token</a></tt><tt class="py-op">(</tt><tt class="py-name">href</tt><tt class="py-op">,</tt> <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">tag_accum</tt><tt class="py-op">,</tt> <tt class="py-name">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L597"></a><tt class="py-lineno">597</tt>  <tt class="py-line">                <tt class="py-name">tag_accum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L598"></a><tt class="py-lineno">598</tt>  <tt class="py-line">                <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-213', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">cur_word</tt><tt class="py-op">)</tt> </tt>
-<a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">            <tt class="py-keyword">continue</tt> </tt>
-<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-214" class="py-name" targets="Function lxml.html.diff.is_word()=lxml.html.diff-module.html#is_word"><a title="lxml.html.diff.is_word" class="py-name" href="#" onclick="return doclink('link-214', 'is_word', 'link-214');">is_word</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">chunk</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">' '</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line">                <tt class="py-name">chunk</tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line">                <tt class="py-name">trailing_whitespace</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L604"></a><tt class="py-lineno">604</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line">                <tt class="py-name">trailing_whitespace</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L606"></a><tt class="py-lineno">606</tt>  <tt class="py-line">            <tt class="py-name">cur_word</tt> <tt class="py-op">=</tt> <tt id="link-215" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-215', 'token', 'link-23');">token</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">,</tt> <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">tag_accum</tt><tt class="py-op">,</tt> <tt class="py-name">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
-<a name="L607"></a><tt class="py-lineno">607</tt>  <tt class="py-line">            <tt class="py-name">tag_accum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-216" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-216', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">cur_word</tt><tt class="py-op">)</tt> </tt>
-<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-217" class="py-name" targets="Function lxml.html.diff.is_start_tag()=lxml.html.diff-module.html#is_start_tag"><a title="lxml.html.diff.is_start_tag" class="py-name" href="#" onclick="return doclink('link-217', 'is_start_tag', 'link-217');">is_start_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">            <tt class="py-name">tag_accum</tt><tt class="py-op">.</tt><tt id="link-218" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-218', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
-<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-219" class="py-name" targets="Function lxml.html.diff.is_end_tag()=lxml.html.diff-module.html#is_end_tag"><a title="lxml.html.diff.is_end_tag" class="py-name" href="#" onclick="return doclink('link-219', 'is_end_tag', 'link-219');">is_end_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tag_accum</tt><tt class="py-op">:</tt> </tt>
-<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line">                <tt class="py-name">tag_accum</tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-220', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
-<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L615"></a><tt class="py-lineno">615</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt class="py-name">cur_word</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt> </tt>
-<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line">                    <tt class="py-string">"Weird state, cur_word=%r, result=%r, chunks=%r of %r"</tt> </tt>
-<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line">                    <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">cur_word</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-name">chunk</tt><tt class="py-op">,</tt> <tt class="py-name">chunks</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">                <tt class="py-name">cur_word</tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-221', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
-<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line"> </tt>
-<a name="L622"></a><tt class="py-lineno">622</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">result</tt><tt class="py-op">:</tt> </tt>
-<a name="L623"></a><tt class="py-lineno">623</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt id="link-222" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-222', 'token', 'link-23');">token</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">tag_accum</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L625"></a><tt class="py-lineno">625</tt>  <tt class="py-line">        <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-223', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">tag_accum</tt><tt class="py-op">)</tt> </tt>
-<a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line"> </tt>
-<a name="L627"></a><tt class="py-lineno">627</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
-</div><a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line"> </tt>
-<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line"> </tt>
-<a name="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line"><tt class="py-comment"># All the tags in HTML that don't require end tags:</tt> </tt>
-<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line"><tt id="link-224" class="py-name"><a title="lxml.doctestcompare.LXMLOutputChecker.empty_tags
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-210', 'tag', 'link-100');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L594"></a><tt class="py-lineno">594</tt>  <tt class="py-line">                                     <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">tag_accum</tt><tt class="py-op">,</tt> </tt>
+<a name="L595"></a><tt class="py-lineno">595</tt>  <tt class="py-line">                                     <tt class="py-name">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
+<a name="L596"></a><tt class="py-lineno">596</tt>  <tt class="py-line">                <tt class="py-name">tag_accum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L597"></a><tt class="py-lineno">597</tt>  <tt class="py-line">                <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-211" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-211', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">cur_word</tt><tt class="py-op">)</tt> </tt>
+<a name="L598"></a><tt class="py-lineno">598</tt>  <tt class="py-line"> </tt>
+<a name="L599"></a><tt class="py-lineno">599</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">'href'</tt><tt class="py-op">:</tt> </tt>
+<a name="L600"></a><tt class="py-lineno">600</tt>  <tt class="py-line">                <tt class="py-name">href</tt> <tt class="py-op">=</tt> <tt class="py-name">chunk</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L601"></a><tt class="py-lineno">601</tt>  <tt class="py-line">                <tt class="py-name">cur_word</tt> <tt class="py-op">=</tt> <tt id="link-212" class="py-name" targets="Class lxml.html.diff.href_token=lxml.html.diff.href_token-class.html"><a title="lxml.html.diff.href_token" class="py-name" href="#" onclick="return doclink('link-212', 'href_token', 'link-212');">href_token</a></tt><tt class="py-op">(</tt><tt class="py-name">href</tt><tt class="py-op">,</tt> <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">tag_accum</tt><tt class="py-op">,</tt> <tt class="py-name">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt> </tt>
+<a name="L602"></a><tt class="py-lineno">602</tt>  <tt class="py-line">                <tt class="py-name">tag_accum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L603"></a><tt class="py-lineno">603</tt>  <tt class="py-line">                <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-213', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">cur_word</tt><tt class="py-op">)</tt> </tt>
+<a name="L604"></a><tt class="py-lineno">604</tt>  <tt class="py-line">            <tt class="py-keyword">continue</tt> </tt>
+<a name="L605"></a><tt class="py-lineno">605</tt>  <tt class="py-line"> </tt>
+<a name="L606"></a><tt class="py-lineno">606</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-214" class="py-name" targets="Function lxml.html.diff.is_word()=lxml.html.diff-module.html#is_word"><a title="lxml.html.diff.is_word" class="py-name" href="#" onclick="return doclink('link-214', 'is_word', 'link-214');">is_word</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L607"></a><tt class="py-lineno">607</tt>  <tt class="py-line">            <tt class="py-name">chunk</tt><tt class="py-op">,</tt> <tt class="py-name">trailing_whitespace</tt> <tt class="py-op">=</tt> <tt id="link-215" class="py-name"><a title="lxml.html.diff.split_trailing_whitespace" class="py-name" href="#" onclick="return doclink('link-215', 'split_trailing_whitespace', 'link-208');">split_trailing_whitespace</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L608"></a><tt class="py-lineno">608</tt>  <tt class="py-line">            <tt class="py-name">cur_word</tt> <tt class="py-op">=</tt> <tt id="link-216" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-216', 'token', 'link-23');">token</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">,</tt> <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">tag_accum</tt><tt class="py-op">,</tt> <tt class="py-name">trailing_whitespace</tt><tt class="py-op">=</tt><tt class="py-name">trailing_whitespace</tt><tt class="py-op">)</tt> </tt>
+<a name="L609"></a><tt class="py-lineno">609</tt>  <tt class="py-line">            <tt class="py-name">tag_accum</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L610"></a><tt class="py-lineno">610</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-217" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-217', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">cur_word</tt><tt class="py-op">)</tt> </tt>
+<a name="L611"></a><tt class="py-lineno">611</tt>  <tt class="py-line"> </tt>
+<a name="L612"></a><tt class="py-lineno">612</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-218" class="py-name" targets="Function lxml.html.diff.is_start_tag()=lxml.html.diff-module.html#is_start_tag"><a title="lxml.html.diff.is_start_tag" class="py-name" href="#" onclick="return doclink('link-218', 'is_start_tag', 'link-218');">is_start_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L613"></a><tt class="py-lineno">613</tt>  <tt class="py-line">            <tt class="py-name">tag_accum</tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-219', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L614"></a><tt class="py-lineno">614</tt>  <tt class="py-line"> </tt>
+<a name="L615"></a><tt class="py-lineno">615</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-220" class="py-name" targets="Function lxml.html.diff.is_end_tag()=lxml.html.diff-module.html#is_end_tag"><a title="lxml.html.diff.is_end_tag" class="py-name" href="#" onclick="return doclink('link-220', 'is_end_tag', 'link-220');">is_end_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L616"></a><tt class="py-lineno">616</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">tag_accum</tt><tt class="py-op">:</tt> </tt>
+<a name="L617"></a><tt class="py-lineno">617</tt>  <tt class="py-line">                <tt class="py-name">tag_accum</tt><tt class="py-op">.</tt><tt id="link-221" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-221', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L618"></a><tt class="py-lineno">618</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L619"></a><tt class="py-lineno">619</tt>  <tt class="py-line">                <tt class="py-keyword">assert</tt> <tt class="py-name">cur_word</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt> </tt>
+<a name="L620"></a><tt class="py-lineno">620</tt>  <tt class="py-line">                    <tt class="py-string">"Weird state, cur_word=%r, result=%r, chunks=%r of %r"</tt> </tt>
+<a name="L621"></a><tt class="py-lineno">621</tt>  <tt class="py-line">                    <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">cur_word</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-name">chunk</tt><tt class="py-op">,</tt> <tt class="py-name">chunks</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L622"></a><tt class="py-lineno">622</tt>  <tt class="py-line">                <tt class="py-name">cur_word</tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-222', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">chunk</tt><tt class="py-op">)</tt> </tt>
+<a name="L623"></a><tt class="py-lineno">623</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L624"></a><tt class="py-lineno">624</tt>  <tt class="py-line">            <tt class="py-keyword">assert</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L625"></a><tt class="py-lineno">625</tt>  <tt class="py-line"> </tt>
+<a name="L626"></a><tt class="py-lineno">626</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">result</tt><tt class="py-op">:</tt> </tt>
+<a name="L627"></a><tt class="py-lineno">627</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt id="link-223" class="py-name"><a title="lxml.html.diff.token" class="py-name" href="#" onclick="return doclink('link-223', 'token', 'link-23');">token</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">pre_tags</tt><tt class="py-op">=</tt><tt class="py-name">tag_accum</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L628"></a><tt class="py-lineno">628</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L629"></a><tt class="py-lineno">629</tt>  <tt class="py-line">        <tt class="py-name">result</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">post_tags</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-224', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">tag_accum</tt><tt class="py-op">)</tt> </tt>
+<a name="L630"></a><tt class="py-lineno">630</tt>  <tt class="py-line"> </tt>
+<a name="L631"></a><tt class="py-lineno">631</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
+</div><a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line"> </tt>
+<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line"> </tt>
+<a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line"><tt class="py-comment"># All the tags in HTML that don't require end tags:</tt> </tt>
+<a name="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line"><tt id="link-225" class="py-name"><a title="lxml.doctestcompare.LXMLOutputChecker.empty_tags
 lxml.html.defs.empty_tags
-lxml.html.diff.empty_tags" class="py-name" href="#" onclick="return doclink('link-224', 'empty_tags', 'link-93');">empty_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> </tt>
-<a name="L632"></a><tt class="py-lineno">632</tt>  <tt class="py-line">    <tt class="py-string">'param'</tt><tt class="py-op">,</tt> <tt class="py-string">'img'</tt><tt class="py-op">,</tt> <tt class="py-string">'area'</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">,</tt> <tt class="py-string">'basefont'</tt><tt class="py-op">,</tt> <tt class="py-string">'input'</tt><tt class="py-op">,</tt> </tt>
-<a name="L633"></a><tt class="py-lineno">633</tt>  <tt class="py-line">    <tt class="py-string">'base'</tt><tt class="py-op">,</tt> <tt class="py-string">'meta'</tt><tt class="py-op">,</tt> <tt class="py-string">'link'</tt><tt class="py-op">,</tt> <tt class="py-string">'col'</tt><tt class="py-op">)</tt> </tt>
-<a name="L634"></a><tt class="py-lineno">634</tt>  <tt class="py-line"> </tt>
-<a name="L635"></a><tt class="py-lineno">635</tt>  <tt class="py-line"><tt id="link-225" class="py-name" targets="Variable lxml.html.diff.block_level_tags=lxml.html.diff-module.html#block_level_tags"><a title="lxml.html.diff.block_level_tags" class="py-name" href="#" onclick="return doclink('link-225', 'block_level_tags', 'link-225');">block_level_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> </tt>
-<a name="L636"></a><tt class="py-lineno">636</tt>  <tt class="py-line">    <tt class="py-string">'address'</tt><tt class="py-op">,</tt> </tt>
-<a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">    <tt class="py-string">'blockquote'</tt><tt class="py-op">,</tt> </tt>
-<a name="L638"></a><tt class="py-lineno">638</tt>  <tt class="py-line">    <tt class="py-string">'center'</tt><tt class="py-op">,</tt> </tt>
-<a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line">    <tt class="py-string">'dir'</tt><tt class="py-op">,</tt> </tt>
-<a name="L640"></a><tt class="py-lineno">640</tt>  <tt class="py-line">    <tt class="py-string">'div'</tt><tt class="py-op">,</tt> </tt>
-<a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">    <tt class="py-string">'dl'</tt><tt class="py-op">,</tt> </tt>
-<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">    <tt class="py-string">'fieldset'</tt><tt class="py-op">,</tt> </tt>
-<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line">    <tt class="py-string">'form'</tt><tt class="py-op">,</tt> </tt>
-<a name="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">    <tt class="py-string">'h1'</tt><tt class="py-op">,</tt> </tt>
-<a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line">    <tt class="py-string">'h2'</tt><tt class="py-op">,</tt> </tt>
-<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line">    <tt class="py-string">'h3'</tt><tt class="py-op">,</tt> </tt>
-<a name="L647"></a><tt class="py-lineno">647</tt>  <tt class="py-line">    <tt class="py-string">'h4'</tt><tt class="py-op">,</tt> </tt>
-<a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line">    <tt class="py-string">'h5'</tt><tt class="py-op">,</tt> </tt>
-<a name="L649"></a><tt class="py-lineno">649</tt>  <tt class="py-line">    <tt class="py-string">'h6'</tt><tt class="py-op">,</tt> </tt>
-<a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line">    <tt class="py-string">'hr'</tt><tt class="py-op">,</tt> </tt>
-<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line">    <tt class="py-string">'isindex'</tt><tt class="py-op">,</tt> </tt>
-<a name="L652"></a><tt class="py-lineno">652</tt>  <tt class="py-line">    <tt class="py-string">'menu'</tt><tt class="py-op">,</tt> </tt>
-<a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line">    <tt class="py-string">'noframes'</tt><tt class="py-op">,</tt> </tt>
-<a name="L654"></a><tt class="py-lineno">654</tt>  <tt class="py-line">    <tt class="py-string">'noscript'</tt><tt class="py-op">,</tt> </tt>
-<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line">    <tt class="py-string">'ol'</tt><tt class="py-op">,</tt> </tt>
-<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line">    <tt class="py-string">'p'</tt><tt class="py-op">,</tt> </tt>
-<a name="L657"></a><tt class="py-lineno">657</tt>  <tt class="py-line">    <tt class="py-string">'pre'</tt><tt class="py-op">,</tt> </tt>
-<a name="L658"></a><tt class="py-lineno">658</tt>  <tt class="py-line">    <tt class="py-string">'table'</tt><tt class="py-op">,</tt> </tt>
-<a name="L659"></a><tt class="py-lineno">659</tt>  <tt class="py-line">    <tt class="py-string">'ul'</tt><tt class="py-op">,</tt> </tt>
-<a name="L660"></a><tt class="py-lineno">660</tt>  <tt class="py-line">    <tt class="py-op">)</tt> </tt>
-<a name="L661"></a><tt class="py-lineno">661</tt>  <tt class="py-line"> </tt>
-<a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line"><tt id="link-226" class="py-name" targets="Variable lxml.html.diff.block_level_container_tags=lxml.html.diff-module.html#block_level_container_tags"><a title="lxml.html.diff.block_level_container_tags" class="py-name" href="#" onclick="return doclink('link-226', 'block_level_container_tags', 'link-226');">block_level_container_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> </tt>
-<a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line">    <tt class="py-string">'dd'</tt><tt class="py-op">,</tt> </tt>
-<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line">    <tt class="py-string">'dt'</tt><tt class="py-op">,</tt> </tt>
-<a name="L665"></a><tt class="py-lineno">665</tt>  <tt class="py-line">    <tt class="py-string">'frameset'</tt><tt class="py-op">,</tt> </tt>
-<a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line">    <tt class="py-string">'li'</tt><tt class="py-op">,</tt> </tt>
-<a name="L667"></a><tt class="py-lineno">667</tt>  <tt class="py-line">    <tt class="py-string">'tbody'</tt><tt class="py-op">,</tt> </tt>
-<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line">    <tt class="py-string">'td'</tt><tt class="py-op">,</tt> </tt>
-<a name="L669"></a><tt class="py-lineno">669</tt>  <tt class="py-line">    <tt class="py-string">'tfoot'</tt><tt class="py-op">,</tt> </tt>
-<a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line">    <tt class="py-string">'th'</tt><tt class="py-op">,</tt> </tt>
-<a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line">    <tt class="py-string">'thead'</tt><tt class="py-op">,</tt> </tt>
-<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line">    <tt class="py-string">'tr'</tt><tt class="py-op">,</tt> </tt>
-<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line">    <tt class="py-op">)</tt> </tt>
-<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line"> </tt>
-<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line"> </tt>
-<a name="flatten_el"></a><div id="flatten_el-def"><a name="L676"></a><tt class="py-lineno">676</tt> <a class="py-toggle" href="#" id="flatten_el-toggle" onclick="return toggle('flatten_el');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#flatten_el">flatten_el</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">include_hrefs</tt><tt class="py-op">,</tt> <tt class="py-param">skip_tag</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="flatten_el-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="flatten_el-expanded"><a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line">    <tt class="py-docstring">""" Takes an lxml element el, and generates all the text chunks for</tt> </tt>
-<a name="L678"></a><tt class="py-lineno">678</tt>  <tt class="py-line"><tt class="py-docstring">    that tag.  Each start tag is a chunk, each word is a chunk, and each</tt> </tt>
-<a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line"><tt class="py-docstring">    end tag is a chunk.</tt> </tt>
-<a name="L680"></a><tt class="py-lineno">680</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line"><tt class="py-docstring">    If skip_tag is true, then the outermost container tag is</tt> </tt>
-<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line"><tt class="py-docstring">    not returned (just its contents)."""</tt> </tt>
-<a name="L683"></a><tt class="py-lineno">683</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">skip_tag</tt><tt class="py-op">:</tt> </tt>
-<a name="L684"></a><tt class="py-lineno">684</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.empty_tags" class="py-name" href="#" onclick="return doclink('link-225', 'empty_tags', 'link-95');">empty_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> </tt>
+<a name="L636"></a><tt class="py-lineno">636</tt>  <tt class="py-line">    <tt class="py-string">'param'</tt><tt class="py-op">,</tt> <tt class="py-string">'img'</tt><tt class="py-op">,</tt> <tt class="py-string">'area'</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">,</tt> <tt class="py-string">'basefont'</tt><tt class="py-op">,</tt> <tt class="py-string">'input'</tt><tt class="py-op">,</tt> </tt>
+<a name="L637"></a><tt class="py-lineno">637</tt>  <tt class="py-line">    <tt class="py-string">'base'</tt><tt class="py-op">,</tt> <tt class="py-string">'meta'</tt><tt class="py-op">,</tt> <tt class="py-string">'link'</tt><tt class="py-op">,</tt> <tt class="py-string">'col'</tt><tt class="py-op">)</tt> </tt>
+<a name="L638"></a><tt class="py-lineno">638</tt>  <tt class="py-line"> </tt>
+<a name="L639"></a><tt class="py-lineno">639</tt>  <tt class="py-line"><tt id="link-226" class="py-name" targets="Variable lxml.html.diff.block_level_tags=lxml.html.diff-module.html#block_level_tags"><a title="lxml.html.diff.block_level_tags" class="py-name" href="#" onclick="return doclink('link-226', 'block_level_tags', 'link-226');">block_level_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> </tt>
+<a name="L640"></a><tt class="py-lineno">640</tt>  <tt class="py-line">    <tt class="py-string">'address'</tt><tt class="py-op">,</tt> </tt>
+<a name="L641"></a><tt class="py-lineno">641</tt>  <tt class="py-line">    <tt class="py-string">'blockquote'</tt><tt class="py-op">,</tt> </tt>
+<a name="L642"></a><tt class="py-lineno">642</tt>  <tt class="py-line">    <tt class="py-string">'center'</tt><tt class="py-op">,</tt> </tt>
+<a name="L643"></a><tt class="py-lineno">643</tt>  <tt class="py-line">    <tt class="py-string">'dir'</tt><tt class="py-op">,</tt> </tt>
+<a name="L644"></a><tt class="py-lineno">644</tt>  <tt class="py-line">    <tt class="py-string">'div'</tt><tt class="py-op">,</tt> </tt>
+<a name="L645"></a><tt class="py-lineno">645</tt>  <tt class="py-line">    <tt class="py-string">'dl'</tt><tt class="py-op">,</tt> </tt>
+<a name="L646"></a><tt class="py-lineno">646</tt>  <tt class="py-line">    <tt class="py-string">'fieldset'</tt><tt class="py-op">,</tt> </tt>
+<a name="L647"></a><tt class="py-lineno">647</tt>  <tt class="py-line">    <tt class="py-string">'form'</tt><tt class="py-op">,</tt> </tt>
+<a name="L648"></a><tt class="py-lineno">648</tt>  <tt class="py-line">    <tt class="py-string">'h1'</tt><tt class="py-op">,</tt> </tt>
+<a name="L649"></a><tt class="py-lineno">649</tt>  <tt class="py-line">    <tt class="py-string">'h2'</tt><tt class="py-op">,</tt> </tt>
+<a name="L650"></a><tt class="py-lineno">650</tt>  <tt class="py-line">    <tt class="py-string">'h3'</tt><tt class="py-op">,</tt> </tt>
+<a name="L651"></a><tt class="py-lineno">651</tt>  <tt class="py-line">    <tt class="py-string">'h4'</tt><tt class="py-op">,</tt> </tt>
+<a name="L652"></a><tt class="py-lineno">652</tt>  <tt class="py-line">    <tt class="py-string">'h5'</tt><tt class="py-op">,</tt> </tt>
+<a name="L653"></a><tt class="py-lineno">653</tt>  <tt class="py-line">    <tt class="py-string">'h6'</tt><tt class="py-op">,</tt> </tt>
+<a name="L654"></a><tt class="py-lineno">654</tt>  <tt class="py-line">    <tt class="py-string">'hr'</tt><tt class="py-op">,</tt> </tt>
+<a name="L655"></a><tt class="py-lineno">655</tt>  <tt class="py-line">    <tt class="py-string">'isindex'</tt><tt class="py-op">,</tt> </tt>
+<a name="L656"></a><tt class="py-lineno">656</tt>  <tt class="py-line">    <tt class="py-string">'menu'</tt><tt class="py-op">,</tt> </tt>
+<a name="L657"></a><tt class="py-lineno">657</tt>  <tt class="py-line">    <tt class="py-string">'noframes'</tt><tt class="py-op">,</tt> </tt>
+<a name="L658"></a><tt class="py-lineno">658</tt>  <tt class="py-line">    <tt class="py-string">'noscript'</tt><tt class="py-op">,</tt> </tt>
+<a name="L659"></a><tt class="py-lineno">659</tt>  <tt class="py-line">    <tt class="py-string">'ol'</tt><tt class="py-op">,</tt> </tt>
+<a name="L660"></a><tt class="py-lineno">660</tt>  <tt class="py-line">    <tt class="py-string">'p'</tt><tt class="py-op">,</tt> </tt>
+<a name="L661"></a><tt class="py-lineno">661</tt>  <tt class="py-line">    <tt class="py-string">'pre'</tt><tt class="py-op">,</tt> </tt>
+<a name="L662"></a><tt class="py-lineno">662</tt>  <tt class="py-line">    <tt class="py-string">'table'</tt><tt class="py-op">,</tt> </tt>
+<a name="L663"></a><tt class="py-lineno">663</tt>  <tt class="py-line">    <tt class="py-string">'ul'</tt><tt class="py-op">,</tt> </tt>
+<a name="L664"></a><tt class="py-lineno">664</tt>  <tt class="py-line">    <tt class="py-op">)</tt> </tt>
+<a name="L665"></a><tt class="py-lineno">665</tt>  <tt class="py-line"> </tt>
+<a name="L666"></a><tt class="py-lineno">666</tt>  <tt class="py-line"><tt id="link-227" class="py-name" targets="Variable lxml.html.diff.block_level_container_tags=lxml.html.diff-module.html#block_level_container_tags"><a title="lxml.html.diff.block_level_container_tags" class="py-name" href="#" onclick="return doclink('link-227', 'block_level_container_tags', 'link-227');">block_level_container_tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt> </tt>
+<a name="L667"></a><tt class="py-lineno">667</tt>  <tt class="py-line">    <tt class="py-string">'dd'</tt><tt class="py-op">,</tt> </tt>
+<a name="L668"></a><tt class="py-lineno">668</tt>  <tt class="py-line">    <tt class="py-string">'dt'</tt><tt class="py-op">,</tt> </tt>
+<a name="L669"></a><tt class="py-lineno">669</tt>  <tt class="py-line">    <tt class="py-string">'frameset'</tt><tt class="py-op">,</tt> </tt>
+<a name="L670"></a><tt class="py-lineno">670</tt>  <tt class="py-line">    <tt class="py-string">'li'</tt><tt class="py-op">,</tt> </tt>
+<a name="L671"></a><tt class="py-lineno">671</tt>  <tt class="py-line">    <tt class="py-string">'tbody'</tt><tt class="py-op">,</tt> </tt>
+<a name="L672"></a><tt class="py-lineno">672</tt>  <tt class="py-line">    <tt class="py-string">'td'</tt><tt class="py-op">,</tt> </tt>
+<a name="L673"></a><tt class="py-lineno">673</tt>  <tt class="py-line">    <tt class="py-string">'tfoot'</tt><tt class="py-op">,</tt> </tt>
+<a name="L674"></a><tt class="py-lineno">674</tt>  <tt class="py-line">    <tt class="py-string">'th'</tt><tt class="py-op">,</tt> </tt>
+<a name="L675"></a><tt class="py-lineno">675</tt>  <tt class="py-line">    <tt class="py-string">'thead'</tt><tt class="py-op">,</tt> </tt>
+<a name="L676"></a><tt class="py-lineno">676</tt>  <tt class="py-line">    <tt class="py-string">'tr'</tt><tt class="py-op">,</tt> </tt>
+<a name="L677"></a><tt class="py-lineno">677</tt>  <tt class="py-line">    <tt class="py-op">)</tt> </tt>
+<a name="L678"></a><tt class="py-lineno">678</tt>  <tt class="py-line"> </tt>
+<a name="L679"></a><tt class="py-lineno">679</tt>  <tt class="py-line"> </tt>
+<a name="flatten_el"></a><div id="flatten_el-def"><a name="L680"></a><tt class="py-lineno">680</tt> <a class="py-toggle" href="#" id="flatten_el-toggle" onclick="return toggle('flatten_el');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#flatten_el">flatten_el</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">include_hrefs</tt><tt class="py-op">,</tt> <tt class="py-param">skip_tag</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="flatten_el-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="flatten_el-expanded"><a name="L681"></a><tt class="py-lineno">681</tt>  <tt class="py-line">    <tt class="py-docstring">""" Takes an lxml element el, and generates all the text chunks for</tt> </tt>
+<a name="L682"></a><tt class="py-lineno">682</tt>  <tt class="py-line"><tt class="py-docstring">    that tag.  Each start tag is a chunk, each word is a chunk, and each</tt> </tt>
+<a name="L683"></a><tt class="py-lineno">683</tt>  <tt class="py-line"><tt class="py-docstring">    end tag is a chunk.</tt> </tt>
+<a name="L684"></a><tt class="py-lineno">684</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L685"></a><tt class="py-lineno">685</tt>  <tt class="py-line"><tt class="py-docstring">    If skip_tag is true, then the outermost container tag is</tt> </tt>
+<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line"><tt class="py-docstring">    not returned (just its contents)."""</tt> </tt>
+<a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">skip_tag</tt><tt class="py-op">:</tt> </tt>
+<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-227', 'tag', 'link-98');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'img'</tt><tt class="py-op">:</tt> </tt>
-<a name="L685"></a><tt class="py-lineno">685</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-op">(</tt><tt class="py-string">'img'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-228', 'tag', 'link-100');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'img'</tt><tt class="py-op">:</tt> </tt>
+<a name="L689"></a><tt class="py-lineno">689</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-op">(</tt><tt class="py-string">'img'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-228', 'get', 'link-228');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'src'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-229" class="py-name" targets="Function lxml.html.diff.start_tag()=lxml.html.diff-module.html#start_tag"><a title="lxml.html.diff.start_tag" class="py-name" href="#" onclick="return doclink('link-229', 'start_tag', 'link-229');">start_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L686"></a><tt class="py-lineno">686</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L687"></a><tt class="py-lineno">687</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt id="link-230" class="py-name"><a title="lxml.html.diff.start_tag" class="py-name" href="#" onclick="return doclink('link-230', 'start_tag', 'link-229');">start_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L688"></a><tt class="py-lineno">688</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-231" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-229', 'get', 'link-229');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'src'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-230" class="py-name" targets="Function lxml.html.diff.start_tag()=lxml.html.diff-module.html#start_tag"><a title="lxml.html.diff.start_tag" class="py-name" href="#" onclick="return doclink('link-230', 'start_tag', 'link-230');">start_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L690"></a><tt class="py-lineno">690</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt id="link-231" class="py-name"><a title="lxml.html.diff.start_tag" class="py-name" href="#" onclick="return doclink('link-231', 'start_tag', 'link-230');">start_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L692"></a><tt class="py-lineno">692</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-232" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-231', 'tag', 'link-98');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-232" class="py-name"><a title="lxml.doctestcompare.LXMLOutputChecker.empty_tags
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-232', 'tag', 'link-100');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-233" class="py-name"><a title="lxml.doctestcompare.LXMLOutputChecker.empty_tags
 lxml.html.defs.empty_tags
-lxml.html.diff.empty_tags" class="py-name" href="#" onclick="return doclink('link-232', 'empty_tags', 'link-93');">empty_tags</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-233" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.diff.empty_tags" class="py-name" href="#" onclick="return doclink('link-233', 'empty_tags', 'link-95');">empty_tags</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-233', 'text', 'link-10');">text</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-234', 'tail', 'link-234');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L689"></a><tt class="py-lineno">689</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
-<a name="L690"></a><tt class="py-lineno">690</tt>  <tt class="py-line">    <tt class="py-name">start_words</tt> <tt class="py-op">=</tt> <tt id="link-235" class="py-name" targets="Function lxml.html.diff.split_words()=lxml.html.diff-module.html#split_words"><a title="lxml.html.diff.split_words" class="py-name" href="#" onclick="return doclink('link-235', 'split_words', 'link-235');">split_words</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-236" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-234', 'text', 'link-10');">text</a></tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-235" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-235', 'tail', 'link-235');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
+<a name="L694"></a><tt class="py-lineno">694</tt>  <tt class="py-line">    <tt class="py-name">start_words</tt> <tt class="py-op">=</tt> <tt id="link-236" class="py-name" targets="Function lxml.html.diff.split_words()=lxml.html.diff-module.html#split_words"><a title="lxml.html.diff.split_words" class="py-name" href="#" onclick="return doclink('link-236', 'split_words', 'link-236');">split_words</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-236', 'text', 'link-10');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L691"></a><tt class="py-lineno">691</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">word</tt> <tt class="py-keyword">in</tt> <tt class="py-name">start_words</tt><tt class="py-op">:</tt> </tt>
-<a name="L692"></a><tt class="py-lineno">692</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt class="py-name">html_escape</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> </tt>
-<a name="L693"></a><tt class="py-lineno">693</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
-<a name="L694"></a><tt class="py-lineno">694</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt id="link-237" class="py-name"><a title="lxml.html.diff.flatten_el" class="py-name" href="#" onclick="return doclink('link-237', 'flatten_el', 'link-174');">flatten_el</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">include_hrefs</tt><tt class="py-op">=</tt><tt class="py-name">include_hrefs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">item</tt> </tt>
-<a name="L696"></a><tt class="py-lineno">696</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-237', 'text', 'link-10');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L695"></a><tt class="py-lineno">695</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">word</tt> <tt class="py-keyword">in</tt> <tt class="py-name">start_words</tt><tt class="py-op">:</tt> </tt>
+<a name="L696"></a><tt class="py-lineno">696</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt class="py-name">html_escape</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> </tt>
+<a name="L697"></a><tt class="py-lineno">697</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
+<a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt id="link-238" class="py-name"><a title="lxml.html.diff.flatten_el" class="py-name" href="#" onclick="return doclink('link-238', 'flatten_el', 'link-176');">flatten_el</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">include_hrefs</tt><tt class="py-op">=</tt><tt class="py-name">include_hrefs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L699"></a><tt class="py-lineno">699</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">item</tt> </tt>
+<a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-238', 'tag', 'link-98');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'a'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-239" class="py-name"><a title="lxml.etree._Attrib.get
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-239', 'tag', 'link-100');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'a'</tt> <tt class="py-keyword">and</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-239', 'get', 'link-228');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">include_hrefs</tt><tt class="py-op">:</tt> </tt>
-<a name="L697"></a><tt class="py-lineno">697</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-240', 'get', 'link-229');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-name">include_hrefs</tt><tt class="py-op">:</tt> </tt>
+<a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-240', 'get', 'link-228');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L698"></a><tt class="py-lineno">698</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">skip_tag</tt><tt class="py-op">:</tt> </tt>
-<a name="L699"></a><tt class="py-lineno">699</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt id="link-241" class="py-name" targets="Function lxml.html.diff.end_tag()=lxml.html.diff-module.html#end_tag"><a title="lxml.html.diff.end_tag" class="py-name" href="#" onclick="return doclink('link-241', 'end_tag', 'link-241');">end_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L700"></a><tt class="py-lineno">700</tt>  <tt class="py-line">        <tt class="py-name">end_words</tt> <tt class="py-op">=</tt> <tt id="link-242" class="py-name"><a title="lxml.html.diff.split_words" class="py-name" href="#" onclick="return doclink('link-242', 'split_words', 'link-235');">split_words</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-243" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-243', 'tail', 'link-234');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L701"></a><tt class="py-lineno">701</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">word</tt> <tt class="py-keyword">in</tt> <tt class="py-name">end_words</tt><tt class="py-op">:</tt> </tt>
-<a name="L702"></a><tt class="py-lineno">702</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">html_escape</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line"> </tt>
-<a name="split_words"></a><div id="split_words-def"><a name="L704"></a><tt class="py-lineno">704</tt> <a class="py-toggle" href="#" id="split_words-toggle" onclick="return toggle('split_words');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#split_words">split_words</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="split_words-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="split_words-expanded"><a name="L705"></a><tt class="py-lineno">705</tt>  <tt class="py-line">    <tt class="py-docstring">""" Splits some text into words. Includes trailing whitespace (one</tt> </tt>
-<a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line"><tt class="py-docstring">    space) on each word when appropriate.  """</tt> </tt>
-<a name="L707"></a><tt class="py-lineno">707</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-244" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-241', 'get', 'link-229');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'href'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L702"></a><tt class="py-lineno">702</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">skip_tag</tt><tt class="py-op">:</tt> </tt>
+<a name="L703"></a><tt class="py-lineno">703</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt id="link-242" class="py-name" targets="Function lxml.html.diff.end_tag()=lxml.html.diff-module.html#end_tag"><a title="lxml.html.diff.end_tag" class="py-name" href="#" onclick="return doclink('link-242', 'end_tag', 'link-242');">end_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L704"></a><tt class="py-lineno">704</tt>  <tt class="py-line">        <tt class="py-name">end_words</tt> <tt class="py-op">=</tt> <tt id="link-243" class="py-name"><a title="lxml.html.diff.split_words" class="py-name" href="#" onclick="return doclink('link-243', 'split_words', 'link-236');">split_words</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-244', 'tail', 'link-235');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L705"></a><tt class="py-lineno">705</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">word</tt> <tt class="py-keyword">in</tt> <tt class="py-name">end_words</tt><tt class="py-op">:</tt> </tt>
+<a name="L706"></a><tt class="py-lineno">706</tt>  <tt class="py-line">            <tt class="py-keyword">yield</tt> <tt class="py-name">html_escape</tt><tt class="py-op">(</tt><tt class="py-name">word</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L707"></a><tt class="py-lineno">707</tt>  <tt class="py-line"> </tt>
+<a name="L708"></a><tt class="py-lineno">708</tt>  <tt class="py-line"><tt id="link-245" class="py-name" targets="Variable lxml.html.diff.split_words_re=lxml.html.diff-module.html#split_words_re"><a title="lxml.html.diff.split_words_re" class="py-name" href="#" onclick="return doclink('link-245', 'split_words_re', 'link-245');">split_words_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'\S+(?:\s+|$)'</tt><tt class="py-op">,</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name" targets="Variable lxml.html.builder.U=lxml.html.builder-module.html#U"><a title="lxml.html.builder.U" class="py-name" href="#" onclick="return doclink('link-246', 'U', 'link-246');">U</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line"> </tt>
+<a name="split_words"></a><div id="split_words-def"><a name="L710"></a><tt class="py-lineno">710</tt> <a class="py-toggle" href="#" id="split_words-toggle" onclick="return toggle('split_words');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#split_words">split_words</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="split_words-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="split_words-expanded"><a name="L711"></a><tt class="py-lineno">711</tt>  <tt class="py-line">    <tt class="py-docstring">""" Splits some text into words. Includes trailing whitespace</tt> </tt>
+<a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line"><tt class="py-docstring">    on each word when appropriate.  """</tt> </tt>
+<a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-247" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-244', 'text', 'link-10');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-245" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-247', 'text', 'link-10');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-248" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-245', 'text', 'link-10');">text</a></tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-246', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L708"></a><tt class="py-lineno">708</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L709"></a><tt class="py-lineno">709</tt>  <tt class="py-line">    <tt class="py-name">words</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">w</tt> <tt class="py-op">+</tt> <tt class="py-string">' '</tt> <tt class="py-keyword">for</tt> <tt class="py-name">w</tt> <tt class="py-keyword">in</tt> <tt id="link-247" class="py-name"><a title="lxml.etree.QName.text
-lxml.etree._Element.text
-lxml.etree._Entity.text
-lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-247', 'text', 'link-10');">text</a></tt><tt class="py-op">.</tt><tt id="link-248" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-248', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L710"></a><tt class="py-lineno">710</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-249" class="py-name"><a title="lxml.html.diff.end_whitespace_re" class="py-name" href="#" onclick="return doclink('link-249', 'end_whitespace_re', 'link-204');">end_whitespace_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt id="link-250" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-248', 'text', 'link-10');">text</a></tt><tt class="py-op">.</tt><tt id="link-249" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-249', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L714"></a><tt class="py-lineno">714</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L715"></a><tt class="py-lineno">715</tt>  <tt class="py-line"> </tt>
+<a name="L716"></a><tt class="py-lineno">716</tt>  <tt class="py-line">    <tt class="py-name">words</tt> <tt class="py-op">=</tt> <tt id="link-250" class="py-name"><a title="lxml.html.diff.split_words_re" class="py-name" href="#" onclick="return doclink('link-250', 'split_words_re', 'link-245');">split_words_re</a></tt><tt class="py-op">.</tt><tt id="link-251" class="py-name" targets="Method lxml.etree._Element.findall()=lxml.etree._Element-class.html#findall,Method lxml.etree._ElementTree.findall()=lxml.etree._ElementTree-class.html#findall"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-251', 'findall', 'link-251');">findall</a></tt><tt class="py-op">(</tt><tt id="link-252" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-250', 'text', 'link-10');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L711"></a><tt class="py-lineno">711</tt>  <tt class="py-line">        <tt class="py-name">words</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">words</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L712"></a><tt class="py-lineno">712</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">words</tt> </tt>
-</div><a name="L713"></a><tt class="py-lineno">713</tt>  <tt class="py-line"> </tt>
-<a name="L714"></a><tt class="py-lineno">714</tt>  <tt class="py-line"><tt id="link-251" class="py-name" targets="Variable lxml.html.diff.start_whitespace_re=lxml.html.diff-module.html#start_whitespace_re"><a title="lxml.html.diff.start_whitespace_re" class="py-name" href="#" onclick="return doclink('link-251', 'start_whitespace_re', 'link-251');">start_whitespace_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'^[ \t\n\r]'</tt><tt class="py-op">)</tt> </tt>
-<a name="L715"></a><tt class="py-lineno">715</tt>  <tt class="py-line"> </tt>
-<a name="start_tag"></a><div id="start_tag-def"><a name="L716"></a><tt class="py-lineno">716</tt> <a class="py-toggle" href="#" id="start_tag-toggle" onclick="return toggle('start_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#start_tag">start_tag</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="start_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="start_tag-expanded"><a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line"><tt class="py-docstring">    The text representation of the start tag for a tag.</tt> </tt>
-<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L721"></a><tt class="py-lineno">721</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-252', 'text', 'link-10');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L717"></a><tt class="py-lineno">717</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">words</tt> </tt>
+</div><a name="L718"></a><tt class="py-lineno">718</tt>  <tt class="py-line"> </tt>
+<a name="L719"></a><tt class="py-lineno">719</tt>  <tt class="py-line"><tt id="link-253" class="py-name" targets="Variable lxml.html.diff.start_whitespace_re=lxml.html.diff-module.html#start_whitespace_re"><a title="lxml.html.diff.start_whitespace_re" class="py-name" href="#" onclick="return doclink('link-253', 'start_whitespace_re', 'link-253');">start_whitespace_re</a></tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">compile</tt><tt class="py-op">(</tt><tt class="py-string">r'^[ \t\n\r]'</tt><tt class="py-op">)</tt> </tt>
+<a name="L720"></a><tt class="py-lineno">720</tt>  <tt class="py-line"> </tt>
+<a name="start_tag"></a><div id="start_tag-def"><a name="L721"></a><tt class="py-lineno">721</tt> <a class="py-toggle" href="#" id="start_tag-toggle" onclick="return toggle('start_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#start_tag">start_tag</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="start_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="start_tag-expanded"><a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line"><tt class="py-docstring">    The text representation of the start tag for a tag.</tt> </tt>
+<a name="L724"></a><tt class="py-lineno">724</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;%s%s&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
+<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-254" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-252', 'tag', 'link-98');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">' %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-253" class="py-name"><a title="lxml.etree.DTD.name
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-254', 'tag', 'link-100');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">' %s="%s"'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-255" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-253', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">html_escape</tt><tt class="py-op">(</tt><tt id="link-254" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-255', 'name', 'link-92');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">html_escape</tt><tt class="py-op">(</tt><tt id="link-256" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-254', 'value', 'link-254');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L722"></a><tt class="py-lineno">722</tt>  <tt class="py-line">                         <tt class="py-keyword">for</tt> <tt id="link-255" class="py-name"><a title="lxml.etree.DTD.name
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-256', 'value', 'link-256');">value</a></tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">                         <tt class="py-keyword">for</tt> <tt id="link-257" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-255', 'name', 'link-90');">name</a></tt><tt class="py-op">,</tt> <tt id="link-256" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-257', 'name', 'link-92');">name</a></tt><tt class="py-op">,</tt> <tt id="link-258" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-256', 'value', 'link-254');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><a title="lxml.etree._Element.attrib
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-258', 'value', 'link-256');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-257', 'attrib', 'link-257');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-258" class="py-name" targets="Method lxml.etree._Attrib.items()=lxml.etree._Attrib-class.html#items,Method lxml.etree._Element.items()=lxml.etree._Element-class.html#items,Method lxml.etree._IDDict.items()=lxml.etree._IDDict-class.html#items"><a title="lxml.etree._Attrib.items
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-259', 'attrib', 'link-259');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-260" class="py-name" targets="Method lxml.etree._Attrib.items()=lxml.etree._Attrib-class.html#items,Method lxml.etree._Element.items()=lxml.etree._Element-class.html#items,Method lxml.etree._IDDict.items()=lxml.etree._IDDict-class.html#items"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-258', 'items', 'link-258');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L723"></a><tt class="py-lineno">723</tt>  <tt class="py-line"> </tt>
-<a name="end_tag"></a><div id="end_tag-def"><a name="L724"></a><tt class="py-lineno">724</tt> <a class="py-toggle" href="#" id="end_tag-toggle" onclick="return toggle('end_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#end_tag">end_tag</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="end_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="end_tag-expanded"><a name="L725"></a><tt class="py-lineno">725</tt>  <tt class="py-line">    <tt class="py-docstring">""" The text representation of an end tag for a tag.  Includes</tt> </tt>
-<a name="L726"></a><tt class="py-lineno">726</tt>  <tt class="py-line"><tt class="py-docstring">    trailing whitespace when appropriate.  """</tt> </tt>
-<a name="L727"></a><tt class="py-lineno">727</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-259', 'tail', 'link-234');">tail</a></tt> <tt class="py-keyword">and</tt> <tt id="link-260" class="py-name"><a title="lxml.html.diff.start_whitespace_re" class="py-name" href="#" onclick="return doclink('link-260', 'start_whitespace_re', 'link-251');">start_whitespace_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-261', 'tail', 'link-234');">tail</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L728"></a><tt class="py-lineno">728</tt>  <tt class="py-line">        <tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt> </tt>
-<a name="L729"></a><tt class="py-lineno">729</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L730"></a><tt class="py-lineno">730</tt>  <tt class="py-line">        <tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
-<a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;/%s&gt;%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-260', 'items', 'link-260');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L728"></a><tt class="py-lineno">728</tt>  <tt class="py-line"> </tt>
+<a name="end_tag"></a><div id="end_tag-def"><a name="L729"></a><tt class="py-lineno">729</tt> <a class="py-toggle" href="#" id="end_tag-toggle" onclick="return toggle('end_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#end_tag">end_tag</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="end_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="end_tag-expanded"><a name="L730"></a><tt class="py-lineno">730</tt>  <tt class="py-line">    <tt class="py-docstring">""" The text representation of an end tag for a tag.  Includes</tt> </tt>
+<a name="L731"></a><tt class="py-lineno">731</tt>  <tt class="py-line"><tt class="py-docstring">    trailing whitespace when appropriate.  """</tt> </tt>
+<a name="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-261" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-261', 'tail', 'link-235');">tail</a></tt> <tt class="py-keyword">and</tt> <tt id="link-262" class="py-name"><a title="lxml.html.diff.start_whitespace_re" class="py-name" href="#" onclick="return doclink('link-262', 'start_whitespace_re', 'link-253');">start_whitespace_re</a></tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-263" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-263', 'tail', 'link-235');">tail</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L733"></a><tt class="py-lineno">733</tt>  <tt class="py-line">        <tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-string">' '</tt> </tt>
+<a name="L734"></a><tt class="py-lineno">734</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L735"></a><tt class="py-lineno">735</tt>  <tt class="py-line">        <tt class="py-name">extra</tt> <tt class="py-op">=</tt> <tt class="py-string">''</tt> </tt>
+<a name="L736"></a><tt class="py-lineno">736</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">'&lt;/%s&gt;%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-264" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-262', 'tag', 'link-98');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">extra</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L732"></a><tt class="py-lineno">732</tt>  <tt class="py-line"> </tt>
-<a name="is_word"></a><div id="is_word-def"><a name="L733"></a><tt class="py-lineno">733</tt> <a class="py-toggle" href="#" id="is_word-toggle" onclick="return toggle('is_word');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#is_word">is_word</a><tt class="py-op">(</tt><tt class="py-param">tok</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="is_word-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="is_word-expanded"><a name="L734"></a><tt class="py-lineno">734</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-keyword">not</tt> <tt class="py-name">tok</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L735"></a><tt class="py-lineno">735</tt>  <tt class="py-line"> </tt>
-<a name="is_end_tag"></a><div id="is_end_tag-def"><a name="L736"></a><tt class="py-lineno">736</tt> <a class="py-toggle" href="#" id="is_end_tag-toggle" onclick="return toggle('is_end_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#is_end_tag">is_end_tag</a><tt class="py-op">(</tt><tt class="py-param">tok</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="is_end_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="is_end_tag-expanded"><a name="L737"></a><tt class="py-lineno">737</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tok</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L738"></a><tt class="py-lineno">738</tt>  <tt class="py-line"> </tt>
-<a name="is_start_tag"></a><div id="is_start_tag-def"><a name="L739"></a><tt class="py-lineno">739</tt> <a class="py-toggle" href="#" id="is_start_tag-toggle" onclick="return toggle('is_start_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#is_start_tag">is_start_tag</a><tt class="py-op">(</tt><tt class="py-param">tok</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="is_start_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="is_start_tag-expanded"><a name="L740"></a><tt class="py-lineno">740</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tok</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">tok</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L741"></a><tt class="py-lineno">741</tt>  <tt class="py-line"> </tt>
-<a name="fixup_ins_del_tags"></a><div id="fixup_ins_del_tags-def"><a name="L742"></a><tt class="py-lineno">742</tt> <a class="py-toggle" href="#" id="fixup_ins_del_tags-toggle" onclick="return toggle('fixup_ins_del_tags');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#fixup_ins_del_tags">fixup_ins_del_tags</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="fixup_ins_del_tags-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fixup_ins_del_tags-expanded"><a name="L743"></a><tt class="py-lineno">743</tt>  <tt class="py-line">    <tt class="py-docstring">""" Given an html string, move any &lt;ins&gt; or &lt;del&gt; tags inside of any</tt> </tt>
-<a name="L744"></a><tt class="py-lineno">744</tt>  <tt class="py-line"><tt class="py-docstring">    block-level elements, e.g. transform &lt;ins&gt;&lt;p&gt;word&lt;/p&gt;&lt;/ins&gt; to</tt> </tt>
-<a name="L745"></a><tt class="py-lineno">745</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;p&gt;&lt;ins&gt;word&lt;/ins&gt;&lt;/p&gt; """</tt> </tt>
-<a name="L746"></a><tt class="py-lineno">746</tt>  <tt class="py-line">    <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-263" class="py-name"><a title="lxml.html.diff.parse_html" class="py-name" href="#" onclick="return doclink('link-263', 'parse_html', 'link-172');">parse_html</a></tt><tt class="py-op">(</tt><tt id="link-264" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-264', 'tag', 'link-100');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">extra</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L737"></a><tt class="py-lineno">737</tt>  <tt class="py-line"> </tt>
+<a name="is_word"></a><div id="is_word-def"><a name="L738"></a><tt class="py-lineno">738</tt> <a class="py-toggle" href="#" id="is_word-toggle" onclick="return toggle('is_word');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#is_word">is_word</a><tt class="py-op">(</tt><tt class="py-param">tok</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="is_word-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="is_word-expanded"><a name="L739"></a><tt class="py-lineno">739</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-keyword">not</tt> <tt class="py-name">tok</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L740"></a><tt class="py-lineno">740</tt>  <tt class="py-line"> </tt>
+<a name="is_end_tag"></a><div id="is_end_tag-def"><a name="L741"></a><tt class="py-lineno">741</tt> <a class="py-toggle" href="#" id="is_end_tag-toggle" onclick="return toggle('is_end_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#is_end_tag">is_end_tag</a><tt class="py-op">(</tt><tt class="py-param">tok</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="is_end_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="is_end_tag-expanded"><a name="L742"></a><tt class="py-lineno">742</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tok</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L743"></a><tt class="py-lineno">743</tt>  <tt class="py-line"> </tt>
+<a name="is_start_tag"></a><div id="is_start_tag-def"><a name="L744"></a><tt class="py-lineno">744</tt> <a class="py-toggle" href="#" id="is_start_tag-toggle" onclick="return toggle('is_start_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#is_start_tag">is_start_tag</a><tt class="py-op">(</tt><tt class="py-param">tok</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="is_start_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="is_start_tag-expanded"><a name="L745"></a><tt class="py-lineno">745</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tok</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-keyword">not</tt> <tt class="py-name">tok</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L746"></a><tt class="py-lineno">746</tt>  <tt class="py-line"> </tt>
+<a name="fixup_ins_del_tags"></a><div id="fixup_ins_del_tags-def"><a name="L747"></a><tt class="py-lineno">747</tt> <a class="py-toggle" href="#" id="fixup_ins_del_tags-toggle" onclick="return toggle('fixup_ins_del_tags');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#fixup_ins_del_tags">fixup_ins_del_tags</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="fixup_ins_del_tags-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="fixup_ins_del_tags-expanded"><a name="L748"></a><tt class="py-lineno">748</tt>  <tt class="py-line">    <tt class="py-docstring">""" Given an html string, move any &lt;ins&gt; or &lt;del&gt; tags inside of any</tt> </tt>
+<a name="L749"></a><tt class="py-lineno">749</tt>  <tt class="py-line"><tt class="py-docstring">    block-level elements, e.g. transform &lt;ins&gt;&lt;p&gt;word&lt;/p&gt;&lt;/ins&gt; to</tt> </tt>
+<a name="L750"></a><tt class="py-lineno">750</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;p&gt;&lt;ins&gt;word&lt;/ins&gt;&lt;/p&gt; """</tt> </tt>
+<a name="L751"></a><tt class="py-lineno">751</tt>  <tt class="py-line">    <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-265" class="py-name"><a title="lxml.html.diff.parse_html" class="py-name" href="#" onclick="return doclink('link-265', 'parse_html', 'link-174');">parse_html</a></tt><tt class="py-op">(</tt><tt id="link-266" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-264', 'html', 'link-3');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">cleanup</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L747"></a><tt class="py-lineno">747</tt>  <tt class="py-line">    <tt id="link-265" class="py-name" targets="Function lxml.html.diff._fixup_ins_del_tags()=lxml.html.diff-module.html#_fixup_ins_del_tags"><a title="lxml.html.diff._fixup_ins_del_tags" class="py-name" href="#" onclick="return doclink('link-265', '_fixup_ins_del_tags', 'link-265');">_fixup_ins_del_tags</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
-<a name="L748"></a><tt class="py-lineno">748</tt>  <tt class="py-line">    <tt id="link-266" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-266', 'html', 'link-3');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">cleanup</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L752"></a><tt class="py-lineno">752</tt>  <tt class="py-line">    <tt id="link-267" class="py-name" targets="Function lxml.html.diff._fixup_ins_del_tags()=lxml.html.diff-module.html#_fixup_ins_del_tags"><a title="lxml.html.diff._fixup_ins_del_tags" class="py-name" href="#" onclick="return doclink('link-267', '_fixup_ins_del_tags', 'link-267');">_fixup_ins_del_tags</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">)</tt> </tt>
+<a name="L753"></a><tt class="py-lineno">753</tt>  <tt class="py-line">    <tt id="link-268" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-266', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-267" class="py-name" targets="Function lxml.html.diff.serialize_html_fragment()=lxml.html.diff-module.html#serialize_html_fragment"><a title="lxml.html.diff.serialize_html_fragment" class="py-name" href="#" onclick="return doclink('link-267', 'serialize_html_fragment', 'link-267');">serialize_html_fragment</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-name">skip_outer</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L749"></a><tt class="py-lineno">749</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-268" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-268', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-269" class="py-name" targets="Function lxml.html.diff.serialize_html_fragment()=lxml.html.diff-module.html#serialize_html_fragment"><a title="lxml.html.diff.serialize_html_fragment" class="py-name" href="#" onclick="return doclink('link-269', 'serialize_html_fragment', 'link-269');">serialize_html_fragment</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-name">skip_outer</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L754"></a><tt class="py-lineno">754</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-270" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-268', 'html', 'link-3');">html</a></tt> </tt>
-</div><a name="L750"></a><tt class="py-lineno">750</tt>  <tt class="py-line"> </tt>
-<a name="serialize_html_fragment"></a><div id="serialize_html_fragment-def"><a name="L751"></a><tt class="py-lineno">751</tt> <a class="py-toggle" href="#" id="serialize_html_fragment-toggle" onclick="return toggle('serialize_html_fragment');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#serialize_html_fragment">serialize_html_fragment</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">skip_outer</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="serialize_html_fragment-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="serialize_html_fragment-expanded"><a name="L752"></a><tt class="py-lineno">752</tt>  <tt class="py-line">    <tt class="py-docstring">""" Serialize a single lxml element as HTML.  The serialized form</tt> </tt>
-<a name="L753"></a><tt class="py-lineno">753</tt>  <tt class="py-line"><tt class="py-docstring">    includes the elements tail.  </tt> </tt>
-<a name="L754"></a><tt class="py-lineno">754</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
-<a name="L755"></a><tt class="py-lineno">755</tt>  <tt class="py-line"><tt class="py-docstring">    If skip_outer is true, then don't serialize the outermost tag</tt> </tt>
-<a name="L756"></a><tt class="py-lineno">756</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L757"></a><tt class="py-lineno">757</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-269" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-269', 'basestring', 'link-7');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt> </tt>
-<a name="L758"></a><tt class="py-lineno">758</tt>  <tt class="py-line">        <tt class="py-string">"You should pass in an element, not a string like %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L759"></a><tt class="py-lineno">759</tt>  <tt class="py-line">    <tt id="link-270" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-270', 'html', 'link-3');">html</a></tt> </tt>
+</div><a name="L755"></a><tt class="py-lineno">755</tt>  <tt class="py-line"> </tt>
+<a name="serialize_html_fragment"></a><div id="serialize_html_fragment-def"><a name="L756"></a><tt class="py-lineno">756</tt> <a class="py-toggle" href="#" id="serialize_html_fragment-toggle" onclick="return toggle('serialize_html_fragment');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#serialize_html_fragment">serialize_html_fragment</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">skip_outer</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="serialize_html_fragment-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="serialize_html_fragment-expanded"><a name="L757"></a><tt class="py-lineno">757</tt>  <tt class="py-line">    <tt class="py-docstring">""" Serialize a single lxml element as HTML.  The serialized form</tt> </tt>
+<a name="L758"></a><tt class="py-lineno">758</tt>  <tt class="py-line"><tt class="py-docstring">    includes the elements tail.  </tt> </tt>
+<a name="L759"></a><tt class="py-lineno">759</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L760"></a><tt class="py-lineno">760</tt>  <tt class="py-line"><tt class="py-docstring">    If skip_outer is true, then don't serialize the outermost tag</tt> </tt>
+<a name="L761"></a><tt class="py-lineno">761</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L762"></a><tt class="py-lineno">762</tt>  <tt class="py-line">    <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-271" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-271', 'basestring', 'link-7');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt> </tt>
+<a name="L763"></a><tt class="py-lineno">763</tt>  <tt class="py-line">        <tt class="py-string">"You should pass in an element, not a string like %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L764"></a><tt class="py-lineno">764</tt>  <tt class="py-line">    <tt id="link-272" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-270', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-271" class="py-name"><a title="lxml.etree
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-272', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-273" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-271', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-272" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-272', 'tostring', 'link-272');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-273" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-273', 'method', 'link-273');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">,</tt> <tt id="link-274" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-274', 'encoding', 'link-274');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
-<a name="L760"></a><tt class="py-lineno">760</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">skip_outer</tt><tt class="py-op">:</tt> </tt>
-<a name="L761"></a><tt class="py-lineno">761</tt>  <tt class="py-line">        <tt class="py-comment"># Get rid of the extra starting tag:</tt> </tt>
-<a name="L762"></a><tt class="py-lineno">762</tt>  <tt class="py-line">        <tt id="link-275" class="py-name"><a title="lxml.html
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-273', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-274" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-274', 'tostring', 'link-274');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-275" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-275', 'method', 'link-275');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"html"</tt><tt class="py-op">,</tt> <tt id="link-276" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-276', 'encoding', 'link-276');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
+<a name="L765"></a><tt class="py-lineno">765</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">skip_outer</tt><tt class="py-op">:</tt> </tt>
+<a name="L766"></a><tt class="py-lineno">766</tt>  <tt class="py-line">        <tt class="py-comment"># Get rid of the extra starting tag:</tt> </tt>
+<a name="L767"></a><tt class="py-lineno">767</tt>  <tt class="py-line">        <tt id="link-277" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-275', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-276" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-277', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-278" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-276', 'html', 'link-3');">html</a></tt><tt class="py-op">[</tt><tt id="link-277" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-278', 'html', 'link-3');">html</a></tt><tt class="py-op">[</tt><tt id="link-279" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-277', 'html', 'link-3');">html</a></tt><tt class="py-op">.</tt><tt id="link-278" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-279', 'html', 'link-3');">html</a></tt><tt class="py-op">.</tt><tt id="link-280" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-278', 'find', 'link-278');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L763"></a><tt class="py-lineno">763</tt>  <tt class="py-line">        <tt class="py-comment"># Get rid of the extra end tag:</tt> </tt>
-<a name="L764"></a><tt class="py-lineno">764</tt>  <tt class="py-line">        <tt id="link-279" class="py-name"><a title="lxml.html
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-280', 'find', 'link-280');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L768"></a><tt class="py-lineno">768</tt>  <tt class="py-line">        <tt class="py-comment"># Get rid of the extra end tag:</tt> </tt>
+<a name="L769"></a><tt class="py-lineno">769</tt>  <tt class="py-line">        <tt id="link-281" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-279', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-280" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-281', 'html', 'link-3');">html</a></tt> <tt class="py-op">=</tt> <tt id="link-282" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-280', 'html', 'link-3');">html</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt id="link-281" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-282', 'html', 'link-3');">html</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt id="link-283" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-281', 'html', 'link-3');">html</a></tt><tt class="py-op">.</tt><tt class="py-name">rfind</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
-<a name="L765"></a><tt class="py-lineno">765</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-282" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-283', 'html', 'link-3');">html</a></tt><tt class="py-op">.</tt><tt class="py-name">rfind</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> </tt>
+<a name="L770"></a><tt class="py-lineno">770</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-284" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-282', 'html', 'link-3');">html</a></tt><tt class="py-op">.</tt><tt id="link-283" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-283', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L766"></a><tt class="py-lineno">766</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L767"></a><tt class="py-lineno">767</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-284" class="py-name"><a title="lxml.html
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-284', 'html', 'link-3');">html</a></tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-285', 'strip', 'link-16');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L771"></a><tt class="py-lineno">771</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L772"></a><tt class="py-lineno">772</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-286" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-284', 'html', 'link-3');">html</a></tt> </tt>
-</div><a name="L768"></a><tt class="py-lineno">768</tt>  <tt class="py-line"> </tt>
-<a name="_fixup_ins_del_tags"></a><div id="_fixup_ins_del_tags-def"><a name="L769"></a><tt class="py-lineno">769</tt> <a class="py-toggle" href="#" id="_fixup_ins_del_tags-toggle" onclick="return toggle('_fixup_ins_del_tags');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#_fixup_ins_del_tags">_fixup_ins_del_tags</a><tt class="py-op">(</tt><tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_fixup_ins_del_tags-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_fixup_ins_del_tags-expanded"><a name="L770"></a><tt class="py-lineno">770</tt>  <tt class="py-line">    <tt class="py-docstring">"""fixup_ins_del_tags that works on an lxml document in-place</tt> </tt>
-<a name="L771"></a><tt class="py-lineno">771</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L772"></a><tt class="py-lineno">772</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-285" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-286', 'html', 'link-3');">html</a></tt> </tt>
+</div><a name="L773"></a><tt class="py-lineno">773</tt>  <tt class="py-line"> </tt>
+<a name="_fixup_ins_del_tags"></a><div id="_fixup_ins_del_tags-def"><a name="L774"></a><tt class="py-lineno">774</tt> <a class="py-toggle" href="#" id="_fixup_ins_del_tags-toggle" onclick="return toggle('_fixup_ins_del_tags');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#_fixup_ins_del_tags">_fixup_ins_del_tags</a><tt class="py-op">(</tt><tt class="py-param">doc</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_fixup_ins_del_tags-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_fixup_ins_del_tags-expanded"><a name="L775"></a><tt class="py-lineno">775</tt>  <tt class="py-line">    <tt class="py-docstring">"""fixup_ins_del_tags that works on an lxml document in-place</tt> </tt>
+<a name="L776"></a><tt class="py-lineno">776</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L777"></a><tt class="py-lineno">777</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-287" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-285', 'tag', 'link-98');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'ins'</tt><tt class="py-op">,</tt> <tt class="py-string">'del'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
-<a name="L773"></a><tt class="py-lineno">773</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-286" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-287', 'tag', 'link-100');">tag</a></tt> <tt class="py-keyword">in</tt> <tt class="py-op">[</tt><tt class="py-string">'ins'</tt><tt class="py-op">,</tt> <tt class="py-string">'del'</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L778"></a><tt class="py-lineno">778</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-288" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
 lxml.etree._ElementTree.xpath
-lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-286', 'xpath', 'link-286');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'descendant-or-self::%s'</tt> <tt class="py-op">%</tt> <tt id="link-287" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-288', 'xpath', 'link-288');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'descendant-or-self::%s'</tt> <tt class="py-op">%</tt> <tt id="link-289" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-287', 'tag', 'link-98');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L774"></a><tt class="py-lineno">774</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-288" class="py-name" targets="Function lxml.html.diff._contains_block_level_tag()=lxml.html.diff-module.html#_contains_block_level_tag"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-288', '_contains_block_level_tag', 'link-288');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L775"></a><tt class="py-lineno">775</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
-<a name="L776"></a><tt class="py-lineno">776</tt>  <tt class="py-line">            <tt id="link-289" class="py-name" targets="Function lxml.html.diff._move_el_inside_block()=lxml.html.diff-module.html#_move_el_inside_block"><a title="lxml.html.diff._move_el_inside_block" class="py-name" href="#" onclick="return doclink('link-289', '_move_el_inside_block', 'link-289');">_move_el_inside_block</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-290" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-289', 'tag', 'link-100');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L779"></a><tt class="py-lineno">779</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-290" class="py-name" targets="Function lxml.html.diff._contains_block_level_tag()=lxml.html.diff-module.html#_contains_block_level_tag"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-290', '_contains_block_level_tag', 'link-290');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L780"></a><tt class="py-lineno">780</tt>  <tt class="py-line">                <tt class="py-keyword">continue</tt> </tt>
+<a name="L781"></a><tt class="py-lineno">781</tt>  <tt class="py-line">            <tt id="link-291" class="py-name" targets="Function lxml.html.diff._move_el_inside_block()=lxml.html.diff-module.html#_move_el_inside_block"><a title="lxml.html.diff._move_el_inside_block" class="py-name" href="#" onclick="return doclink('link-291', '_move_el_inside_block', 'link-291');">_move_el_inside_block</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt id="link-292" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-290', 'tag', 'link-98');">tag</a></tt><tt class="py-op">=</tt><tt id="link-291" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-292', 'tag', 'link-100');">tag</a></tt><tt class="py-op">=</tt><tt id="link-293" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-291', 'tag', 'link-98');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L777"></a><tt class="py-lineno">777</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-292" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tag()=lxml.html.HtmlMixin-class.html#drop_tag"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-292', 'drop_tag', 'link-292');">drop_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L778"></a><tt class="py-lineno">778</tt>  <tt class="py-line">            <tt class="py-comment">#_merge_element_contents(el)</tt> </tt>
-<a name="L779"></a><tt class="py-lineno">779</tt>  <tt class="py-line"> </tt>
-<a name="_contains_block_level_tag"></a><div id="_contains_block_level_tag-def"><a name="L780"></a><tt class="py-lineno">780</tt> <a class="py-toggle" href="#" id="_contains_block_level_tag-toggle" onclick="return toggle('_contains_block_level_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#_contains_block_level_tag">_contains_block_level_tag</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_contains_block_level_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_contains_block_level_tag-expanded"><a name="L781"></a><tt class="py-lineno">781</tt>  <tt class="py-line">    <tt class="py-docstring">"""True if the element contains any block-level elements, like &lt;p&gt;, &lt;td&gt;, etc.</tt> </tt>
-<a name="L782"></a><tt class="py-lineno">782</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L783"></a><tt class="py-lineno">783</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-293" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-293', 'tag', 'link-100');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L782"></a><tt class="py-lineno">782</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name" targets="Method lxml.html.HtmlMixin.drop_tag()=lxml.html.HtmlMixin-class.html#drop_tag"><a title="lxml.html.HtmlMixin.drop_tag" class="py-name" href="#" onclick="return doclink('link-294', 'drop_tag', 'link-294');">drop_tag</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L783"></a><tt class="py-lineno">783</tt>  <tt class="py-line">            <tt class="py-comment">#_merge_element_contents(el)</tt> </tt>
+<a name="L784"></a><tt class="py-lineno">784</tt>  <tt class="py-line"> </tt>
+<a name="_contains_block_level_tag"></a><div id="_contains_block_level_tag-def"><a name="L785"></a><tt class="py-lineno">785</tt> <a class="py-toggle" href="#" id="_contains_block_level_tag-toggle" onclick="return toggle('_contains_block_level_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#_contains_block_level_tag">_contains_block_level_tag</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_contains_block_level_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_contains_block_level_tag-expanded"><a name="L786"></a><tt class="py-lineno">786</tt>  <tt class="py-line">    <tt class="py-docstring">"""True if the element contains any block-level elements, like &lt;p&gt;, &lt;td&gt;, etc.</tt> </tt>
+<a name="L787"></a><tt class="py-lineno">787</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L788"></a><tt class="py-lineno">788</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-295" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-293', 'tag', 'link-98');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-294" class="py-name"><a title="lxml.html.diff.block_level_tags" class="py-name" href="#" onclick="return doclink('link-294', 'block_level_tags', 'link-225');">block_level_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-295" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-295', 'tag', 'link-100');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-296" class="py-name"><a title="lxml.html.diff.block_level_tags" class="py-name" href="#" onclick="return doclink('link-296', 'block_level_tags', 'link-226');">block_level_tags</a></tt> <tt class="py-keyword">or</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-297" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-295', 'tag', 'link-98');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-296" class="py-name"><a title="lxml.html.diff.block_level_container_tags" class="py-name" href="#" onclick="return doclink('link-296', 'block_level_container_tags', 'link-226');">block_level_container_tags</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L784"></a><tt class="py-lineno">784</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L785"></a><tt class="py-lineno">785</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
-<a name="L786"></a><tt class="py-lineno">786</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-297" class="py-name"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-297', '_contains_block_level_tag', 'link-288');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L787"></a><tt class="py-lineno">787</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
-<a name="L788"></a><tt class="py-lineno">788</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L789"></a><tt class="py-lineno">789</tt>  <tt class="py-line"> </tt>
-<a name="_move_el_inside_block"></a><div id="_move_el_inside_block-def"><a name="L790"></a><tt class="py-lineno">790</tt> <a class="py-toggle" href="#" id="_move_el_inside_block-toggle" onclick="return toggle('_move_el_inside_block');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#_move_el_inside_block">_move_el_inside_block</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_move_el_inside_block-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_move_el_inside_block-expanded"><a name="L791"></a><tt class="py-lineno">791</tt>  <tt class="py-line">    <tt class="py-docstring">""" helper for _fixup_ins_del_tags; actually takes the &lt;ins&gt; etc tags</tt> </tt>
-<a name="L792"></a><tt class="py-lineno">792</tt>  <tt class="py-line"><tt class="py-docstring">    and moves them inside any block-level tags.  """</tt> </tt>
-<a name="L793"></a><tt class="py-lineno">793</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
-<a name="L794"></a><tt class="py-lineno">794</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-298" class="py-name"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-298', '_contains_block_level_tag', 'link-288');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L795"></a><tt class="py-lineno">795</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
-<a name="L796"></a><tt class="py-lineno">796</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L797"></a><tt class="py-lineno">797</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
-<a name="L798"></a><tt class="py-lineno">798</tt>  <tt class="py-line">        <tt class="py-comment"># No block-level tags in any child</tt> </tt>
-<a name="L799"></a><tt class="py-lineno">799</tt>  <tt class="py-line">        <tt class="py-name">children_tag</tt> <tt class="py-op">=</tt> <tt id="link-299" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-297', 'tag', 'link-100');">tag</a></tt> <tt class="py-keyword">in</tt> <tt id="link-298" class="py-name"><a title="lxml.html.diff.block_level_container_tags" class="py-name" href="#" onclick="return doclink('link-298', 'block_level_container_tags', 'link-227');">block_level_container_tags</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L789"></a><tt class="py-lineno">789</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L790"></a><tt class="py-lineno">790</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
+<a name="L791"></a><tt class="py-lineno">791</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-299" class="py-name"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-299', '_contains_block_level_tag', 'link-290');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L792"></a><tt class="py-lineno">792</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-name">True</tt> </tt>
+<a name="L793"></a><tt class="py-lineno">793</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L794"></a><tt class="py-lineno">794</tt>  <tt class="py-line"> </tt>
+<a name="_move_el_inside_block"></a><div id="_move_el_inside_block-def"><a name="L795"></a><tt class="py-lineno">795</tt> <a class="py-toggle" href="#" id="_move_el_inside_block-toggle" onclick="return toggle('_move_el_inside_block');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#_move_el_inside_block">_move_el_inside_block</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_move_el_inside_block-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_move_el_inside_block-expanded"><a name="L796"></a><tt class="py-lineno">796</tt>  <tt class="py-line">    <tt class="py-docstring">""" helper for _fixup_ins_del_tags; actually takes the &lt;ins&gt; etc tags</tt> </tt>
+<a name="L797"></a><tt class="py-lineno">797</tt>  <tt class="py-line"><tt class="py-docstring">    and moves them inside any block-level tags.  """</tt> </tt>
+<a name="L798"></a><tt class="py-lineno">798</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">el</tt><tt class="py-op">:</tt> </tt>
+<a name="L799"></a><tt class="py-lineno">799</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-300" class="py-name"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-300', '_contains_block_level_tag', 'link-290');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L800"></a><tt class="py-lineno">800</tt>  <tt class="py-line">            <tt class="py-keyword">break</tt> </tt>
+<a name="L801"></a><tt class="py-lineno">801</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L802"></a><tt class="py-lineno">802</tt>  <tt class="py-line">        <tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L803"></a><tt class="py-lineno">803</tt>  <tt class="py-line">        <tt class="py-comment"># No block-level tags in any child</tt> </tt>
+<a name="L804"></a><tt class="py-lineno">804</tt>  <tt class="py-line">        <tt class="py-name">children_tag</tt> <tt class="py-op">=</tt> <tt id="link-301" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-299', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-300" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-301', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-302" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-300', 'Element', 'link-300');">Element</a></tt><tt class="py-op">(</tt><tt id="link-301" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-302', 'Element', 'link-302');">Element</a></tt><tt class="py-op">(</tt><tt id="link-303" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-301', 'tag', 'link-98');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L800"></a><tt class="py-lineno">800</tt>  <tt class="py-line">        <tt class="py-name">children_tag</tt><tt class="py-op">.</tt><tt id="link-302" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-303', 'tag', 'link-100');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L805"></a><tt class="py-lineno">805</tt>  <tt class="py-line">        <tt class="py-name">children_tag</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-302', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-303" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-304', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-303', 'text', 'link-10');">text</a></tt> </tt>
-<a name="L801"></a><tt class="py-lineno">801</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-304" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-305', 'text', 'link-10');">text</a></tt> </tt>
+<a name="L806"></a><tt class="py-lineno">806</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-306" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-304', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L802"></a><tt class="py-lineno">802</tt>  <tt class="py-line">        <tt class="py-name">children_tag</tt><tt class="py-op">.</tt><tt id="link-305" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-305', 'extend', 'link-50');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L803"></a><tt class="py-lineno">803</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">children_tag</tt><tt class="py-op">]</tt> </tt>
-<a name="L804"></a><tt class="py-lineno">804</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
-<a name="L805"></a><tt class="py-lineno">805</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L806"></a><tt class="py-lineno">806</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-306" class="py-name"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-306', '_contains_block_level_tag', 'link-288');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L807"></a><tt class="py-lineno">807</tt>  <tt class="py-line">            <tt id="link-307" class="py-name"><a title="lxml.html.diff._move_el_inside_block" class="py-name" href="#" onclick="return doclink('link-307', '_move_el_inside_block', 'link-289');">_move_el_inside_block</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt id="link-308" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-306', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L807"></a><tt class="py-lineno">807</tt>  <tt class="py-line">        <tt class="py-name">children_tag</tt><tt class="py-op">.</tt><tt id="link-307" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-307', 'extend', 'link-51');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L808"></a><tt class="py-lineno">808</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">children_tag</tt><tt class="py-op">]</tt> </tt>
+<a name="L809"></a><tt class="py-lineno">809</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> </tt>
+<a name="L810"></a><tt class="py-lineno">810</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L811"></a><tt class="py-lineno">811</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-308" class="py-name"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-308', '_contains_block_level_tag', 'link-290');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L812"></a><tt class="py-lineno">812</tt>  <tt class="py-line">            <tt id="link-309" class="py-name"><a title="lxml.html.diff._move_el_inside_block" class="py-name" href="#" onclick="return doclink('link-309', '_move_el_inside_block', 'link-291');">_move_el_inside_block</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt id="link-310" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-308', 'tag', 'link-98');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L808"></a><tt class="py-lineno">808</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-309" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-309', 'tail', 'link-234');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L809"></a><tt class="py-lineno">809</tt>  <tt class="py-line">                <tt class="py-name">tail_tag</tt> <tt class="py-op">=</tt> <tt id="link-310" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-310', 'tag', 'link-100');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L813"></a><tt class="py-lineno">813</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-311" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-311', 'tail', 'link-235');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L814"></a><tt class="py-lineno">814</tt>  <tt class="py-line">                <tt class="py-name">tail_tag</tt> <tt class="py-op">=</tt> <tt id="link-312" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-310', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-311" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-312', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-311', 'Element', 'link-300');">Element</a></tt><tt class="py-op">(</tt><tt id="link-312" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-313', 'Element', 'link-302');">Element</a></tt><tt class="py-op">(</tt><tt id="link-314" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-312', 'tag', 'link-98');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L810"></a><tt class="py-lineno">810</tt>  <tt class="py-line">                <tt class="py-name">tail_tag</tt><tt class="py-op">.</tt><tt id="link-313" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-314', 'tag', 'link-100');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L815"></a><tt class="py-lineno">815</tt>  <tt class="py-line">                <tt class="py-name">tail_tag</tt><tt class="py-op">.</tt><tt id="link-315" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-313', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-314" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-314', 'tail', 'link-234');">tail</a></tt> </tt>
-<a name="L811"></a><tt class="py-lineno">811</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-315" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-315', 'tail', 'link-234');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L812"></a><tt class="py-lineno">812</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-316" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-316', 'insert', 'link-151');">insert</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-317', 'index', 'link-118');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">tail_tag</tt><tt class="py-op">)</tt> </tt>
-<a name="L813"></a><tt class="py-lineno">813</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L814"></a><tt class="py-lineno">814</tt>  <tt class="py-line">            <tt class="py-name">child_tag</tt> <tt class="py-op">=</tt> <tt id="link-318" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-315', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-316" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-316', 'tail', 'link-235');">tail</a></tt> </tt>
+<a name="L816"></a><tt class="py-lineno">816</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-317', 'tail', 'link-235');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L817"></a><tt class="py-lineno">817</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-318', 'insert', 'link-153');">insert</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-319" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-319', 'index', 'link-120');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">tail_tag</tt><tt class="py-op">)</tt> </tt>
+<a name="L818"></a><tt class="py-lineno">818</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L819"></a><tt class="py-lineno">819</tt>  <tt class="py-line">            <tt class="py-name">child_tag</tt> <tt class="py-op">=</tt> <tt id="link-320" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-318', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-319" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-320', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-321" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-319', 'Element', 'link-300');">Element</a></tt><tt class="py-op">(</tt><tt id="link-320" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-321', 'Element', 'link-302');">Element</a></tt><tt class="py-op">(</tt><tt id="link-322" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-320', 'tag', 'link-98');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L815"></a><tt class="py-lineno">815</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-321" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-321', 'replace', 'link-321');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">child_tag</tt><tt class="py-op">)</tt> </tt>
-<a name="L816"></a><tt class="py-lineno">816</tt>  <tt class="py-line">            <tt class="py-name">child_tag</tt><tt class="py-op">.</tt><tt id="link-322" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-322', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
-<a name="L817"></a><tt class="py-lineno">817</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-323" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-322', 'tag', 'link-100');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L820"></a><tt class="py-lineno">820</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-323" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-323', 'replace', 'link-323');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">child_tag</tt><tt class="py-op">)</tt> </tt>
+<a name="L821"></a><tt class="py-lineno">821</tt>  <tt class="py-line">            <tt class="py-name">child_tag</tt><tt class="py-op">.</tt><tt id="link-324" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-324', 'append', 'link-21');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
+<a name="L822"></a><tt class="py-lineno">822</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-325" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-323', 'text', 'link-10');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L818"></a><tt class="py-lineno">818</tt>  <tt class="py-line">        <tt class="py-name">text_tag</tt> <tt class="py-op">=</tt> <tt id="link-324" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-325', 'text', 'link-10');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L823"></a><tt class="py-lineno">823</tt>  <tt class="py-line">        <tt class="py-name">text_tag</tt> <tt class="py-op">=</tt> <tt id="link-326" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-324', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-325" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-326', 'etree', 'link-1');">etree</a></tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-325', 'Element', 'link-300');">Element</a></tt><tt class="py-op">(</tt><tt id="link-326" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-327', 'Element', 'link-302');">Element</a></tt><tt class="py-op">(</tt><tt id="link-328" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-326', 'tag', 'link-98');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L819"></a><tt class="py-lineno">819</tt>  <tt class="py-line">        <tt class="py-name">text_tag</tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-328', 'tag', 'link-100');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L824"></a><tt class="py-lineno">824</tt>  <tt class="py-line">        <tt class="py-name">text_tag</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-327', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-328" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-329', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-328', 'text', 'link-10');">text</a></tt> </tt>
-<a name="L820"></a><tt class="py-lineno">820</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-329" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-330', 'text', 'link-10');">text</a></tt> </tt>
+<a name="L825"></a><tt class="py-lineno">825</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-331" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-329', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L821"></a><tt class="py-lineno">821</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-330', 'insert', 'link-151');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">text_tag</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L822"></a><tt class="py-lineno">822</tt>  <tt class="py-line">             </tt>
-<a name="_merge_element_contents"></a><div id="_merge_element_contents-def"><a name="L823"></a><tt class="py-lineno">823</tt> <a class="py-toggle" href="#" id="_merge_element_contents-toggle" onclick="return toggle('_merge_element_contents');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#_merge_element_contents">_merge_element_contents</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_merge_element_contents-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_merge_element_contents-expanded"><a name="L824"></a><tt class="py-lineno">824</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L825"></a><tt class="py-lineno">825</tt>  <tt class="py-line"><tt class="py-docstring">    Removes an element, but merges its contents into its place, e.g.,</tt> </tt>
-<a name="L826"></a><tt class="py-lineno">826</tt>  <tt class="py-line"><tt class="py-docstring">    given &lt;p&gt;Hi &lt;i&gt;there!&lt;/i&gt;&lt;/p&gt;, if you remove the &lt;i&gt; element you get</tt> </tt>
-<a name="L827"></a><tt class="py-lineno">827</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;p&gt;Hi there!&lt;/p&gt;</tt> </tt>
-<a name="L828"></a><tt class="py-lineno">828</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L829"></a><tt class="py-lineno">829</tt>  <tt class="py-line">    <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-331" class="py-name" targets="Method lxml.etree._Element.getparent()=lxml.etree._Element-class.html#getparent,Method lxml.etree._ElementStringResult.getparent()=lxml.etree._ElementStringResult-class.html#getparent,Method lxml.etree._ElementUnicodeResult.getparent()=lxml.etree._ElementUnicodeResult-class.html#getparent"><a title="lxml.etree._Element.getparent
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-331', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L826"></a><tt class="py-lineno">826</tt>  <tt class="py-line">        <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-332" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-332', 'insert', 'link-153');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">text_tag</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L827"></a><tt class="py-lineno">827</tt>  <tt class="py-line">             </tt>
+<a name="_merge_element_contents"></a><div id="_merge_element_contents-def"><a name="L828"></a><tt class="py-lineno">828</tt> <a class="py-toggle" href="#" id="_merge_element_contents-toggle" onclick="return toggle('_merge_element_contents');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff-module.html#_merge_element_contents">_merge_element_contents</a><tt class="py-op">(</tt><tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_merge_element_contents-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_merge_element_contents-expanded"><a name="L829"></a><tt class="py-lineno">829</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L830"></a><tt class="py-lineno">830</tt>  <tt class="py-line"><tt class="py-docstring">    Removes an element, but merges its contents into its place, e.g.,</tt> </tt>
+<a name="L831"></a><tt class="py-lineno">831</tt>  <tt class="py-line"><tt class="py-docstring">    given &lt;p&gt;Hi &lt;i&gt;there!&lt;/i&gt;&lt;/p&gt;, if you remove the &lt;i&gt; element you get</tt> </tt>
+<a name="L832"></a><tt class="py-lineno">832</tt>  <tt class="py-line"><tt class="py-docstring">    &lt;p&gt;Hi there!&lt;/p&gt;</tt> </tt>
+<a name="L833"></a><tt class="py-lineno">833</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L834"></a><tt class="py-lineno">834</tt>  <tt class="py-line">    <tt class="py-name">parent</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name" targets="Method lxml.etree._Element.getparent()=lxml.etree._Element-class.html#getparent,Method lxml.etree._ElementStringResult.getparent()=lxml.etree._ElementStringResult-class.html#getparent,Method lxml.etree._ElementUnicodeResult.getparent()=lxml.etree._ElementUnicodeResult-class.html#getparent"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-331', 'getparent', 'link-331');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L830"></a><tt class="py-lineno">830</tt>  <tt class="py-line">    <tt id="link-332" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-333', 'getparent', 'link-333');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L835"></a><tt class="py-lineno">835</tt>  <tt class="py-line">    <tt id="link-334" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-332', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-334', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-335" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-333', 'text', 'link-10');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
-<a name="L831"></a><tt class="py-lineno">831</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-334" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-334', 'tail', 'link-234');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L832"></a><tt class="py-lineno">832</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L833"></a><tt class="py-lineno">833</tt>  <tt class="py-line">            <tt id="link-335" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-335', 'text', 'link-10');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt> </tt>
+<a name="L836"></a><tt class="py-lineno">836</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-336', 'tail', 'link-235');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L837"></a><tt class="py-lineno">837</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L838"></a><tt class="py-lineno">838</tt>  <tt class="py-line">            <tt id="link-337" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-335', 'text', 'link-10');">text</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-336" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-336', 'tail', 'link-234');">tail</a></tt> </tt>
-<a name="L834"></a><tt class="py-lineno">834</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L835"></a><tt class="py-lineno">835</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-337" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-337', 'tail', 'link-234');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L836"></a><tt class="py-lineno">836</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-338" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-338', 'tail', 'link-234');">tail</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-339" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-339', 'tail', 'link-234');">tail</a></tt> </tt>
-<a name="L837"></a><tt class="py-lineno">837</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L838"></a><tt class="py-lineno">838</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-340', 'tail', 'link-234');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-341" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-341', 'tail', 'link-234');">tail</a></tt> </tt>
-<a name="L839"></a><tt class="py-lineno">839</tt>  <tt class="py-line">    <tt id="link-342" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-342', 'index', 'link-118');">index</a></tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-343', 'index', 'link-118');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L840"></a><tt class="py-lineno">840</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-344" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-337', 'text', 'link-10');">text</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-338" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-338', 'tail', 'link-235');">tail</a></tt> </tt>
+<a name="L839"></a><tt class="py-lineno">839</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L840"></a><tt class="py-lineno">840</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-339" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-339', 'tail', 'link-235');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L841"></a><tt class="py-lineno">841</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-340', 'tail', 'link-235');">tail</a></tt> <tt class="py-op">+=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-341" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-341', 'tail', 'link-235');">tail</a></tt> </tt>
+<a name="L842"></a><tt class="py-lineno">842</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L843"></a><tt class="py-lineno">843</tt>  <tt class="py-line">                <tt class="py-name">el</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-342" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-342', 'tail', 'link-235');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-343" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-343', 'tail', 'link-235');">tail</a></tt> </tt>
+<a name="L844"></a><tt class="py-lineno">844</tt>  <tt class="py-line">    <tt id="link-344" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-344', 'index', 'link-120');">index</a></tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-345" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-345', 'index', 'link-120');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L845"></a><tt class="py-lineno">845</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-346" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-344', 'text', 'link-10');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L841"></a><tt class="py-lineno">841</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-345" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-345', 'index', 'link-118');">index</a></tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L842"></a><tt class="py-lineno">842</tt>  <tt class="py-line">            <tt class="py-name">previous</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L843"></a><tt class="py-lineno">843</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L844"></a><tt class="py-lineno">844</tt>  <tt class="py-line">            <tt class="py-name">previous</tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt><tt class="py-op">[</tt><tt id="link-346" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-346', 'index', 'link-118');">index</a></tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L845"></a><tt class="py-lineno">845</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">previous</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L846"></a><tt class="py-lineno">846</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-347" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-346', 'text', 'link-10');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L846"></a><tt class="py-lineno">846</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-347" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-347', 'index', 'link-120');">index</a></tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L847"></a><tt class="py-lineno">847</tt>  <tt class="py-line">            <tt class="py-name">previous</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L848"></a><tt class="py-lineno">848</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L849"></a><tt class="py-lineno">849</tt>  <tt class="py-line">            <tt class="py-name">previous</tt> <tt class="py-op">=</tt> <tt class="py-name">parent</tt><tt class="py-op">[</tt><tt id="link-348" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-348', 'index', 'link-120');">index</a></tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L850"></a><tt class="py-lineno">850</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">previous</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L851"></a><tt class="py-lineno">851</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-349" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-347', 'text', 'link-10');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L847"></a><tt class="py-lineno">847</tt>  <tt class="py-line">                <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-348" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-349', 'text', 'link-10');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L852"></a><tt class="py-lineno">852</tt>  <tt class="py-line">                <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-348', 'text', 'link-10');">text</a></tt> <tt class="py-op">+=</tt> <tt id="link-349" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-350', 'text', 'link-10');">text</a></tt> <tt class="py-op">+=</tt> <tt id="link-351" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-349', 'text', 'link-10');">text</a></tt> </tt>
-<a name="L848"></a><tt class="py-lineno">848</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L849"></a><tt class="py-lineno">849</tt>  <tt class="py-line">                <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-351', 'text', 'link-10');">text</a></tt> </tt>
+<a name="L853"></a><tt class="py-lineno">853</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L854"></a><tt class="py-lineno">854</tt>  <tt class="py-line">                <tt class="py-name">parent</tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-350', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-351" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-352', 'text', 'link-10');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-353" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-351', 'text', 'link-10');">text</a></tt> </tt>
-<a name="L850"></a><tt class="py-lineno">850</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L851"></a><tt class="py-lineno">851</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">previous</tt><tt class="py-op">.</tt><tt id="link-352" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-352', 'tail', 'link-234');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L852"></a><tt class="py-lineno">852</tt>  <tt class="py-line">                <tt class="py-name">previous</tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-353', 'tail', 'link-234');">tail</a></tt> <tt class="py-op">+=</tt> <tt id="link-354" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-353', 'text', 'link-10');">text</a></tt> </tt>
+<a name="L855"></a><tt class="py-lineno">855</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L856"></a><tt class="py-lineno">856</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">previous</tt><tt class="py-op">.</tt><tt id="link-354" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-354', 'tail', 'link-235');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L857"></a><tt class="py-lineno">857</tt>  <tt class="py-line">                <tt class="py-name">previous</tt><tt class="py-op">.</tt><tt id="link-355" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-355', 'tail', 'link-235');">tail</a></tt> <tt class="py-op">+=</tt> <tt id="link-356" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-354', 'text', 'link-10');">text</a></tt> </tt>
-<a name="L853"></a><tt class="py-lineno">853</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L854"></a><tt class="py-lineno">854</tt>  <tt class="py-line">                <tt class="py-name">previous</tt><tt class="py-op">.</tt><tt id="link-355" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-355', 'tail', 'link-234');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-356" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-356', 'text', 'link-10');">text</a></tt> </tt>
+<a name="L858"></a><tt class="py-lineno">858</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L859"></a><tt class="py-lineno">859</tt>  <tt class="py-line">                <tt class="py-name">previous</tt><tt class="py-op">.</tt><tt id="link-357" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-357', 'tail', 'link-235');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-358" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-356', 'text', 'link-10');">text</a></tt> </tt>
-<a name="L855"></a><tt class="py-lineno">855</tt>  <tt class="py-line">    <tt class="py-name">parent</tt><tt class="py-op">[</tt><tt id="link-357" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-357', 'index', 'link-118');">index</a></tt><tt class="py-op">:</tt><tt id="link-358" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-358', 'index', 'link-118');">index</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-359" class="py-name" targets="Method lxml.etree._Element.getchildren()=lxml.etree._Element-class.html#getchildren,Method lxml.objectify.ObjectifiedElement.getchildren()=lxml.objectify.ObjectifiedElement-class.html#getchildren"><a title="lxml.etree._Element.getchildren
-lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-359', 'getchildren', 'link-359');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L856"></a><tt class="py-lineno">856</tt>  <tt class="py-line"> </tt>
-<a name="InsensitiveSequenceMatcher"></a><div id="InsensitiveSequenceMatcher-def"><a name="L857"></a><tt class="py-lineno">857</tt> <a class="py-toggle" href="#" id="InsensitiveSequenceMatcher-toggle" onclick="return toggle('InsensitiveSequenceMatcher');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.diff.InsensitiveSequenceMatcher-class.html">InsensitiveSequenceMatcher</a><tt class="py-op">(</tt><tt class="py-base-class">difflib</tt><tt class="py-op">.</tt><tt class="py-base-class">SequenceMatcher</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InsensitiveSequenceMatcher-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InsensitiveSequenceMatcher-expanded"><a name="L858"></a><tt class="py-lineno">858</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
-<a name="L859"></a><tt class="py-lineno">859</tt>  <tt class="py-line"><tt class="py-docstring">    Acts like SequenceMatcher, but tries not to find very small equal</tt> </tt>
-<a name="L860"></a><tt class="py-lineno">860</tt>  <tt class="py-line"><tt class="py-docstring">    blocks amidst large spans of changes</tt> </tt>
-<a name="L861"></a><tt class="py-lineno">861</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L862"></a><tt class="py-lineno">862</tt>  <tt class="py-line"> </tt>
-<a name="L863"></a><tt class="py-lineno">863</tt>  <tt class="py-line">    <tt id="link-360" class="py-name" targets="Variable lxml.html.diff.InsensitiveSequenceMatcher.threshold=lxml.html.diff.InsensitiveSequenceMatcher-class.html#threshold"><a title="lxml.html.diff.InsensitiveSequenceMatcher.threshold" class="py-name" href="#" onclick="return doclink('link-360', 'threshold', 'link-360');">threshold</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
-<a name="L864"></a><tt class="py-lineno">864</tt>  <tt class="py-line">     </tt>
-<a name="InsensitiveSequenceMatcher.get_matching_blocks"></a><div id="InsensitiveSequenceMatcher.get_matching_blocks-def"><a name="L865"></a><tt class="py-lineno">865</tt> <a class="py-toggle" href="#" id="InsensitiveSequenceMatcher.get_matching_blocks-toggle" onclick="return toggle('InsensitiveSequenceMatcher.get_matching_blocks');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.InsensitiveSequenceMatcher-class.html#get_matching_blocks">get_matching_blocks</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="InsensitiveSequenceMatcher.get_matching_blocks-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="InsensitiveSequenceMatcher.get_matching_blocks-expanded"><a name="L866"></a><tt class="py-lineno">866</tt>  <tt class="py-line">        <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L867"></a><tt class="py-lineno">867</tt>  <tt class="py-line">        <tt id="link-361" class="py-name"><a title="lxml.html.diff.InsensitiveSequenceMatcher.threshold" class="py-name" href="#" onclick="return doclink('link-361', 'threshold', 'link-360');">threshold</a></tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="lxml.html.diff.InsensitiveSequenceMatcher.threshold" class="py-name" href="#" onclick="return doclink('link-362', 'threshold', 'link-360');">threshold</a></tt><tt class="py-op">,</tt> <tt class="py-name">size</tt> <tt class="py-op">/</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L868"></a><tt class="py-lineno">868</tt>  <tt class="py-line">        <tt class="py-name">actual</tt> <tt class="py-op">=</tt> <tt class="py-name">difflib</tt><tt class="py-op">.</tt><tt class="py-name">SequenceMatcher</tt><tt class="py-op">.</tt><tt id="link-363" class="py-name" targets="Method lxml.html.diff.InsensitiveSequenceMatcher.get_matching_blocks()=lxml.html.diff.InsensitiveSequenceMatcher-class.html#get_matching_blocks"><a title="lxml.html.diff.InsensitiveSequenceMatcher.get_matching_blocks" class="py-name" href="#" onclick="return doclink('link-363', 'get_matching_blocks', 'link-363');">get_matching_blocks</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
-<a name="L869"></a><tt class="py-lineno">869</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">item</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">actual</tt> </tt>
-<a name="L870"></a><tt class="py-lineno">870</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;</tt> <tt id="link-364" class="py-name"><a title="lxml.html.diff.InsensitiveSequenceMatcher.threshold" class="py-name" href="#" onclick="return doclink('link-364', 'threshold', 'link-360');">threshold</a></tt> </tt>
-<a name="L871"></a><tt class="py-lineno">871</tt>  <tt class="py-line">                <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
-</div></div><a name="L872"></a><tt class="py-lineno">872</tt>  <tt class="py-line"> </tt>
-<a name="L873"></a><tt class="py-lineno">873</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
-<a name="L874"></a><tt class="py-lineno">874</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-365" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-365', 'lxml', 'link-0');">lxml</a></tt><tt class="py-op">.</tt><tt id="link-366" class="py-name"><a title="lxml.html
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-358', 'text', 'link-10');">text</a></tt> </tt>
+<a name="L860"></a><tt class="py-lineno">860</tt>  <tt class="py-line">    <tt class="py-name">parent</tt><tt class="py-op">[</tt><tt id="link-359" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-359', 'index', 'link-120');">index</a></tt><tt class="py-op">:</tt><tt id="link-360" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-360', 'index', 'link-120');">index</a></tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-361" class="py-name" targets="Method lxml.etree._Element.getchildren()=lxml.etree._Element-class.html#getchildren,Method lxml.objectify.ObjectifiedElement.getchildren()=lxml.objectify.ObjectifiedElement-class.html#getchildren"><a title="lxml.etree._Element.getchildren
+lxml.objectify.ObjectifiedElement.getchildren" class="py-name" href="#" onclick="return doclink('link-361', 'getchildren', 'link-361');">getchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L861"></a><tt class="py-lineno">861</tt>  <tt class="py-line"> </tt>
+<a name="InsensitiveSequenceMatcher"></a><div id="InsensitiveSequenceMatcher-def"><a name="L862"></a><tt class="py-lineno">862</tt> <a class="py-toggle" href="#" id="InsensitiveSequenceMatcher-toggle" onclick="return toggle('InsensitiveSequenceMatcher');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.diff.InsensitiveSequenceMatcher-class.html">InsensitiveSequenceMatcher</a><tt class="py-op">(</tt><tt class="py-base-class">difflib</tt><tt class="py-op">.</tt><tt class="py-base-class">SequenceMatcher</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InsensitiveSequenceMatcher-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="InsensitiveSequenceMatcher-expanded"><a name="L863"></a><tt class="py-lineno">863</tt>  <tt class="py-line">    <tt class="py-docstring">"""</tt> </tt>
+<a name="L864"></a><tt class="py-lineno">864</tt>  <tt class="py-line"><tt class="py-docstring">    Acts like SequenceMatcher, but tries not to find very small equal</tt> </tt>
+<a name="L865"></a><tt class="py-lineno">865</tt>  <tt class="py-line"><tt class="py-docstring">    blocks amidst large spans of changes</tt> </tt>
+<a name="L866"></a><tt class="py-lineno">866</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L867"></a><tt class="py-lineno">867</tt>  <tt class="py-line"> </tt>
+<a name="L868"></a><tt class="py-lineno">868</tt>  <tt class="py-line">    <tt id="link-362" class="py-name" targets="Variable lxml.html.diff.InsensitiveSequenceMatcher.threshold=lxml.html.diff.InsensitiveSequenceMatcher-class.html#threshold"><a title="lxml.html.diff.InsensitiveSequenceMatcher.threshold" class="py-name" href="#" onclick="return doclink('link-362', 'threshold', 'link-362');">threshold</a></tt> <tt class="py-op">=</tt> <tt class="py-number">2</tt> </tt>
+<a name="L869"></a><tt class="py-lineno">869</tt>  <tt class="py-line">     </tt>
+<a name="InsensitiveSequenceMatcher.get_matching_blocks"></a><div id="InsensitiveSequenceMatcher.get_matching_blocks-def"><a name="L870"></a><tt class="py-lineno">870</tt> <a class="py-toggle" href="#" id="InsensitiveSequenceMatcher.get_matching_blocks-toggle" onclick="return toggle('InsensitiveSequenceMatcher.get_matching_blocks');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.diff.InsensitiveSequenceMatcher-class.html#get_matching_blocks">get_matching_blocks</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="InsensitiveSequenceMatcher.get_matching_blocks-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="InsensitiveSequenceMatcher.get_matching_blocks-expanded"><a name="L871"></a><tt class="py-lineno">871</tt>  <tt class="py-line">        <tt class="py-name">size</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L872"></a><tt class="py-lineno">872</tt>  <tt class="py-line">        <tt id="link-363" class="py-name"><a title="lxml.html.diff.InsensitiveSequenceMatcher.threshold" class="py-name" href="#" onclick="return doclink('link-363', 'threshold', 'link-362');">threshold</a></tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-364" class="py-name"><a title="lxml.html.diff.InsensitiveSequenceMatcher.threshold" class="py-name" href="#" onclick="return doclink('link-364', 'threshold', 'link-362');">threshold</a></tt><tt class="py-op">,</tt> <tt class="py-name">size</tt> <tt class="py-op">/</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L873"></a><tt class="py-lineno">873</tt>  <tt class="py-line">        <tt class="py-name">actual</tt> <tt class="py-op">=</tt> <tt class="py-name">difflib</tt><tt class="py-op">.</tt><tt class="py-name">SequenceMatcher</tt><tt class="py-op">.</tt><tt id="link-365" class="py-name" targets="Method lxml.html.diff.InsensitiveSequenceMatcher.get_matching_blocks()=lxml.html.diff.InsensitiveSequenceMatcher-class.html#get_matching_blocks"><a title="lxml.html.diff.InsensitiveSequenceMatcher.get_matching_blocks" class="py-name" href="#" onclick="return doclink('link-365', 'get_matching_blocks', 'link-365');">get_matching_blocks</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">)</tt> </tt>
+<a name="L874"></a><tt class="py-lineno">874</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">item</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">actual</tt> </tt>
+<a name="L875"></a><tt class="py-lineno">875</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">&gt;</tt> <tt id="link-366" class="py-name"><a title="lxml.html.diff.InsensitiveSequenceMatcher.threshold" class="py-name" href="#" onclick="return doclink('link-366', 'threshold', 'link-362');">threshold</a></tt> </tt>
+<a name="L876"></a><tt class="py-lineno">876</tt>  <tt class="py-line">                <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt class="py-name">item</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+</div></div><a name="L877"></a><tt class="py-lineno">877</tt>  <tt class="py-line"> </tt>
+<a name="L878"></a><tt class="py-lineno">878</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L879"></a><tt class="py-lineno">879</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-367" class="py-name"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-367', 'lxml', 'link-0');">lxml</a></tt><tt class="py-op">.</tt><tt id="link-368" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-366', 'html', 'link-3');">html</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">_diffcommand</tt> </tt>
-<a name="L875"></a><tt class="py-lineno">875</tt>  <tt class="py-line">    <tt class="py-name">_diffcommand</tt><tt class="py-op">.</tt><tt class="py-name">main</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L876"></a><tt class="py-lineno">876</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-368', 'html', 'link-3');">html</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">_diffcommand</tt> </tt>
+<a name="L880"></a><tt class="py-lineno">880</tt>  <tt class="py-line">    <tt class="py-name">_diffcommand</tt><tt class="py-op">.</tt><tt class="py-name">main</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L881"></a><tt class="py-lineno">881</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -1739,7 +1726,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7f453a087aa11aa8d4e878c6f4080e3061dc2b74..59b5e39f68dbaa4022833ef809fb908f23e068e6 100644 (file)
@@ -94,7 +94,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9175743135a1a408f16dc0f4f4e01b2cebedefbd..a9d43e639235fbf1bfb824a545df04a6d9c35de9 100644 (file)
@@ -94,7 +94,7 @@
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 11ee1becb80d22f21ad212d90c5477d6deffe5e4..e920f6b3e4cfab37b43e0379b9eefd67b8bcc540 100644 (file)
@@ -235,7 +235,7 @@ triple with n==0.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 821fde46f3c030613773d5422486fe3dea848d3d..2a0731165678ae5a515af4e91e0ce8feb2d86b78 100644 (file)
@@ -182,7 +182,7 @@ Raised when the document no longer contains any pending deletes
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ee38cfc7b67bf671fe4fbc5c06bca788fb1ffe0c..d11c45833301a4e7bfe5c31a0b5150f910bb52b3 100644 (file)
@@ -342,7 +342,7 @@ show the href when it changes.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bcad1118ec258d1fbe40f3494dbdae13935f1ec3..e10a73acf0fa15aff23b5a8aa47087f08c8add90 100644 (file)
@@ -239,7 +239,7 @@ is only represented in a document by a tag.
         <span class="summary-sig-arg">html_repr</span>,
         <span class="summary-sig-arg">pre_tags</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">post_tags</span>=<span class="summary-sig-default">None</span>,
-        <span class="summary-sig-arg">trailing_whitespace</span>=<span class="summary-sig-default">False</span>)</span></td>
+        <span class="summary-sig-arg">trailing_whitespace</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.html.diff-pysrc.html#tag_token.__new__">source&nbsp;code</a></span>
             
@@ -331,7 +331,7 @@ is only represented in a document by a tag.
         <span class="sig-arg">html_repr</span>,
         <span class="sig-arg">pre_tags</span>=<span class="sig-default">None</span>,
         <span class="sig-arg">post_tags</span>=<span class="sig-default">None</span>,
-        <span class="sig-arg">trailing_whitespace</span>=<span class="sig-default">False</span>)</span>
+        <span class="sig-arg">trailing_whitespace</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span>
     <br /><em class="fname">Static Method</em>
   </h3>
   </td><td align="right" valign="top"
@@ -427,7 +427,7 @@ is only represented in a document by a tag.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 87e352482b669b34a13a3f28fa8d096c77affd8b..51c95accba82f504694811699666056f29c83147 100644 (file)
@@ -248,7 +248,7 @@ space.</p>
         <span class="summary-sig-arg">text</span>,
         <span class="summary-sig-arg">pre_tags</span>=<span class="summary-sig-default">None</span>,
         <span class="summary-sig-arg">post_tags</span>=<span class="summary-sig-default">None</span>,
-        <span class="summary-sig-arg">trailing_whitespace</span>=<span class="summary-sig-default">False</span>)</span></td>
+        <span class="summary-sig-arg">trailing_whitespace</span>=<span class="summary-sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.html.diff-pysrc.html#token.__new__">source&nbsp;code</a></span>
             
@@ -338,7 +338,7 @@ space.</p>
         <span class="sig-arg">text</span>,
         <span class="sig-arg">pre_tags</span>=<span class="sig-default">None</span>,
         <span class="sig-arg">post_tags</span>=<span class="sig-default">None</span>,
-        <span class="sig-arg">trailing_whitespace</span>=<span class="sig-default">False</span>)</span>
+        <span class="sig-arg">trailing_whitespace</span>=<span class="sig-default"><code class="variable-quote">'</code><code class="variable-string"></code><code class="variable-quote">'</code></span>)</span>
     <br /><em class="fname">Static Method</em>
   </h3>
   </td><td align="right" valign="top"
@@ -412,7 +412,7 @@ space.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0463dcea5b8767ab7eeb14a96dc081555d09cf78..577dac8acbe3371087e3652422abf5133c22099c 100644 (file)
@@ -546,7 +546,7 @@ escendant-or-self::x:textarea
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8393ab74513258e0903b5f5be9798a0d59125040..29dde4cbbb935618d0a2525a1938017ce99601fb 100644 (file)
@@ -783,7 +783,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 282c328e49567781777cb3d7232af9bf4e55e923..79faf1a1a72fa70306f08b6fb58eb15cacf113cd 100644 (file)
@@ -303,7 +303,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7e9b932b293cb5075e6e9d4b7c70448747e08f96..1667827a5673083c0412ec42094ea5a55c1ba9fc 100644 (file)
@@ -185,7 +185,7 @@ Raised when no form can be found
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9ca05c8a55bec45627e602c6e757ccb07b087968..37477a63a4c515bbe91ff70f8d28c280a505f2c1 100644 (file)
@@ -267,25 +267,25 @@ tree.  Note: this returns a tree, not an element.  Use
     </table>
   </td>
 </tr>
-<tr class="private">
+<tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="_strings"></a><span class="summary-name">_strings</span> = <code title="bytes, str">bytes, str</code>
+        <a name="xhtml_parser"></a><span class="summary-name">xhtml_parser</span> = <code title="XHTMLParser()">XHTMLParser()</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="xhtml_parser"></a><span class="summary-name">xhtml_parser</span> = <code title="XHTMLParser()">XHTMLParser()</code>
+        <a name="html_parser"></a><span class="summary-name">html_parser</span> = <code title="HTMLParser()">HTMLParser()</code>
     </td>
   </tr>
 <tr>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="html_parser"></a><span class="summary-name">html_parser</span> = <code title="HTMLParser()">HTMLParser()</code>
+        <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'lxml.html'"><code class="variable-quote">'</code><code class="variable-string">lxml.html</code><code class="variable-quote">'</code></code>
     </td>
   </tr>
 </table>
@@ -418,7 +418,7 @@ is a fragment or a document.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d842d14f8a48034a7c657b5641a5caa84817ada3..918a2ed1103d29ed41c4c5f0f9f2901e007bb3b2 100644 (file)
@@ -87,10 +87,10 @@ xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink(
 <a name="L10"></a><tt class="py-lineno"> 10</tt>  <tt class="py-line"> </tt>
 <a name="L11"></a><tt class="py-lineno"> 11</tt>  <tt class="py-line"><tt class="py-comment"># python3 compatibility</tt> </tt>
 <a name="L12"></a><tt class="py-lineno"> 12</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line">    <tt id="link-9" class="py-name" targets="Variable lxml.html.html5parser._strings=lxml.html.html5parser-module.html#_strings"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-9', '_strings', 'link-9');">_strings</a></tt> <tt class="py-op">=</tt> <tt id="link-10" class="py-name" targets="Variable lxml.html.basestring=lxml.html-module.html#basestring,Variable lxml.html.clean.basestring=lxml.html.clean-module.html#basestring"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-10', 'basestring', 'link-10');">basestring</a></tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt>  <tt class="py-line">    <tt class="py-name">_strings</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name" targets="Variable lxml.html.basestring=lxml.html-module.html#basestring,Variable lxml.html.clean.basestring=lxml.html.clean-module.html#basestring"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-9', 'basestring', 'link-9');">basestring</a></tt> </tt>
 <a name="L14"></a><tt class="py-lineno"> 14</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
-<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line">    <tt id="link-11" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-11', '_strings', 'link-9');">_strings</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Class str=str-class.html"><a title="str" class="py-name" href="#" onclick="return doclink('link-12', 'str', 'link-12');">str</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line">    <tt class="py-name">_strings</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">bytes</tt><tt class="py-op">,</tt> <tt id="link-10" class="py-name" targets="Class str=str-class.html"><a title="str" class="py-name" href="#" onclick="return doclink('link-10', 'str', 'link-10');">str</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">urllib2</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlopen</tt> </tt>
 <a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
@@ -98,19 +98,19 @@ lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('li
 <a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">urlparse</tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
 <a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
-<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt id="link-13" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><a title="lxml.etree._ElementTree.parse
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">urllib</tt><tt class="py-op">.</tt><tt id="link-11" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-13', 'parse', 'link-13');">parse</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-11', 'parse', 'link-11');">parse</a></tt> <tt class="py-keyword">import</tt> <tt class="py-name">urlparse</tt> </tt>
 <a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line"> </tt>
 <a name="HTMLParser"></a><div id="HTMLParser-def"><a name="L25"></a><tt class="py-lineno"> 25</tt> <a class="py-toggle" href="#" id="HTMLParser-toggle" onclick="return toggle('HTMLParser');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.html.html5parser.HTMLParser-class.html">HTMLParser</a><tt class="py-op">(</tt><tt class="py-base-class">_HTMLParser</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="HTMLParser-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="HTMLParser-expanded"><a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">    <tt class="py-docstring">"""An html5lib HTML parser with lxml as tree."""</tt> </tt>
 <a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line"> </tt>
 <a name="HTMLParser.__init__"></a><div id="HTMLParser.__init__-def"><a name="L28"></a><tt class="py-lineno"> 28</tt> <a class="py-toggle" href="#" id="HTMLParser.__init__-toggle" onclick="return toggle('HTMLParser.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.html5parser.HTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strict</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HTMLParser.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HTMLParser.__init__-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-name">_HTMLParser</tt><tt class="py-op">.</tt><tt id="link-14" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
+</div><div id="HTMLParser.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="HTMLParser.__init__-expanded"><a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-name">_HTMLParser</tt><tt class="py-op">.</tt><tt id="link-12" class="py-name" targets="Method lxml.builder.ElementMaker.__init__()=lxml.builder.ElementMaker-class.html#__init__,Method lxml.cssselect.CSSSelector.__init__()=lxml.cssselect.CSSSelector-class.html#__init__,Method lxml.doctestcompare._RestoreChecker.__init__()=lxml.doctestcompare._RestoreChecker-class.html#__init__,Method lxml.etree.AttributeBasedElementClassLookup.__init__()=lxml.etree.AttributeBasedElementClassLookup-class.html#__init__,Method lxml.etree.CommentBase.__init__()=lxml.etree.CommentBase-class.html#__init__,Method lxml.etree.DTD.__init__()=lxml.etree.DTD-class.html#__init__,Method lxml.etree.ETCompatXMLParser.__init__()=lxml.etree.ETCompatXMLParser-class.html#__init__,Method lxml.etree.ETXPath.__init__()=lxml.etree.ETXPath-class.html#__init__,Method lxml.etree.ElementBase.__init__()=lxml.etree.ElementBase-class.html#__init__,Method lxml.etree.ElementDefaultClassLookup.__init__()=lxml.etree.ElementDefaultClassLookup-class.html#__init__,Method lxml.etree.ElementNamespaceClassLookup.__init__()=lxml.etree.ElementNamespaceClassLookup-class.html#__init__,Method lxml.etree.EntityBase.__init__()=lxml.etree.EntityBase-class.html#__init__,Method lxml.etree.FallbackElementClassLookup.__init__()=lxml.etree.FallbackElementClassLookup-class.html#__init__,Method lxml.etree.HTMLParser.__init__()=lxml.etree.HTMLParser-class.html#__init__,Method lxml.etree.LxmlError.__init__()=lxml.etree.LxmlError-class.html#__init__,Method lxml.etree.PIBase.__init__()=lxml.etree.PIBase-class.html#__init__,Method lxml.etree.ParseError.__init__()=lxml.etree.ParseError-class.html#__init__,Method lxml.etree.PyErrorLog.__init__()=lxml.etree.PyErrorLog-class.html#__init__,Method lxml.etree.QName.__init__()=lxml.etree.QName-class.html#__init__,Method lxml.etree.RelaxNG.__init__()=lxml.etree.RelaxNG-class.html#__init__,Method lxml.etree.Schematron.__init__()=lxml.etree.Schematron-class.html#__init__,Method lxml.etree.TreeBuilder.__init__()=lxml.etree.TreeBuilder-class.html#__init__,Method lxml.etree.XInclude.__init__()=lxml.etree.XInclude-class.html#__init__,Method lxml.etree.XMLParser.__init__()=lxml.etree.XMLParser-class.html#__init__,Method lxml.etree.XMLSchema.__init__()=lxml.etree.XMLSchema-class.html#__init__,Method lxml.etree.XPath.__init__()=lxml.etree.XPath-class.html#__init__,Method lxml.etree.XPathDocumentEvaluator.__init__()=lxml.etree.XPathDocumentEvaluator-class.html#__init__,Method lxml.etree.XPathElementEvaluator.__init__()=lxml.etree.XPathElementEvaluator-class.html#__init__,Method lxml.etree.XSLT.__init__()=lxml.etree.XSLT-class.html#__init__,Method lxml.etree.XSLTAccessControl.__init__()=lxml.etree.XSLTAccessControl-class.html#__init__,Method lxml.etree._BaseErrorLog.__init__()=lxml.etree._BaseErrorLog-class.html#__init__,Method lxml.etree._DomainErrorLog.__init__()=lxml.etree._DomainErrorLog-class.html#__init__,Method lxml.etree._ErrorLog.__init__()=lxml.etree._ErrorLog-class.html#__init__,Method lxml.etree._ListErrorLog.__init__()=lxml.etree._ListErrorLog-class.html#__init__,Method lxml.etree._RotatingErrorLog.__init__()=lxml.etree._RotatingErrorLog-class.html#__init__,Method lxml.etree._TargetParserResult.__init__()=lxml.etree._TargetParserResult-class.html#__init__,Method lxml.etree._XPathEvaluatorBase.__init__()=lxml.etree._XPathEvaluatorBase-class.html#__init__,Method lxml.etree.iterparse.__init__()=lxml.etree.iterparse-class.html#__init__,Method lxml.etree.iterwalk.__init__()=lxml.etree.iterwalk-class.html#__init__,Method lxml.etree.xmlfile.__init__()=lxml.etree.xmlfile-class.html#__init__,Method lxml.html.CheckboxValues.__init__()=lxml.html.CheckboxValues-class.html#__init__,Method lxml.html.FieldsDict.__init__()=lxml.html.FieldsDict-class.html#__init__,Method lxml.html.HTMLParser.__init__()=lxml.html.HTMLParser-class.html#__init__,Method lxml.html.HtmlElementClassLookup.__init__()=lxml.html.HtmlElementClassLookup-class.html#__init__,Method lxml.html.InputGetter.__init__()=lxml.html.InputGetter-class.html#__init__,Method lxml.html.MultipleSelectOptions.__init__()=lxml.html.MultipleSelectOptions-class.html#__init__,Method lxml.html.XHTMLParser.__init__()=lxml.html.XHTMLParser-class.html#__init__,Method lxml.html._MethodFunc.__init__()=lxml.html._MethodFunc-class.html#__init__,Method lxml.html.clean.Cleaner.__init__()=lxml.html.clean.Cleaner-class.html#__init__,Method lxml.html.formfill.DefaultErrorCreator.__init__()=lxml.html.formfill.DefaultErrorCreator-class.html#__init__,Method lxml.html.html5parser.HTMLParser.__init__()=lxml.html.html5parser.HTMLParser-class.html#__init__,Method lxml.html.html5parser.XHTMLParser.__init__()=lxml.html.html5parser.XHTMLParser-class.html#__init__,Method lxml.isoschematron.Schematron.__init__()=lxml.isoschematron.Schematron-class.html#__init__,Method lxml.objectify.ElementMaker.__init__()=lxml.objectify.ElementMaker-class.html#__init__,Method lxml.objectify.ObjectPath.__init__()=lxml.objectify.ObjectPath-class.html#__init__,Method lxml.objectify.ObjectifyElementClassLookup.__init__()=lxml.objectify.ObjectifyElementClassLookup-class.html#__init__,Method lxml.objectify.PyType.__init__()=lxml.objectify.PyType-class.html#__init__,Method lxml.sax.ElementTreeContentHandler.__init__()=lxml.sax.ElementTreeContentHandler-class.html#__init__,Method lxml.sax.ElementTreeProducer.__init__()=lxml.sax.ElementTreeProducer-class.html#__init__,Method lxml.tests.common_imports.LargeFileLike.__init__()=lxml.tests.common_imports.LargeFileLike-class.html#__init__,Method lxml.tests.common_imports.LargeFileLikeUnicode.__init__()=lxml.tests.common_imports.LargeFileLikeUnicode-class.html#__init__,Method lxml.tests.common_imports.SillyFileLike.__init__()=lxml.tests.common_imports.SillyFileLike-class.html#__init__,Method lxml.tests.dummy_http_server.HTTPRequestCollector.__init__()=lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__,Method lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__()=lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike-class.html#__init__,Method lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__()=lxml.tests.test_threading.ThreadPipelineTestCase.Worker-class.html#__init__,Method lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__()=lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver-class.html#__init__"><a title="lxml.builder.ElementMaker.__init__
 lxml.cssselect.CSSSelector.__init__
 lxml.doctestcompare._RestoreChecker.__init__
 lxml.etree.AttributeBasedElementClassLookup.__init__
@@ -175,13 +175,13 @@ lxml.tests.common_imports.SillyFileLike.__init__
 lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
 lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
 lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-14', '__init__', 'link-14');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">strict</tt><tt class="py-op">=</tt><tt class="py-name">strict</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">=</tt><tt id="link-15" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-15', 'TreeBuilder', 'link-1');">TreeBuilder</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-12', '__init__', 'link-12');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">strict</tt><tt class="py-op">=</tt><tt class="py-name">strict</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">=</tt><tt id="link-13" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-13', 'TreeBuilder', 'link-1');">TreeBuilder</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
 </div></div><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line"> </tt>
 <a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line"> </tt>
 <a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">html5lib</tt> <tt class="py-keyword">import</tt> <tt id="link-16" class="py-name" targets="Class lxml.html.XHTMLParser=lxml.html.XHTMLParser-class.html,Class lxml.html.html5parser.XHTMLParser=lxml.html.html5parser.XHTMLParser-class.html"><a title="lxml.html.XHTMLParser
-lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return doclink('link-16', 'XHTMLParser', 'link-16');">XHTMLParser</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">_XHTMLParser</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">html5lib</tt> <tt class="py-keyword">import</tt> <tt id="link-14" class="py-name" targets="Class lxml.html.XHTMLParser=lxml.html.XHTMLParser-class.html,Class lxml.html.html5parser.XHTMLParser=lxml.html.html5parser.XHTMLParser-class.html"><a title="lxml.html.XHTMLParser
+lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return doclink('link-14', 'XHTMLParser', 'link-14');">XHTMLParser</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">_XHTMLParser</tt> </tt>
 <a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
 <a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
 <a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line"><tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
@@ -189,7 +189,7 @@ lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return docl
 </div><div id="XHTMLParser-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="XHTMLParser-expanded"><a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line">        <tt class="py-docstring">"""An html5lib XHTML Parser with lxml as tree."""</tt> </tt>
 <a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line"> </tt>
 <a name="XHTMLParser.__init__"></a><div id="XHTMLParser.__init__-def"><a name="L40"></a><tt class="py-lineno"> 40</tt> <a class="py-toggle" href="#" id="XHTMLParser.__init__-toggle" onclick="return toggle('XHTMLParser.__init__');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.html5parser.XHTMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">strict</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-param">kwargs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XHTMLParser.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="XHTMLParser.__init__-expanded"><a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">            <tt class="py-name">_XHTMLParser</tt><tt class="py-op">.</tt><tt id="link-17" class="py-name"><a title="lxml.builder.ElementMaker.__init__
+</div><div id="XHTMLParser.__init__-collapsed" style="display:none;" pad="+++" indent="++++++++++++++++"></div><div id="XHTMLParser.__init__-expanded"><a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">            <tt class="py-name">_XHTMLParser</tt><tt class="py-op">.</tt><tt id="link-15" class="py-name"><a title="lxml.builder.ElementMaker.__init__
 lxml.cssselect.CSSSelector.__init__
 lxml.doctestcompare._RestoreChecker.__init__
 lxml.etree.AttributeBasedElementClassLookup.__init__
@@ -254,60 +254,60 @@ lxml.tests.common_imports.SillyFileLike.__init__
 lxml.tests.dummy_http_server.HTTPRequestCollector.__init__
 lxml.tests.test_incremental_xmlfile.SimpleFileLikeXmlFileTestCase.SimpleFileLike.__init__
 lxml.tests.test_threading.ThreadPipelineTestCase.Worker.__init__
-lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-17', '__init__', 'link-14');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">strict</tt><tt class="py-op">=</tt><tt class="py-name">strict</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">=</tt><tt id="link-18" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-18', 'TreeBuilder', 'link-1');">TreeBuilder</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
+lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase.simple_resolver.__init__" class="py-name" href="#" onclick="return doclink('link-15', '__init__', 'link-12');">__init__</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">,</tt> <tt class="py-name">strict</tt><tt class="py-op">=</tt><tt class="py-name">strict</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">=</tt><tt id="link-16" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-16', 'TreeBuilder', 'link-1');">TreeBuilder</a></tt><tt class="py-op">,</tt> <tt class="py-op">**</tt><tt class="py-name">kwargs</tt><tt class="py-op">)</tt> </tt>
 </div></div><a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line"> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt id="link-19" class="py-name" targets="Variable lxml.html.html5parser.xhtml_parser=lxml.html.html5parser-module.html#xhtml_parser,Variable lxml.html.xhtml_parser=lxml.html-module.html#xhtml_parser"><a title="lxml.html.html5parser.xhtml_parser
-lxml.html.xhtml_parser" class="py-name" href="#" onclick="return doclink('link-19', 'xhtml_parser', 'link-19');">xhtml_parser</a></tt> <tt class="py-op">=</tt> <tt id="link-20" class="py-name"><a title="lxml.html.XHTMLParser
-lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return doclink('link-20', 'XHTMLParser', 'link-16');">XHTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">    <tt id="link-17" class="py-name" targets="Variable lxml.html.html5parser.xhtml_parser=lxml.html.html5parser-module.html#xhtml_parser,Variable lxml.html.xhtml_parser=lxml.html-module.html#xhtml_parser"><a title="lxml.html.html5parser.xhtml_parser
+lxml.html.xhtml_parser" class="py-name" href="#" onclick="return doclink('link-17', 'xhtml_parser', 'link-17');">xhtml_parser</a></tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="lxml.html.XHTMLParser
+lxml.html.html5parser.XHTMLParser" class="py-name" href="#" onclick="return doclink('link-18', 'XHTMLParser', 'link-14');">XHTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line"> </tt>
 <a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line"> </tt>
 <a name="_find_tag"></a><div id="_find_tag-def"><a name="L46"></a><tt class="py-lineno"> 46</tt> <a class="py-toggle" href="#" id="_find_tag-toggle" onclick="return toggle('_find_tag');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.html5parser-module.html#_find_tag">_find_tag</a><tt class="py-op">(</tt><tt class="py-param">tree</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_find_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_find_tag-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
+</div><div id="_find_tag-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_find_tag-expanded"><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">    <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-21', 'find', 'link-21');">find</a></tt><tt class="py-op">(</tt><tt id="link-22" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-19', 'find', 'link-19');">find</a></tt><tt class="py-op">(</tt><tt id="link-20" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-22', 'tag', 'link-22');">tag</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-20', 'tag', 'link-20');">tag</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 <a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">elem</tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="lxml.etree._Element.find
+<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-21" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-23', 'find', 'link-21');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-24', 'XHTML_NAMESPACE', 'link-7');">XHTML_NAMESPACE</a></tt><tt class="py-op">,</tt> <tt id="link-25" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-21', 'find', 'link-19');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'{%s}%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-22" class="py-name"><a title="lxml.html.XHTML_NAMESPACE" class="py-name" href="#" onclick="return doclink('link-22', 'XHTML_NAMESPACE', 'link-7');">XHTML_NAMESPACE</a></tt><tt class="py-op">,</tt> <tt id="link-23" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-25', 'tag', 'link-22');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-23', 'tag', 'link-20');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line"> </tt>
 <a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line"> </tt>
 <a name="document_fromstring"></a><div id="document_fromstring-def"><a name="L53"></a><tt class="py-lineno"> 53</tt> <a class="py-toggle" href="#" id="document_fromstring-toggle" onclick="return toggle('document_fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.html5parser-module.html#document_fromstring">document_fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">guess_charset</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="document_fromstring-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="document_fromstring-expanded"><a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">    <tt class="py-docstring">"""Parse a whole document into a string."""</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-26" class="py-name"><a title="lxml.html
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-24" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-26', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-27" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-27', '_strings', 'link-9');">_strings</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-24', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">_strings</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'string required'</tt><tt class="py-op">)</tt> </tt>
 <a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line"> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-28" class="py-name" targets="Variable lxml.etree._ElementTree.parser=lxml.etree._ElementTree-class.html#parser,Variable lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-28', 'parser', 'link-28');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt id="link-29" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-29', 'parser', 'link-28');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name" targets="Variable lxml.html.html5parser.html_parser=lxml.html.html5parser-module.html#html_parser,Variable lxml.html.html_parser=lxml.html-module.html#html_parser"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-30', 'html_parser', 'link-30');">html_parser</a></tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-25" class="py-name" targets="Variable lxml.etree._ElementTree.parser=lxml.etree._ElementTree-class.html#parser,Variable lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-25', 'parser', 'link-25');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt id="link-26" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-26', 'parser', 'link-25');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-27" class="py-name" targets="Variable lxml.html.html5parser.html_parser=lxml.html.html5parser-module.html#html_parser,Variable lxml.html.html_parser=lxml.html-module.html#html_parser"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-27', 'html_parser', 'link-27');">html_parser</a></tt> </tt>
 <a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line"> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-31" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-31', 'parser', 'link-28');">parser</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-28" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-28', 'parser', 'link-25');">parser</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-32', 'parse', 'link-13');">parse</a></tt><tt class="py-op">(</tt><tt id="link-33" class="py-name"><a title="lxml.html
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-29', 'parse', 'link-11');">parse</a></tt><tt class="py-op">(</tt><tt id="link-30" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-33', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">useChardet</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-34', 'getroot', 'link-34');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-30', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">useChardet</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-31', 'getroot', 'link-31');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line"> </tt>
 <a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line"> </tt>
 <a name="fragments_fromstring"></a><div id="fragments_fromstring-def"><a name="L64"></a><tt class="py-lineno"> 64</tt> <a class="py-toggle" href="#" id="fragments_fromstring-toggle" onclick="return toggle('fragments_fromstring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.html5parser-module.html#fragments_fromstring">fragments_fromstring</a><tt class="py-op">(</tt><tt class="py-param">html</tt><tt class="py-op">,</tt> <tt class="py-param">no_leading_text</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> </tt>
@@ -322,31 +322,31 @@ lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('lin
 <a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"><tt class="py-docstring">    bytestring, the `chardet` library will perform charset guessing on the</tt> </tt>
 <a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line"><tt class="py-docstring">    string.</tt> </tt>
 <a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-35" class="py-name"><a title="lxml.html
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-32" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-35', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-36" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-36', '_strings', 'link-9');">_strings</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-32', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">_strings</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'string required'</tt><tt class="py-op">)</tt> </tt>
 <a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line"> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-37" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-37', 'parser', 'link-28');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt id="link-38" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-38', 'parser', 'link-28');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-39" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-39', 'html_parser', 'link-30');">html_parser</a></tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-33" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-33', 'parser', 'link-25');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt id="link-34" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-34', 'parser', 'link-25');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-35" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-35', 'html_parser', 'link-27');">html_parser</a></tt> </tt>
 <a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line"> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-name">children</tt> <tt class="py-op">=</tt> <tt id="link-40" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-40', 'parser', 'link-28');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">parseFragment</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="lxml.html
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">    <tt class="py-name">children</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-36', 'parser', 'link-25');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">parseFragment</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-41', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'div'</tt><tt class="py-op">,</tt> <tt class="py-name">useChardet</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">)</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">children</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-42" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-42', '_strings', 'link-9');">_strings</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-37', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-string">'div'</tt><tt class="py-op">,</tt> <tt class="py-name">useChardet</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">children</tt> <tt class="py-keyword">and</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">_strings</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">no_leading_text</tt><tt class="py-op">:</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-43', 'strip', 'link-43');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt id="link-44" class="py-name"><a title="lxml.etree
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-38', 'strip', 'link-38');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt id="link-39" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-44', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-45" class="py-name" targets="Class lxml.etree.ParserError=lxml.etree.ParserError-class.html"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-45', 'ParserError', 'link-45');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'There is leading text: %r'</tt> <tt class="py-op">%</tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-39', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name" targets="Class lxml.etree.ParserError=lxml.etree.ParserError-class.html"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-40', 'ParserError', 'link-40');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'There is leading text: %r'</tt> <tt class="py-op">%</tt> </tt>
 <a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">                                        <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 <a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">children</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 <a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">children</tt> </tt>
@@ -362,65 +362,65 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 <a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line"><tt class="py-docstring">    will be created to encapsulate the HTML in a single element.  In</tt> </tt>
 <a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line"><tt class="py-docstring">    this case, leading or trailing text is allowed.</tt> </tt>
 <a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-46" class="py-name"><a title="lxml.html
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-46', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-47" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-47', '_strings', 'link-9');">_strings</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-41', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">_strings</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'string required'</tt><tt class="py-op">)</tt> </tt>
 <a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line"> </tt>
 <a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">    <tt class="py-name">accept_leading_text</tt> <tt class="py-op">=</tt> <tt class="py-name">bool</tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">)</tt> </tt>
 <a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line"> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">    <tt id="link-48" class="py-name" targets="Method lxml.etree.DTD.elements()=lxml.etree.DTD-class.html#elements"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-48', 'elements', 'link-48');">elements</a></tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name" targets="Function lxml.html.html5parser.fragments_fromstring()=lxml.html.html5parser-module.html#fragments_fromstring"><a title="lxml.html.html5parser.fragments_fromstring" class="py-name" href="#" onclick="return doclink('link-49', 'fragments_fromstring', 'link-49');">fragments_fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt id="link-50" class="py-name"><a title="lxml.html
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">    <tt id="link-42" class="py-name" targets="Method lxml.etree.DTD.elements()=lxml.etree.DTD-class.html#elements"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-42', 'elements', 'link-42');">elements</a></tt> <tt class="py-op">=</tt> <tt id="link-43" class="py-name" targets="Function lxml.html.html5parser.fragments_fromstring()=lxml.html.html5parser-module.html#fragments_fromstring"><a title="lxml.html.html5parser.fragments_fromstring" class="py-name" href="#" onclick="return doclink('link-43', 'fragments_fromstring', 'link-43');">fragments_fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">        <tt id="link-44" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-50', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">guess_charset</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">,</tt> <tt id="link-51" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-51', 'parser', 'link-28');">parser</a></tt><tt class="py-op">=</tt><tt id="link-52" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-52', 'parser', 'link-28');">parser</a></tt><tt class="py-op">,</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-44', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">guess_charset</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">,</tt> <tt id="link-45" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-45', 'parser', 'link-25');">parser</a></tt><tt class="py-op">=</tt><tt id="link-46" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-46', 'parser', 'link-25');">parser</a></tt><tt class="py-op">,</tt> </tt>
 <a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">        <tt class="py-name">no_leading_text</tt><tt class="py-op">=</tt><tt class="py-keyword">not</tt> <tt class="py-name">accept_leading_text</tt><tt class="py-op">)</tt> </tt>
 <a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line"> </tt>
 <a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">create_parent</tt><tt class="py-op">:</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">,</tt> <tt id="link-53" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-53', '_strings', 'link-9');">_strings</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">,</tt> <tt class="py-name">_strings</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-name">create_parent</tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">new_root</tt> <tt class="py-op">=</tt> <tt id="link-54" class="py-name"><a title="lxml.etree.Element
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-name">new_root</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-54', 'Element', 'link-8');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">)</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-55" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-55', 'elements', 'link-48');">elements</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-56" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-56', 'elements', 'link-48');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-57" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-57', '_strings', 'link-9');">_strings</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">                <tt class="py-name">new_root</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-47', 'Element', 'link-8');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">create_parent</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-48" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-48', 'elements', 'link-42');">elements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-49', 'elements', 'link-42');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">_strings</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">                <tt class="py-name">new_root</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-58', 'text', 'link-58');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-59" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-59', 'elements', 'link-48');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">                <tt class="py-keyword">del</tt> <tt id="link-60" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-60', 'elements', 'link-48');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">            <tt class="py-name">new_root</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-61', 'extend', 'link-61');">extend</a></tt><tt class="py-op">(</tt><tt id="link-62" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-62', 'elements', 'link-48');">elements</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-50', 'text', 'link-50');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-51', 'elements', 'link-42');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">                <tt class="py-keyword">del</tt> <tt id="link-52" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-52', 'elements', 'link-42');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">            <tt class="py-name">new_root</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-53', 'extend', 'link-53');">extend</a></tt><tt class="py-op">(</tt><tt id="link-54" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-54', 'elements', 'link-42');">elements</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">new_root</tt> </tt>
 <a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"> </tt>
-<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-63" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-63', 'elements', 'link-48');">elements</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-64" class="py-name"><a title="lxml.etree
+<a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-55" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-55', 'elements', 'link-42');">elements</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-56" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-64', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-65', 'ParserError', 'link-45');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'No elements found'</tt><tt class="py-op">)</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-66" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-66', 'elements', 'link-48');">elements</a></tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-67" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-56', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-57', 'ParserError', 'link-40');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'No elements found'</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-58" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-58', 'elements', 'link-42');">elements</a></tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-59" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-67', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-68', 'ParserError', 'link-45');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Multiple elements found'</tt><tt class="py-op">)</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-69', 'elements', 'link-48');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-70" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-70', 'tail', 'link-70');">tail</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-71', 'tail', 'link-70');">tail</a></tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-72', 'strip', 'link-43');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-73" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-59', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-60', 'ParserError', 'link-40');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Multiple elements found'</tt><tt class="py-op">)</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">    <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-61" class="py-name"><a title="lxml.etree.DTD.elements" class="py-name" href="#" onclick="return doclink('link-61', 'elements', 'link-42');">elements</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-62', 'tail', 'link-62');">tail</a></tt> <tt class="py-keyword">and</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-63', 'tail', 'link-62');">tail</a></tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-64', 'strip', 'link-38');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt id="link-65" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-73', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-74', 'ParserError', 'link-45');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Element followed by text: %r'</tt> <tt class="py-op">%</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-75" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-75', 'tail', 'link-70');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-76" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-76', 'tail', 'link-70');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-65', 'etree', 'link-3');">etree</a></tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="lxml.etree.ParserError" class="py-name" href="#" onclick="return doclink('link-66', 'ParserError', 'link-40');">ParserError</a></tt><tt class="py-op">(</tt><tt class="py-string">'Element followed by text: %r'</tt> <tt class="py-op">%</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-67', 'tail', 'link-62');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">    <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-68', 'tail', 'link-62');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 <a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">result</tt> </tt>
 </div><a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line"> </tt>
 <a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line"> </tt>
@@ -432,69 +432,69 @@ xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doc
 <a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line"><tt class="py-docstring"></tt> </tt>
 <a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line"><tt class="py-docstring">    base_url will set the document's base_url attribute (and the tree's docinfo.URL)</tt> </tt>
 <a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-77" class="py-name"><a title="lxml.html
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-69" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-77', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-78" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-78', '_strings', 'link-9');">_strings</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-69', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt class="py-name">_strings</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt><tt class="py-string">'string required'</tt><tt class="py-op">)</tt> </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">    <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-79" class="py-name" targets="Function lxml.html.html5parser.document_fromstring()=lxml.html.html5parser-module.html#document_fromstring"><a title="lxml.html.html5parser.document_fromstring" class="py-name" href="#" onclick="return doclink('link-79', 'document_fromstring', 'link-79');">document_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-80" class="py-name"><a title="lxml.html
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">    <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-70" class="py-name" targets="Function lxml.html.html5parser.document_fromstring()=lxml.html.html5parser-module.html#document_fromstring"><a title="lxml.html.html5parser.document_fromstring" class="py-name" href="#" onclick="return doclink('link-70', 'document_fromstring', 'link-70');">document_fromstring</a></tt><tt class="py-op">(</tt><tt id="link-71" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-80', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-81" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-81', 'parser', 'link-28');">parser</a></tt><tt class="py-op">=</tt><tt id="link-82" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-82', 'parser', 'link-28');">parser</a></tt><tt class="py-op">,</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-71', 'html', 'link-5');">html</a></tt><tt class="py-op">,</tt> <tt id="link-72" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-72', 'parser', 'link-25');">parser</a></tt><tt class="py-op">=</tt><tt id="link-73" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-73', 'parser', 'link-25');">parser</a></tt><tt class="py-op">,</tt> </tt>
 <a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">                              <tt class="py-name">guess_charset</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">)</tt> </tt>
 <a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line"> </tt>
 <a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">    <tt class="py-comment"># document starts with doctype or &lt;html&gt;, full document!</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt id="link-83" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-83', 'start', 'link-83');">start</a></tt> <tt class="py-op">=</tt> <tt id="link-84" class="py-name"><a title="lxml.html
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">    <tt id="link-74" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-74', 'start', 'link-74');">start</a></tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="lxml.html
 lxml.html.diff.href_token.html
 lxml.html.diff.tag_token.html
-lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-84', 'html', 'link-5');">html</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">50</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-85" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-85', 'start', 'link-83');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt id="link-86" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-86', 'start', 'link-83');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!doctype'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+lxml.html.diff.token.html" class="py-name" href="#" onclick="return doclink('link-75', 'html', 'link-5');">html</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">50</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">lstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-76" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-76', 'start', 'link-74');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html'</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt id="link-77" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-77', 'start', 'link-74');">start</a></tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!doctype'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">doc</tt> </tt>
 <a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line"> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">    <tt id="link-87" class="py-name" targets="Variable lxml.html.HtmlMixin.head=lxml.html.HtmlMixin-class.html#head"><a title="lxml.html.HtmlMixin.head" class="py-name" href="#" onclick="return doclink('link-87', 'head', 'link-87');">head</a></tt> <tt class="py-op">=</tt> <tt id="link-88" class="py-name" targets="Function lxml.html.html5parser._find_tag()=lxml.html.html5parser-module.html#_find_tag"><a title="lxml.html.html5parser._find_tag" class="py-name" href="#" onclick="return doclink('link-88', '_find_tag', 'link-88');">_find_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'head'</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">    <tt id="link-78" class="py-name" targets="Variable lxml.html.HtmlMixin.head=lxml.html.HtmlMixin-class.html#head"><a title="lxml.html.HtmlMixin.head" class="py-name" href="#" onclick="return doclink('link-78', 'head', 'link-78');">head</a></tt> <tt class="py-op">=</tt> <tt id="link-79" class="py-name" targets="Function lxml.html.html5parser._find_tag()=lxml.html.html5parser-module.html#_find_tag"><a title="lxml.html.html5parser._find_tag" class="py-name" href="#" onclick="return doclink('link-79', '_find_tag', 'link-79');">_find_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'head'</tt><tt class="py-op">)</tt> </tt>
 <a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"> </tt>
 <a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line">    <tt class="py-comment"># if the head is not empty we have a full document</tt> </tt>
-<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-89" class="py-name"><a title="lxml.html.HtmlMixin.head" class="py-name" href="#" onclick="return doclink('link-89', 'head', 'link-87');">head</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-80" class="py-name"><a title="lxml.html.HtmlMixin.head" class="py-name" href="#" onclick="return doclink('link-80', 'head', 'link-78');">head</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">doc</tt> </tt>
 <a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line"> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">    <tt id="link-90" class="py-name" targets="Variable lxml.html.HtmlMixin.body=lxml.html.HtmlMixin-class.html#body"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-90', 'body', 'link-90');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-91" class="py-name"><a title="lxml.html.html5parser._find_tag" class="py-name" href="#" onclick="return doclink('link-91', '_find_tag', 'link-88');">_find_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">    <tt id="link-81" class="py-name" targets="Variable lxml.html.HtmlMixin.body=lxml.html.HtmlMixin-class.html#body"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-81', 'body', 'link-81');">body</a></tt> <tt class="py-op">=</tt> <tt id="link-82" class="py-name"><a title="lxml.html.html5parser._find_tag" class="py-name" href="#" onclick="return doclink('link-82', '_find_tag', 'link-79');">_find_tag</a></tt><tt class="py-op">(</tt><tt class="py-name">doc</tt><tt class="py-op">,</tt> <tt class="py-string">'body'</tt><tt class="py-op">)</tt> </tt>
 <a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line"> </tt>
 <a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">    <tt class="py-comment"># The body has just one element, so it was probably a single</tt> </tt>
 <a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">    <tt class="py-comment"># element passed in</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-92" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-92', 'body', 'link-90');">body</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt id="link-93" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-93', 'body', 'link-90');">body</a></tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="lxml.etree.QName.text
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-83" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-83', 'body', 'link-81');">body</a></tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt id="link-84" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-84', 'body', 'link-81');">body</a></tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-94', 'text', 'link-58');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-95" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-95', 'body', 'link-90');">body</a></tt><tt class="py-op">.</tt><tt id="link-96" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-85', 'text', 'link-50');">text</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-86" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-86', 'body', 'link-81');">body</a></tt><tt class="py-op">.</tt><tt id="link-87" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-96', 'text', 'link-58');">text</a></tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-97', 'strip', 'link-43');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt id="link-98" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-98', 'body', 'link-90');">body</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-99" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-99', 'tail', 'link-70');">tail</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-100" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-100', 'body', 'link-90');">body</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-101', 'tail', 'link-70');">tail</a></tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-102', 'strip', 'link-43');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-103" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-103', 'body', 'link-90');">body</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-87', 'text', 'link-50');">text</a></tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-88', 'strip', 'link-38');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">        <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-keyword">not</tt> <tt id="link-89" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-89', 'body', 'link-81');">body</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-90', 'tail', 'link-62');">tail</a></tt> <tt class="py-keyword">or</tt> <tt class="py-keyword">not</tt> <tt id="link-91" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-91', 'body', 'link-81');">body</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-92', 'tail', 'link-62');">tail</a></tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-93', 'strip', 'link-38');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-94" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-94', 'body', 'link-81');">body</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 <a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line"> </tt>
 <a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">    <tt class="py-comment"># Now we have a body which represents a bunch of tags which have the</tt> </tt>
 <a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">    <tt class="py-comment"># content that was passed in.  We will create a fake container, which</tt> </tt>
 <a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">    <tt class="py-comment"># is the body tag, except &lt;body&gt; implies too much structure.</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-104" class="py-name"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-104', '_contains_block_level_tag', 'link-6');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt id="link-105" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-105', 'body', 'link-90');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt id="link-106" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-106', 'body', 'link-90');">body</a></tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-95" class="py-name"><a title="lxml.html.diff._contains_block_level_tag" class="py-name" href="#" onclick="return doclink('link-95', '_contains_block_level_tag', 'link-6');">_contains_block_level_tag</a></tt><tt class="py-op">(</tt><tt id="link-96" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-96', 'body', 'link-81');">body</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">        <tt id="link-97" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-97', 'body', 'link-81');">body</a></tt><tt class="py-op">.</tt><tt id="link-98" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-107', 'tag', 'link-22');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-98', 'tag', 'link-20');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'div'</tt> </tt>
 <a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt id="link-108" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-108', 'body', 'link-90');">body</a></tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt id="link-99" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-99', 'body', 'link-81');">body</a></tt><tt class="py-op">.</tt><tt id="link-100" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-109', 'tag', 'link-22');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'span'</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-110" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-110', 'body', 'link-90');">body</a></tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-100', 'tag', 'link-20');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'span'</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-101" class="py-name"><a title="lxml.html.HtmlMixin.body" class="py-name" href="#" onclick="return doclink('link-101', 'body', 'link-81');">body</a></tt> </tt>
 </div><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line"> </tt>
 <a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line"> </tt>
 <a name="parse"></a><div id="parse-def"><a name="L175"></a><tt class="py-lineno">175</tt> <a class="py-toggle" href="#" id="parse-toggle" onclick="return toggle('parse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.html5parser-module.html#parse">parse</a><tt class="py-op">(</tt><tt class="py-param">filename_url_or_file</tt><tt class="py-op">,</tt> <tt class="py-param">guess_charset</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -502,34 +502,34 @@ xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return docl
 <a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"><tt class="py-docstring">    tree.  Note: this returns a tree, not an element.  Use</tt> </tt>
 <a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"><tt class="py-docstring">    ``parse(...).getroot()`` to get the document root.</tt> </tt>
 <a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-111" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-111', 'parser', 'link-28');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt id="link-112" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-112', 'parser', 'link-28');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-113" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-113', 'html_parser', 'link-30');">html_parser</a></tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">filename_url_or_file</tt><tt class="py-op">,</tt> <tt id="link-114" class="py-name"><a title="lxml.html.html5parser._strings" class="py-name" href="#" onclick="return doclink('link-114', '_strings', 'link-9');">_strings</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-102" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-102', 'parser', 'link-25');">parser</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt id="link-103" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-103', 'parser', 'link-25');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-104" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-104', 'html_parser', 'link-27');">html_parser</a></tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">filename_url_or_file</tt><tt class="py-op">,</tt> <tt class="py-name">_strings</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">        <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">filename_url_or_file</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt id="link-115" class="py-name" targets="Function lxml.html.html5parser._looks_like_url()=lxml.html.html5parser-module.html#_looks_like_url"><a title="lxml.html.html5parser._looks_like_url" class="py-name" href="#" onclick="return doclink('link-115', '_looks_like_url', 'link-115');">_looks_like_url</a></tt><tt class="py-op">(</tt><tt class="py-name">filename_url_or_file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">    <tt class="py-keyword">elif</tt> <tt id="link-105" class="py-name" targets="Function lxml.html.html5parser._looks_like_url()=lxml.html.html5parser-module.html#_looks_like_url"><a title="lxml.html.html5parser._looks_like_url" class="py-name" href="#" onclick="return doclink('link-105', '_looks_like_url', 'link-105');">_looks_like_url</a></tt><tt class="py-op">(</tt><tt class="py-name">filename_url_or_file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">        <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">urlopen</tt><tt class="py-op">(</tt><tt class="py-name">filename_url_or_file</tt><tt class="py-op">)</tt> </tt>
 <a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">    <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">        <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename_url_or_file</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-116" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-116', 'parser', 'link-28');">parser</a></tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-106" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-106', 'parser', 'link-25');">parser</a></tt><tt class="py-op">.</tt><tt id="link-107" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-117', 'parse', 'link-13');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">useChardet</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">)</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-107', 'parse', 'link-11');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt> <tt class="py-name">useChardet</tt><tt class="py-op">=</tt><tt class="py-name">guess_charset</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line"> </tt>
 <a name="_looks_like_url"></a><div id="_looks_like_url-def"><a name="L190"></a><tt class="py-lineno">190</tt> <a class="py-toggle" href="#" id="_looks_like_url-toggle" onclick="return toggle('_looks_like_url');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.html.html5parser-module.html#_looks_like_url">_looks_like_url</a><tt class="py-op">(</tt><tt class="py-param">str</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_looks_like_url-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_looks_like_url-expanded"><a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">    <tt class="py-name">scheme</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-118', 'str', 'link-12');">str</a></tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+</div><div id="_looks_like_url-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_looks_like_url-expanded"><a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">    <tt class="py-name">scheme</tt> <tt class="py-op">=</tt> <tt class="py-name">urlparse</tt><tt class="py-op">(</tt><tt id="link-108" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-108', 'str', 'link-10');">str</a></tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
 <a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">scheme</tt> <tt class="py-op">!=</tt> <tt class="py-string">''</tt> </tt>
 </div><a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line"> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt id="link-119" class="py-name"><a title="lxml.html.html5parser.html_parser
-lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-119', 'html_parser', 'link-30');">html_parser</a></tt> <tt class="py-op">=</tt> <tt id="link-120" class="py-name"><a title="lxml.etree.HTMLParser
+<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line"><tt id="link-109" class="py-name"><a title="lxml.html.html5parser.html_parser
+lxml.html.html_parser" class="py-name" href="#" onclick="return doclink('link-109', 'html_parser', 'link-27');">html_parser</a></tt> <tt class="py-op">=</tt> <tt id="link-110" class="py-name"><a title="lxml.etree.HTMLParser
 lxml.html.HTMLParser
-lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-120', 'HTMLParser', 'link-0');">HTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+lxml.html.html5parser.HTMLParser" class="py-name" href="#" onclick="return doclink('link-110', 'HTMLParser', 'link-0');">HTMLParser</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
@@ -568,7 +568,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 51c32978fb00e008e50a21fbce2be5a989ca251e..6ab16ce278259a0d70db71fb148209673aef3a06 100644 (file)
 <!-- ==================== CLASS DESCRIPTION ==================== -->
 <h1 class="epydoc">Class HTMLParser</h1><p class="nomargin-top"><span class="codelink"><a href="lxml.html.html5parser-pysrc.html#HTMLParser">source&nbsp;code</a></span></p>
 <pre class="base-tree">
-html5lib.HTMLParser --+
-                      |
-                     <strong class="uidshort">HTMLParser</strong>
+                     object --+    
+                              |    
+html5lib.html5parser.HTMLParser --+
+                                  |
+                                 <strong class="uidshort">HTMLParser</strong>
 </pre>
 
 <hr />
@@ -95,9 +97,10 @@ An html5lib HTML parser with lxml as tree.
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+          <td><span class="summary-sig"><a href="lxml.html.html5parser.HTMLParser-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
         <span class="summary-sig-arg">strict</span>=<span class="summary-sig-default">False</span>,
-        <span class="summary-sig-arg">**kwargs</span>)</span></td>
+        <span class="summary-sig-arg">**kwargs</span>)</span><br />
+      strict - raise an exception when a parse error is encountered</td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.html.html5parser-pysrc.html#HTMLParser.__init__">source&nbsp;code</a></span>
             
@@ -107,7 +110,121 @@ An html5lib HTML parser with lxml as tree.
       
     </td>
   </tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>html5lib.html5parser.HTMLParser</code></b>:
+      <code>adjustForeignAttributes</code>,
+      <code>adjustMathMLAttributes</code>,
+      <code>adjustSVGAttributes</code>,
+      <code>isHTMLIntegrationPoint</code>,
+      <code>isMathMLTextIntegrationPoint</code>,
+      <code>mainLoop</code>,
+      <code>normalizeToken</code>,
+      <code>normalizedTokens</code>,
+      <code>parse</code>,
+      <code>parseError</code>,
+      <code>parseFragment</code>,
+      <code>parseRCDataRawtext</code>,
+      <code>reparseTokenNormal</code>,
+      <code>reset</code>,
+      <code>resetInsertionMode</code>
+      </p>
+    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code>html5lib.html5parser.HTMLParser</code></b> (private):
+      <code>_parse</code>
+      </p></div>
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__delattr__</code>,
+      <code>__format__</code>,
+      <code>__getattribute__</code>,
+      <code>__hash__</code>,
+      <code>__new__</code>,
+      <code>__reduce__</code>,
+      <code>__reduce_ex__</code>,
+      <code>__repr__</code>,
+      <code>__setattr__</code>,
+      <code>__sizeof__</code>,
+      <code>__str__</code>,
+      <code>__subclasshook__</code>
+      </p>
+    </td>
+  </tr>
 </table>
+<!-- ==================== PROPERTIES ==================== -->
+<a name="section-Properties"></a>
+<table class="summary" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Properties</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-Properties"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+  <tr>
+    <td colspan="2" class="summary">
+    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
+      <code>__class__</code>
+      </p>
+    </td>
+  </tr>
+</table>
+<!-- ==================== METHOD DETAILS ==================== -->
+<a name="section-MethodDetails"></a>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+  <td colspan="2" class="table-header">
+    <table border="0" cellpadding="0" cellspacing="0" width="100%">
+      <tr valign="top">
+        <td align="left"><span class="table-header">Method Details</span></td>
+        <td align="right" valign="top"
+         ><span class="options">[<a href="#section-MethodDetails"
+         class="privatelink" onclick="toggle_private();"
+         >hide private</a>]</span></td>
+      </tr>
+    </table>
+  </td>
+</tr>
+</table>
+<a name="__init__"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+       cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+  <table width="100%" cellpadding="0" cellspacing="0" border="0">
+  <tr valign="top"><td>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
+        <span class="sig-arg">strict</span>=<span class="sig-default">False</span>,
+        <span class="sig-arg">**kwargs</span>)</span>
+    <br /><em class="fname">(Constructor)</em>
+  </h3>
+  </td><td align="right" valign="top"
+    ><span class="codelink"><a href="lxml.html.html5parser-pysrc.html#HTMLParser.__init__">source&nbsp;code</a></span>&nbsp;
+    </td>
+  </tr></table>
+  
+  <p>strict - raise an exception when a parse error is encountered</p>
+<p>tree - a treebuilder class controlling the type of tree that will be
+returned. Built in treebuilders can be accessed through
+html5lib.treebuilders.getTreeBuilder(treeType)</p>
+<p>tokenizer - a class that provides a stream of tokens to the treebuilder.
+This may be replaced for e.g. a sanitizer which converts some tags to
+text</p>
+  <dl class="fields">
+    <dt>Overrides:
+        object.__init__
+        <dd><em class="note">(inherited documentation)</em></dd>
+    </dt>
+  </dl>
+</td></tr></table>
+</div>
+<br />
 <!-- ==================== NAVIGATION BAR ==================== -->
 <table class="navbar" border="0" width="100%" cellpadding="0"
        bgcolor="#a0c0ff" cellspacing="0">
@@ -139,7 +256,7 @@ An html5lib HTML parser with lxml as tree.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0566aa1ba4a5d7fbf041f8747d28bed26c3815af..9b2256a7966b4b997e6ed1bd8c7447d9c41faa16 100644 (file)
@@ -139,7 +139,7 @@ An html5lib XHTML Parser with lxml as tree.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ce6dd2ba42c758235adc18c593271c4bebef1924..7176f56a20b6bad4da2ebd8a1ac55fdb0f09a344 100644 (file)
@@ -449,7 +449,7 @@ keyword.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 26b266b7983d755bf072ebdd605a5ddc9ea50423..9a2e4c286f66ce4ce128b70ae6a64b0bc222ec57 100644 (file)
@@ -304,7 +304,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6e8d96b5ba8ab863c0a9aefaf9bde26c62cf68b9..66873be89bb7648e5a611f4c496019c8a414341f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bb7241256986d0653618d337ef0f8729f0ec8e94..f9be6bf921845313bf5ee7ac5881a1c47e1259f5 100644 (file)
@@ -116,7 +116,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cafe06031f4139eef10c5dbab965a9f0a386c6fb..83d1bf7ab887db6bce2efb40b1d0c1a9cbbb570d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7a9d362afc99f6eb8df49a3c700392cb8279a750..4e0d7de6d8609ed773ce762fe51b28da109a50aa 100644 (file)
@@ -100,7 +100,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 45cb3c2df6de6669afa18a6ee07839e0969d4623..5e805d2707654ea25e1a8d4198b39eafe8da1569 100644 (file)
@@ -533,7 +533,7 @@ chematron.rng')))
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bc6d4b6e090b79cc9f51ce3b18332c2fa4908228..34ae333997e701947b5b0c78224805a5205338a9 100644 (file)
@@ -597,7 +597,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:10 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d943dee589494e3d2a460a041445122826e87761..4b87c13a47a051aa4a21006d8f3196de02b8469f 100644 (file)
@@ -685,7 +685,7 @@ been turned off).
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7f6196aa4e5cb0e5637b2bc61efbb9e405e78bdd..470420b4433a8d8fd2684efaa00546ec953d0ec1 100644 (file)
@@ -629,7 +629,7 @@ attributes.</td>
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object at 0x16cd470&gt;">&lt;lxml.objectify.ElementMaker object at 0x16cd470&gt;</code>
+        <a name="E"></a><span class="summary-name">E</span> = <code title="&lt;lxml.objectify.ElementMaker object at 0x1b847d0&gt;">&lt;lxml.objectify.ElementMaker object at 0x1b847d0&gt;</code>
     </td>
   </tr>
 <tr>
@@ -1136,7 +1136,7 @@ elements.  Pass 'string', for example, to make string values the default.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 67794ba329910ddd381d5c78a72af9ddb01b6ac1..9cfef1c0020cab3ddb5654d819acc93b400270b0 100644 (file)
@@ -801,7 +801,7 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4a63d6b4b9c7d239e2db363b993fd70781196a70..82f4ee0090a7e060549f78795ba3463260e923d8 100644 (file)
@@ -364,7 +364,7 @@ some text
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 82929d512c7715362d67d39608cd5213ce3d42a4..742a0cbe48167809635a468e67559168df43ff78 100644 (file)
@@ -390,7 +390,7 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eea8d7cbfdfcfe6849d17a477f715e1fe1488f4c..a9eb110b09176090494f6be1cefad9a48cee6bbd 100644 (file)
@@ -396,7 +396,7 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6ebdd75d0b474a376145dfe09605bfa4859e546d..b62e00c6cc5a22f0a24035273a8307c47d73b433 100644 (file)
@@ -390,7 +390,7 @@ this if they recursively call _init() in the superclasses.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ced0a8f864c4c006ca505003239e4fb7bf9b3954..311f2cf60b232f63840833948a42149074480525 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 54ddef6b1c1a882b9982b82f93857db99e17f6df..f925ecb72e8b8281780fcadccd160a084c92dc3d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 22266a30b7f732f6b5de682b19501966392ce42d..6ff45d928e620015733c3245d7259c9e501b413f 100644 (file)
@@ -452,7 +452,7 @@ as second argument) or raises AttributeError.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f9d11cb17b569a6b33091f862c830eb958699c1..620187e10a4855c2273d36ada28414773639320c 100644 (file)
@@ -408,7 +408,7 @@ doing.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0b42d9aaa57dde973fb32ac07bc84d835624a1a3..11fd748e2e440b6991d83eda0049a95357758ba4 100644 (file)
@@ -859,7 +859,7 @@ returned in document order.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 258401bcee152dc441934462054a1a031ce0bc2b..c736b4a8ea7b674efb64c1e658c107f1bf89478c 100644 (file)
@@ -276,7 +276,7 @@ empty data elements (defauls to StringElement).</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f3d01745324796b16966f480f7f84015302f317d..eff0f74879fa3b715b22af143a213e8544a3c273 100644 (file)
@@ -443,7 +443,7 @@ ignored.  Raises ValueError if the dependencies cannot be fulfilled.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f581073db7cde0b3cddbc7549a828be0f00e7631..5163fb5092eddf2aee03a87fb88a1dc6af45fe09 100644 (file)
@@ -731,7 +731,7 @@ Instead, use the .text attribute to get a 'real' string.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c8ca470a7e197f1442ac481aa8acf9e737faf840..ab94297683267a8e281d99f9fd7a3194beb3e96d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3d6ac939020c3fb643f452fa275ae940f822a121..76a0909b2223e22caabafccebcbe45fbf17ea4d2 100644 (file)
@@ -106,7 +106,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c7e201acade75e8c6cce8d57ecc4ac492feb3da1..4c82f4457f8bfd38323e60d402b50807852186b9 100644 (file)
@@ -219,7 +219,7 @@ them against a SAX ContentHandler.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3e77a72662166504507c4b428f90ffbee7211a29..7a363cdd89cccbd84ce5d9ade3e1c253faded3d3 100644 (file)
@@ -488,7 +488,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 12536e3114a8368a6cf502855121fae61e1a2372..ecdcb0f8794a6fe1f0102306706879f781fb5392 100644 (file)
@@ -871,7 +871,7 @@ Locator provides useful information.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a2ab7f0b832b4888810cbb502beebb4ab2fa2cd1..10f8a6c5350cdf86b173adcf4784a13c60c54c02 100644 (file)
@@ -281,7 +281,7 @@ Produces SAX events for an element and children.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1796c8a83ab77d4085c7d23ed9576a56619efbc9..5a661b91a512593425dc9fb671cd79c0829c5abb 100644 (file)
@@ -211,7 +211,7 @@ General SAX error.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ec10c1b0706f9f624eae8007944afdc982a73901..7df3dc0478d3ea50061e5d97b98d8612b7e48047 100644 (file)
@@ -169,7 +169,7 @@ namespace registry mechanism</em>    </li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index cf3ddb97312e1f70a79e975e0f7038aed778cbe9..61bd8142eb2921ef7caa692a3306e4d1c2aff8fa 100644 (file)
@@ -102,7 +102,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e56283f5fa78bcbcd2a14302c1f4271914ff2b0b..e9a54d5dcf5d198f3c912eb8f8afddb44678e98f 100644 (file)
@@ -490,7 +490,7 @@ occurrences of pattern in string by the replacement repl.</td>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e107ba602a807e43f00b107f6b08aad0976723e8..3c29ff2d479618876b6b4e66147566ef499354e9 100644 (file)
@@ -536,7 +536,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e219145ad392053fa35524c1e56de8cf32305348..ab585509c221ffc2961ef479e770f7a681604470 100644 (file)
@@ -74,7 +74,7 @@ unittest.case.TestCase --+
 <dl><dt>Known Subclasses:</dt>
 <dd>
       <ul class="subclass-list">
-<li><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">test_xslt.ETreeEXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">test_xslt.ETreeXSLTExtElementTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">test_xslt.ETreeXSLTExtFuncTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">test_xslt.ETreeXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">test_xslt.Py3XSLTTestCase</a></li><li>, <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">test_dtd.ETreeDtdTestCase</a></li><li>, <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">test_isoschematron.ETreeISOSchematronTestCase</a></li><li>, <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">test_http_io.HttpIOTestCase</a></li><li>, <a href="lxml.tests.test_errors.ErrorTestCase-class.html">test_errors.ErrorTestCase</a></li><li>, <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">test_pyclasslookup.PyClassLookupTestCase</a></li><li class="private">, <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">test_incremental_xmlfile._XmlFileTestCaseBase</a></li><li>, <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">test_objectify.ObjectifyTestCase</a></li><li>, <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">test_schematron.ETreeSchematronTestCase</a></li><li class="private">, <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">test_io._IOTestCaseBase</a></li><li class="private">, <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">test_elementtree._ETreeTestCaseBase</a></li><li>, <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">test_relaxng.ETreeRelaxNGTestCase</a></li><li>, <a href="lxml.tests.test_builder.BuilderTestCase-class.html">test_builder.BuilderTestCase</a></li><li>, <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">test_unicode.UnicodeTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">test_xpathevaluator.ETreeETXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">test_xpathevaluator.ETreeXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">test_xpathevaluator.ETreeXPathExsltTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">test_xpathevaluator.ETreeXPathTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">test_classlookup.ClassLookupTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">test_classlookup.ProxyTestCase</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">test_nsclasses.ETreeNamespaceClassesTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">test_xmlschema.ETreeXMLSchemaResolversTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">test_xmlschema.ETreeXMLSchemaTestCase</a></li><li>, <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">test_htmlparser.HtmlParserTestCase</a></li><li>, <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">test_sax.ETreeSaxTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">test_etree.ETreeC14NTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">test_etree.ETreeErrorLogTest</a></li><li>, <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">test_etree.ETreeOnlyTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">test_etree.ETreeWriteTestCase</a></li><li class="private">, <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">test_etree._XIncludeTestCase</a></li><li>, <a href="lxml.tests.test_css.CSSTestCase-class.html">test_css.CSSTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">test_threading.ThreadPipelineTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">test_threading.ThreadingTestCase</a></li>  </ul>
+<li><a href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">test_xslt.ETreeEXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">test_xslt.ETreeXSLTExtElementTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">test_xslt.ETreeXSLTExtFuncTestCase</a></li><li>, <a href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html">test_xslt.ETreeXSLTTestCase</a></li><li>, <a href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">test_xslt.Py3XSLTTestCase</a></li><li>, <a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html">test_dtd.ETreeDtdTestCase</a></li><li>, <a href="lxml.tests.test_isoschematron.ETreeISOSchematronTestCase-class.html">test_isoschematron.ETreeISOSchematronTestCase</a></li><li>, <a href="lxml.tests.test_relaxng.ETreeRelaxNGTestCase-class.html">test_relaxng.ETreeRelaxNGTestCase</a></li><li>, <a href="lxml.tests.test_http_io.HttpIOTestCase-class.html">test_http_io.HttpIOTestCase</a></li><li>, <a href="lxml.tests.test_errors.ErrorTestCase-class.html">test_errors.ErrorTestCase</a></li><li>, <a href="lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html">test_pyclasslookup.PyClassLookupTestCase</a></li><li class="private">, <a href="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html" onclick="show_private();">test_incremental_xmlfile._XmlFileTestCaseBase</a></li><li>, <a href="lxml.tests.test_objectify.ObjectifyTestCase-class.html">test_objectify.ObjectifyTestCase</a></li><li>, <a href="lxml.tests.test_schematron.ETreeSchematronTestCase-class.html">test_schematron.ETreeSchematronTestCase</a></li><li class="private">, <a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">test_io._IOTestCaseBase</a></li><li class="private">, <a href="lxml.tests.test_elementtree._ETreeTestCaseBase-class.html" onclick="show_private();">test_elementtree._ETreeTestCaseBase</a></li><li>, <a href="lxml.tests.test_css.CSSTestCase-class.html">test_css.CSSTestCase</a></li><li>, <a href="lxml.tests.test_unicode.UnicodeTestCase-class.html">test_unicode.UnicodeTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeETXPathClassTestCase-class.html">test_xpathevaluator.ETreeETXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathClassTestCase-class.html">test_xpathevaluator.ETreeXPathClassTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathExsltTestCase-class.html">test_xpathevaluator.ETreeXPathExsltTestCase</a></li><li>, <a href="lxml.tests.test_xpathevaluator.ETreeXPathTestCase-class.html">test_xpathevaluator.ETreeXPathTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ClassLookupTestCase-class.html">test_classlookup.ClassLookupTestCase</a></li><li>, <a href="lxml.tests.test_classlookup.ProxyTestCase-class.html">test_classlookup.ProxyTestCase</a></li><li>, <a href="lxml.tests.test_nsclasses.ETreeNamespaceClassesTestCase-class.html">test_nsclasses.ETreeNamespaceClassesTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaResolversTestCase-class.html">test_xmlschema.ETreeXMLSchemaResolversTestCase</a></li><li>, <a href="lxml.tests.test_xmlschema.ETreeXMLSchemaTestCase-class.html">test_xmlschema.ETreeXMLSchemaTestCase</a></li><li>, <a href="lxml.tests.test_htmlparser.HtmlParserTestCase-class.html">test_htmlparser.HtmlParserTestCase</a></li><li>, <a href="lxml.tests.test_sax.ETreeSaxTestCase-class.html">test_sax.ETreeSaxTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">test_etree.ETreeC14NTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">test_etree.ETreeErrorLogTest</a></li><li>, <a href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">test_etree.ETreeOnlyTestCase</a></li><li>, <a href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">test_etree.ETreeWriteTestCase</a></li><li class="private">, <a href="lxml.tests.test_etree._XIncludeTestCase-class.html" onclick="show_private();">test_etree._XIncludeTestCase</a></li><li>, <a href="lxml.tests.test_builder.BuilderTestCase-class.html">test_builder.BuilderTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadPipelineTestCase-class.html">test_threading.ThreadPipelineTestCase</a></li><li>, <a href="lxml.tests.test_threading.ThreadingTestCase-class.html">test_threading.ThreadingTestCase</a></li>  </ul>
 </dd></dl>
 
 <hr />
@@ -420,7 +420,7 @@ unittest.case.TestCase --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ae41cbf84525a71a72e436ef4cdad58e9a476208..0f2497988e0648a89ad87f91da679a32e08e0ebe 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c568f2b62fb09fd0d517781a7a5d0174e21e2f71..255dfebd770d64f2d530e1f96bf95fc77aaa1050 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b374e2fdf0f280555a61beef1953aac2e40a2f25..c638cd16f6b92c47b5bb14aab12c49b7ca21f3a8 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d7a1483ddbd6542ea083fe0f71a0d00d3587bc3e..04edc788c4bddb87ea63fc1ea58bb9aab7262599 100644 (file)
@@ -263,7 +263,7 @@ Simple HTTP request dumper for tests in Python 2.5+.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 24a7f3edbd265a734cd396e3e652e74b62a203e1..ff9886284d48f1d7e75c345bd74979a5f3279e6b 100644 (file)
@@ -105,58 +105,59 @@ lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick
 <a name="L35"></a><tt class="py-lineno">35</tt>  <tt class="py-line">        <tt class="py-keyword">yield</tt> <tt class="py-string">'http://%s:%s/'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">host</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">)</tt>  <tt class="py-comment"># yield control to 'with' body</tt> </tt>
 <a name="L36"></a><tt class="py-lineno">36</tt>  <tt class="py-line">    <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
 <a name="L37"></a><tt class="py-lineno">37</tt>  <tt class="py-line">        <tt class="py-name">server</tt><tt class="py-op">.</tt><tt class="py-name">shutdown</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line"> </tt>
-<a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"> </tt>
-<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">SocketServer</tt> <tt class="py-keyword">import</tt> <tt class="py-name">ThreadingMixIn</tt> </tt>
-<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
-<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line">    <tt class="py-comment"># Python 3</tt> </tt>
-<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">socketserver</tt> <tt class="py-keyword">import</tt> <tt class="py-name">ThreadingMixIn</tt> </tt>
-<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line"> </tt>
-<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">wsgiref</tt><tt class="py-op">.</tt><tt class="py-name">simple_server</tt> <tt class="py-keyword">as</tt> <tt class="py-name">wsgiserver</tt> </tt>
-<a name="WebServer"></a><div id="WebServer-def"><a name="L47"></a><tt class="py-lineno">47</tt> <a class="py-toggle" href="#" id="WebServer-toggle" onclick="return toggle('WebServer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.WebServer-class.html">WebServer</a><tt class="py-op">(</tt><tt class="py-base-class">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-base-class">WSGIServer</tt><tt class="py-op">,</tt> <tt class="py-base-class">ThreadingMixIn</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="WebServer-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="WebServer-expanded"><a name="L48"></a><tt class="py-lineno">48</tt>  <tt class="py-line">    <tt class="py-docstring">"""A web server that starts a new thread for each request.</tt> </tt>
-<a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-</div><a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"> </tt>
-<a name="_RequestHandler"></a><div id="_RequestHandler-def"><a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"> </tt>
-<a name="L52"></a><tt class="py-lineno">52</tt> <a class="py-toggle" href="#" id="_RequestHandler-toggle" onclick="return toggle('_RequestHandler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html">_RequestHandler</a><tt class="py-op">(</tt><tt class="py-base-class">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-base-class">WSGIRequestHandler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_RequestHandler-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="_RequestHandler-expanded"><a name="_RequestHandler.get_stderr"></a><div id="_RequestHandler.get_stderr-def"><a name="L53"></a><tt class="py-lineno">53</tt> <a class="py-toggle" href="#" id="_RequestHandler.get_stderr-toggle" onclick="return toggle('_RequestHandler.get_stderr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html#get_stderr">get_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_RequestHandler.get_stderr-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RequestHandler.get_stderr-expanded"><a name="L54"></a><tt class="py-lineno">54</tt>  <tt class="py-line">        <tt class="py-comment"># don't write to stderr</tt> </tt>
-<a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt> </tt>
-</div><a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line"> </tt>
-<a name="_RequestHandler.log_message"></a><div id="_RequestHandler.log_message-def"><a name="L57"></a><tt class="py-lineno">57</tt> <a class="py-toggle" href="#" id="_RequestHandler.log_message-toggle" onclick="return toggle('_RequestHandler.log_message');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html#log_message">log_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">format</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_RequestHandler.log_message-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RequestHandler.log_message-expanded"><a name="L58"></a><tt class="py-lineno">58</tt>  <tt class="py-line">        <tt class="py-comment"># message = "wsmock(%s) %s" % (self.address_string(), format % args)</tt> </tt>
-<a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt>  <tt class="py-comment"># don't log messages</tt> </tt>
-</div></div><a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line"> </tt>
-<a name="build_web_server"></a><div id="build_web_server-def"><a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line"> </tt>
-<a name="L62"></a><tt class="py-lineno">62</tt> <a class="py-toggle" href="#" id="build_web_server-toggle" onclick="return toggle('build_web_server');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server-module.html#build_web_server">build_web_server</a><tt class="py-op">(</tt><tt class="py-param">app</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">,</tt> <tt class="py-param">host</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="build_web_server-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="build_web_server-expanded"><a name="L63"></a><tt class="py-lineno">63</tt>  <tt class="py-line">    <tt class="py-name">server</tt> <tt class="py-op">=</tt> <tt class="py-name">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-name">make_server</tt><tt class="py-op">(</tt> </tt>
-<a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">        <tt class="py-name">host</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">,</tt> <tt class="py-name">app</tt><tt class="py-op">,</tt> </tt>
-<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">        <tt class="py-name">server_class</tt><tt class="py-op">=</tt><tt id="link-4" class="py-name" targets="Class lxml.tests.dummy_http_server.WebServer=lxml.tests.dummy_http_server.WebServer-class.html"><a title="lxml.tests.dummy_http_server.WebServer" class="py-name" href="#" onclick="return doclink('link-4', 'WebServer', 'link-4');">WebServer</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-name">handler_class</tt><tt class="py-op">=</tt><tt id="link-5" class="py-name" targets="Class lxml.tests.dummy_http_server._RequestHandler=lxml.tests.dummy_http_server._RequestHandler-class.html"><a title="lxml.tests.dummy_http_server._RequestHandler" class="py-name" href="#" onclick="return doclink('link-5', '_RequestHandler', 'link-5');">_RequestHandler</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">server</tt> </tt>
-</div><a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line"> </tt>
-<a name="HTTPRequestCollector"></a><div id="HTTPRequestCollector-def"><a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line"> </tt>
-<a name="L70"></a><tt class="py-lineno">70</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector-toggle" onclick="return toggle('HTTPRequestCollector');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HTTPRequestCollector-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="HTTPRequestCollector-expanded"><a name="HTTPRequestCollector.__init__"></a><div id="HTTPRequestCollector.__init__-def"><a name="L71"></a><tt class="py-lineno">71</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector.__init__-toggle" onclick="return toggle('HTTPRequestCollector.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">response_data</tt><tt class="py-op">,</tt> <tt class="py-param">response_code</tt><tt class="py-op">=</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HTTPRequestCollector.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="HTTPRequestCollector.__init__-expanded"><a name="L72"></a><tt class="py-lineno">72</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requests</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_code</tt> <tt class="py-op">=</tt> <tt class="py-name">response_code</tt> </tt>
-<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_data</tt> <tt class="py-op">=</tt> <tt class="py-name">response_data</tt> </tt>
-<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line"> </tt>
-<a name="HTTPRequestCollector.__call__"></a><div id="HTTPRequestCollector.__call__-def"><a name="L77"></a><tt class="py-lineno">77</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector.__call__-toggle" onclick="return toggle('HTTPRequestCollector.__call__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">environ</tt><tt class="py-op">,</tt> <tt class="py-param">start_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="HTTPRequestCollector.__call__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="HTTPRequestCollector.__call__-expanded"><a name="L78"></a><tt class="py-lineno">78</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requests</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-6', 'append', 'link-6');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt> </tt>
-<a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">            <tt class="py-name">environ</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
+<a name="L38"></a><tt class="py-lineno">38</tt>  <tt class="py-line">        <tt class="py-name">server</tt><tt class="py-op">.</tt><tt class="py-name">server_close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L39"></a><tt class="py-lineno">39</tt>  <tt class="py-line"> </tt>
+<a name="L40"></a><tt class="py-lineno">40</tt>  <tt class="py-line"> </tt>
+<a name="L41"></a><tt class="py-lineno">41</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">42</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">SocketServer</tt> <tt class="py-keyword">import</tt> <tt class="py-name">ThreadingMixIn</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">43</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno">44</tt>  <tt class="py-line">    <tt class="py-comment"># Python 3</tt> </tt>
+<a name="L45"></a><tt class="py-lineno">45</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">socketserver</tt> <tt class="py-keyword">import</tt> <tt class="py-name">ThreadingMixIn</tt> </tt>
+<a name="L46"></a><tt class="py-lineno">46</tt>  <tt class="py-line"> </tt>
+<a name="L47"></a><tt class="py-lineno">47</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">wsgiref</tt><tt class="py-op">.</tt><tt class="py-name">simple_server</tt> <tt class="py-keyword">as</tt> <tt class="py-name">wsgiserver</tt> </tt>
+<a name="WebServer"></a><div id="WebServer-def"><a name="L48"></a><tt class="py-lineno">48</tt> <a class="py-toggle" href="#" id="WebServer-toggle" onclick="return toggle('WebServer');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.WebServer-class.html">WebServer</a><tt class="py-op">(</tt><tt class="py-base-class">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-base-class">WSGIServer</tt><tt class="py-op">,</tt> <tt class="py-base-class">ThreadingMixIn</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="WebServer-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="WebServer-expanded"><a name="L49"></a><tt class="py-lineno">49</tt>  <tt class="py-line">    <tt class="py-docstring">"""A web server that starts a new thread for each request.</tt> </tt>
+<a name="L50"></a><tt class="py-lineno">50</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+</div><a name="L51"></a><tt class="py-lineno">51</tt>  <tt class="py-line"> </tt>
+<a name="_RequestHandler"></a><div id="_RequestHandler-def"><a name="L52"></a><tt class="py-lineno">52</tt>  <tt class="py-line"> </tt>
+<a name="L53"></a><tt class="py-lineno">53</tt> <a class="py-toggle" href="#" id="_RequestHandler-toggle" onclick="return toggle('_RequestHandler');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html">_RequestHandler</a><tt class="py-op">(</tt><tt class="py-base-class">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-base-class">WSGIRequestHandler</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RequestHandler-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="_RequestHandler-expanded"><a name="_RequestHandler.get_stderr"></a><div id="_RequestHandler.get_stderr-def"><a name="L54"></a><tt class="py-lineno">54</tt> <a class="py-toggle" href="#" id="_RequestHandler.get_stderr-toggle" onclick="return toggle('_RequestHandler.get_stderr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html#get_stderr">get_stderr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RequestHandler.get_stderr-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RequestHandler.get_stderr-expanded"><a name="L55"></a><tt class="py-lineno">55</tt>  <tt class="py-line">        <tt class="py-comment"># don't write to stderr</tt> </tt>
+<a name="L56"></a><tt class="py-lineno">56</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt> </tt>
+</div><a name="L57"></a><tt class="py-lineno">57</tt>  <tt class="py-line"> </tt>
+<a name="_RequestHandler.log_message"></a><div id="_RequestHandler.log_message-def"><a name="L58"></a><tt class="py-lineno">58</tt> <a class="py-toggle" href="#" id="_RequestHandler.log_message-toggle" onclick="return toggle('_RequestHandler.log_message');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server._RequestHandler-class.html#log_message">log_message</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">format</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_RequestHandler.log_message-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="_RequestHandler.log_message-expanded"><a name="L59"></a><tt class="py-lineno">59</tt>  <tt class="py-line">        <tt class="py-comment"># message = "wsmock(%s) %s" % (self.address_string(), format % args)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno">60</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt>  <tt class="py-comment"># don't log messages</tt> </tt>
+</div></div><a name="L61"></a><tt class="py-lineno">61</tt>  <tt class="py-line"> </tt>
+<a name="build_web_server"></a><div id="build_web_server-def"><a name="L62"></a><tt class="py-lineno">62</tt>  <tt class="py-line"> </tt>
+<a name="L63"></a><tt class="py-lineno">63</tt> <a class="py-toggle" href="#" id="build_web_server-toggle" onclick="return toggle('build_web_server');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server-module.html#build_web_server">build_web_server</a><tt class="py-op">(</tt><tt class="py-param">app</tt><tt class="py-op">,</tt> <tt class="py-param">port</tt><tt class="py-op">,</tt> <tt class="py-param">host</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="build_web_server-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="build_web_server-expanded"><a name="L64"></a><tt class="py-lineno">64</tt>  <tt class="py-line">    <tt class="py-name">server</tt> <tt class="py-op">=</tt> <tt class="py-name">wsgiserver</tt><tt class="py-op">.</tt><tt class="py-name">make_server</tt><tt class="py-op">(</tt> </tt>
+<a name="L65"></a><tt class="py-lineno">65</tt>  <tt class="py-line">        <tt class="py-name">host</tt> <tt class="py-keyword">or</tt> <tt class="py-string">''</tt><tt class="py-op">,</tt> <tt class="py-name">port</tt><tt class="py-op">,</tt> <tt class="py-name">app</tt><tt class="py-op">,</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">66</tt>  <tt class="py-line">        <tt class="py-name">server_class</tt><tt class="py-op">=</tt><tt id="link-4" class="py-name" targets="Class lxml.tests.dummy_http_server.WebServer=lxml.tests.dummy_http_server.WebServer-class.html"><a title="lxml.tests.dummy_http_server.WebServer" class="py-name" href="#" onclick="return doclink('link-4', 'WebServer', 'link-4');">WebServer</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">67</tt>  <tt class="py-line">        <tt class="py-name">handler_class</tt><tt class="py-op">=</tt><tt id="link-5" class="py-name" targets="Class lxml.tests.dummy_http_server._RequestHandler=lxml.tests.dummy_http_server._RequestHandler-class.html"><a title="lxml.tests.dummy_http_server._RequestHandler" class="py-name" href="#" onclick="return doclink('link-5', '_RequestHandler', 'link-5');">_RequestHandler</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno">68</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">server</tt> </tt>
+</div><a name="L69"></a><tt class="py-lineno">69</tt>  <tt class="py-line"> </tt>
+<a name="HTTPRequestCollector"></a><div id="HTTPRequestCollector-def"><a name="L70"></a><tt class="py-lineno">70</tt>  <tt class="py-line"> </tt>
+<a name="L71"></a><tt class="py-lineno">71</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector-toggle" onclick="return toggle('HTTPRequestCollector');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html">HTTPRequestCollector</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HTTPRequestCollector-collapsed" style="display:none;" pad="++" indent="++++"></div><div id="HTTPRequestCollector-expanded"><a name="HTTPRequestCollector.__init__"></a><div id="HTTPRequestCollector.__init__-def"><a name="L72"></a><tt class="py-lineno">72</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector.__init__-toggle" onclick="return toggle('HTTPRequestCollector.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">response_data</tt><tt class="py-op">,</tt> <tt class="py-param">response_code</tt><tt class="py-op">=</tt><tt class="py-number">200</tt><tt class="py-op">,</tt> <tt class="py-param">headers</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HTTPRequestCollector.__init__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="HTTPRequestCollector.__init__-expanded"><a name="L73"></a><tt class="py-lineno">73</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requests</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L74"></a><tt class="py-lineno">74</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_code</tt> <tt class="py-op">=</tt> <tt class="py-name">response_code</tt> </tt>
+<a name="L75"></a><tt class="py-lineno">75</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_data</tt> <tt class="py-op">=</tt> <tt class="py-name">response_data</tt> </tt>
+<a name="L76"></a><tt class="py-lineno">76</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">headers</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L77"></a><tt class="py-lineno">77</tt>  <tt class="py-line"> </tt>
+<a name="HTTPRequestCollector.__call__"></a><div id="HTTPRequestCollector.__call__-def"><a name="L78"></a><tt class="py-lineno">78</tt> <a class="py-toggle" href="#" id="HTTPRequestCollector.__call__-toggle" onclick="return toggle('HTTPRequestCollector.__call__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.dummy_http_server.HTTPRequestCollector-class.html#__call__">__call__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">environ</tt><tt class="py-op">,</tt> <tt class="py-param">start_response</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="HTTPRequestCollector.__call__-collapsed" style="display:none;" pad="++" indent="++++++++"></div><div id="HTTPRequestCollector.__call__-expanded"><a name="L79"></a><tt class="py-lineno">79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">requests</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-6', 'append', 'link-6');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt> </tt>
+<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line">            <tt class="py-name">environ</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-7', 'get', 'link-7');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'PATH_INFO'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L80"></a><tt class="py-lineno">80</tt>  <tt class="py-line">            <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line">            <tt class="py-name">urlparse</tt><tt class="py-op">.</tt><tt class="py-name">parse_qsl</tt><tt class="py-op">(</tt><tt class="py-name">environ</tt><tt class="py-op">.</tt><tt id="link-8" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-8', 'get', 'link-7');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'QUERY_STRING'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L81"></a><tt class="py-lineno">81</tt>  <tt class="py-line">        <tt class="py-name">start_response</tt><tt class="py-op">(</tt><tt class="py-string">'%s OK'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_code</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
-<a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_data</tt><tt class="py-op">]</tt> </tt>
-</div></div><a name="L83"></a><tt class="py-lineno">83</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L82"></a><tt class="py-lineno">82</tt>  <tt class="py-line">        <tt class="py-name">start_response</tt><tt class="py-op">(</tt><tt class="py-string">'%s OK'</tt> <tt class="py-op">%</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_code</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">headers</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno">83</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-op">[</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">response_data</tt><tt class="py-op">]</tt> </tt>
+</div></div><a name="L84"></a><tt class="py-lineno">84</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -194,7 +195,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1851d2cf1eff7a48f4701e8a03486b72e092dfa7..6506caf7c66b7af5b55900c98dd846842cbd6bf4 100644 (file)
@@ -246,7 +246,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e0d6cf2c6e586439c57e4026f4df1ab5f82670fb..df300b32863c0c05ea77f24431b2ed7a40f59456 100644 (file)
@@ -203,7 +203,7 @@ A web server that starts a new thread for each request.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eab99725e12f36e983ab53bbd8d4605533392e39..103691247d233292e69eb912d3aaa9a2cb83cf2b 100644 (file)
@@ -330,7 +330,7 @@ message.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b4596a31fecb05673254a2575e143be6d922e66a..c9a35f0aa19870239788fc3786d3c2702e56d988 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fd18cd7fcc3e3a460dad9df7d21e8e7a1f7f78c8..f1dc70c8ff5cc769668223686db09968a56519ae 100644 (file)
@@ -225,7 +225,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 297b6187ba4b8ee2d1b2d78a890ccac4971a2ef4..43bb9ece589c0c4a2ebfb9304281a2ee708401ec 100644 (file)
@@ -400,7 +400,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d94a7918f6fc0d1c74c558801a76581d5ee79632..13cfc2302b3094b2e6adc633c1cd2f3a1f99a8d5 100644 (file)
@@ -269,7 +269,7 @@ Tests for different Element class lookup mechanisms.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 14b7cf61c83ec53bfa6c3502fed4018786c50266..d0855cc3814cbab3e6569d9d75c55e3e9560c0af 100644 (file)
@@ -1106,7 +1106,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 39a70f775afe43f1ad5aef8d4535e9e6a8799d2d..3094787707e0a45b563337973b20dd81d30b1cf1 100644 (file)
@@ -588,7 +588,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index dd902dea67a6ada4fa2741105212cce5314216fc..61784fdd871764560f895e34c6fe5375845adf77 100644 (file)
@@ -498,7 +498,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3c0de4f2b265d2958d54f5ba154e9cea8c5814d3..61e72dd48c807cbafbf4112a291b4c95d462cf2d 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1ec4b3fadfbe3dac925aea49124f8a2f2d5d7cb6..c3f0581d4a9abf7aa0552ec716e380e2bb5e7fb7 100644 (file)
@@ -192,7 +192,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aafa7cfaac509d859be4608ffbbd951578e3ff8a..ad3927b413b52dd29c1b908c70bc3fecb3d499ec 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 69a9c492fb30004de21121c982c3896ddc70b283..27235a36b181b7f6100fe516a47c6dbd37f5cf10 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to DTD parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3ae59c79783fb2f11c97b6de35a230e7a5df7619..1b25e59146221bb2208a5d835d2aa406545f5517 100644 (file)
@@ -655,7 +655,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 31c234855122b62a88624df2650425ca3d331245..89bc3338eb9252b1e66c8de782b8ca97e114c512 100644 (file)
     </td><td class="summary">
       <table width="100%" cellpadding="0" cellspacing="0" border="0">
         <tr>
-          <td><span class="summary-sig"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd" class="summary-sig-name">test_iterparse_file_dtd</a>(<span class="summary-sig-arg">*args</span>,
-        <span class="summary-sig-arg">**kwargs</span>)</span></td>
+          <td><span class="summary-sig"><a href="lxml.tests.test_dtd.ETreeDtdTestCase-class.html#test_iterparse_file_dtd" class="summary-sig-name">test_iterparse_file_dtd</a>(<span class="summary-sig-arg">self</span>)</span></td>
           <td align="right" valign="top">
             <span class="codelink"><a href="lxml.tests.test_dtd-pysrc.html#ETreeDtdTestCase.test_iterparse_file_dtd">source&nbsp;code</a></span>
             
 <tr><td>
   <table width="100%" cellpadding="0" cellspacing="0" border="0">
   <tr valign="top"><td>
-  <h3 class="epydoc"><span class="sig"><span class="sig-name">test_iterparse_file_dtd</span>(<span class="sig-arg">*args</span>,
-        <span class="sig-arg">**kwargs</span>)</span>
+  <h3 class="epydoc"><span class="sig"><span class="sig-name">test_iterparse_file_dtd</span>(<span class="sig-arg">self</span>)</span>
   </h3>
   </td><td align="right" valign="top"
     ><span class="codelink"><a href="lxml.tests.test_dtd-pysrc.html#ETreeDtdTestCase.test_iterparse_file_dtd">source&nbsp;code</a></span>&nbsp;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e759e38ecb602e6e52aa9683f226d45ca9a533b1..95bf6358162be57862b26cb05213fb29fd93b1e7 100644 (file)
@@ -271,7 +271,7 @@ for IO related test cases.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1db240422a90dc0bdbb21a6249c3a04a4c402089..2faa0cb411ea30668b8335e7d14d03175d01a6e3 100644 (file)
@@ -10451,7 +10451,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:10 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ccc30bf2ffb28a91ea357784ef27402798947ad3..a3d2c334291a4109bd18e6688e38924e49f1d923 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c26c2f264329b6288e8ad5abc19212f185b6fe6c..572f6adca79299fbb54632b6b8ccf268910f6c74 100644 (file)
@@ -649,7 +649,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1d892ae972976e2653968924c1f936dc8ef67816..85b1ee3f7a8f82a861ecdacdf719a9951bb6405e 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f0282d385802bb2fe8a474e11fcf07607c1df3ef..b09578c2187b8fbc480e223d3f49938e9b0e6ffe 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2477187b1a1d41d5a27f72ffd6fcf613825eecac..ec6fb846628800253ce51acdc4660cbbacb99e4a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 703818c88bd82ac9b86a3070af68e592c22a2413..988c6c11a0d72c6012fbcaa60d0a62dd5e377b05 100644 (file)
@@ -259,7 +259,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f2885474076e5fede6d56ff4d3c87668686c2b88..983ec29c70d83b167edaa3407bca6947b2bb03ed 100644 (file)
@@ -416,7 +416,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0df2d6e1d22dd096b7ac5aeb3f873b4e7318e7c7..6e55f9302948bd20c785b663dd096fa6694bf421 100644 (file)
@@ -268,7 +268,7 @@ test_elementtree</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9d7f85f21e68eb2f1bc0e375e9c31cea659fe930..2b168ea68d6e1900b14f5674a77cafb1723f4278 100644 (file)
@@ -84,9 +84,10 @@ lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('lin
 <a name="L15"></a><tt class="py-lineno">  15</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gc</tt> </tt>
 <a name="L16"></a><tt class="py-lineno">  16</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">operator</tt> </tt>
 <a name="L17"></a><tt class="py-lineno">  17</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">tempfile</tt> </tt>
-<a name="L18"></a><tt class="py-lineno">  18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt> </tt>
-<a name="L19"></a><tt class="py-lineno">  19</tt>  <tt class="py-line"> </tt>
-<a name="L20"></a><tt class="py-lineno">  20</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
+<a name="L18"></a><tt class="py-lineno">  18</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">zlib</tt> </tt>
+<a name="L19"></a><tt class="py-lineno">  19</tt>  <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">gzip</tt> </tt>
+<a name="L20"></a><tt class="py-lineno">  20</tt>  <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno">  21</tt>  <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable lxml.tests.test_builder.this_dir=lxml.tests.test_builder-module.html#this_dir,Variable lxml.tests.test_classlookup.this_dir=lxml.tests.test_classlookup-module.html#this_dir,Variable lxml.tests.test_dtd.this_dir=lxml.tests.test_dtd-module.html#this_dir,Variable lxml.tests.test_elementtree.this_dir=lxml.tests.test_elementtree-module.html#this_dir,Variable lxml.tests.test_errors.this_dir=lxml.tests.test_errors-module.html#this_dir,Variable lxml.tests.test_etree.this_dir=lxml.tests.test_etree-module.html#this_dir,Variable lxml.tests.test_htmlparser.this_dir=lxml.tests.test_htmlparser-module.html#this_dir,Variable lxml.tests.test_http_io.this_dir=lxml.tests.test_http_io-module.html#this_dir,Variable lxml.tests.test_incremental_xmlfile.this_dir=lxml.tests.test_incremental_xmlfile-module.html#this_dir,Variable lxml.tests.test_io.this_dir=lxml.tests.test_io-module.html#this_dir,Variable lxml.tests.test_isoschematron.this_dir=lxml.tests.test_isoschematron-module.html#this_dir,Variable lxml.tests.test_nsclasses.this_dir=lxml.tests.test_nsclasses-module.html#this_dir,Variable lxml.tests.test_objectify.this_dir=lxml.tests.test_objectify-module.html#this_dir,Variable lxml.tests.test_pyclasslookup.this_dir=lxml.tests.test_pyclasslookup-module.html#this_dir,Variable lxml.tests.test_relaxng.this_dir=lxml.tests.test_relaxng-module.html#this_dir,Variable lxml.tests.test_sax.this_dir=lxml.tests.test_sax-module.html#this_dir,Variable lxml.tests.test_schematron.this_dir=lxml.tests.test_schematron-module.html#this_dir,Variable lxml.tests.test_threading.this_dir=lxml.tests.test_threading-module.html#this_dir,Variable lxml.tests.test_unicode.this_dir=lxml.tests.test_unicode-module.html#this_dir,Variable lxml.tests.test_xmlschema.this_dir=lxml.tests.test_xmlschema-module.html#this_dir,Variable lxml.tests.test_xpathevaluator.this_dir=lxml.tests.test_xpathevaluator-module.html#this_dir,Variable lxml.tests.test_xslt.this_dir=lxml.tests.test_xslt-module.html#this_dir"><a title="lxml.tests.test_builder.this_dir
 lxml.tests.test_classlookup.this_dir
 lxml.tests.test_dtd.this_dir
 lxml.tests.test_elementtree.this_dir
@@ -108,7 +109,7 @@ lxml.tests.test_unicode.this_dir
 lxml.tests.test_xmlschema.this_dir
 lxml.tests.test_xpathevaluator.this_dir
 lxml.tests.test_xslt.this_dir" class="py-name" href="#" onclick="return doclink('link-2', 'this_dir', 'link-2');">this_dir</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-3', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">dirname</tt><tt class="py-op">(</tt><tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
-<a name="L21"></a><tt class="py-lineno">  21</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-4" class="py-name"><a title="lxml.tests.test_builder.this_dir
+<a name="L22"></a><tt class="py-lineno">  22</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-4" class="py-name"><a title="lxml.tests.test_builder.this_dir
 lxml.tests.test_classlookup.this_dir
 lxml.tests.test_dtd.this_dir
 lxml.tests.test_elementtree.this_dir
@@ -130,7 +131,7 @@ lxml.tests.test_unicode.this_dir
 lxml.tests.test_xmlschema.this_dir
 lxml.tests.test_xpathevaluator.this_dir
 lxml.tests.test_xslt.this_dir" class="py-name" href="#" onclick="return doclink('link-4', 'this_dir', 'link-2');">this_dir</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-5', 'path', 'link-0');">path</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L22"></a><tt class="py-lineno">  22</tt>  <tt class="py-line">    <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-6', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method lxml.etree._Element.insert()=lxml.etree._Element-class.html#insert"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-7', 'insert', 'link-7');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt id="link-8" class="py-name"><a title="lxml.tests.test_builder.this_dir
+<a name="L23"></a><tt class="py-lineno">  23</tt>  <tt class="py-line">    <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-6', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Method lxml.etree._Element.insert()=lxml.etree._Element-class.html#insert"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-7', 'insert', 'link-7');">insert</a></tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt id="link-8" class="py-name"><a title="lxml.tests.test_builder.this_dir
 lxml.tests.test_classlookup.this_dir
 lxml.tests.test_dtd.this_dir
 lxml.tests.test_elementtree.this_dir
@@ -152,58 +153,58 @@ lxml.tests.test_unicode.this_dir
 lxml.tests.test_xmlschema.this_dir
 lxml.tests.test_xpathevaluator.this_dir
 lxml.tests.test_xslt.this_dir" class="py-name" href="#" onclick="return doclink('link-8', 'this_dir', 'link-2');">this_dir</a></tt><tt class="py-op">)</tt> <tt class="py-comment"># needed for Py3</tt> </tt>
-<a name="L23"></a><tt class="py-lineno">  23</tt>  <tt class="py-line"> </tt>
-<a name="L24"></a><tt class="py-lineno">  24</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name" targets="Module lxml.tests.common_imports=lxml.tests.common_imports-module.html"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-9', 'common_imports', 'link-9');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Module lxml.etree=lxml.etree-module.html,Variable lxml.sax.ElementTreeContentHandler.etree=lxml.sax.ElementTreeContentHandler-class.html#etree,Variable lxml.tests.test_elementtree.CElementTreeTestCase.etree=lxml.tests.test_elementtree.CElementTreeTestCase-class.html#etree,Variable lxml.tests.test_elementtree._ETreeTestCaseBase.etree=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#etree,Variable lxml.tests.test_io._IOTestCaseBase.etree=lxml.tests.test_io._IOTestCaseBase-class.html#etree"><a title="lxml.etree
+<a name="L24"></a><tt class="py-lineno">  24</tt>  <tt class="py-line"> </tt>
+<a name="L25"></a><tt class="py-lineno">  25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-9" class="py-name" targets="Module lxml.tests.common_imports=lxml.tests.common_imports-module.html"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-9', 'common_imports', 'link-9');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-10" class="py-name" targets="Module lxml.etree=lxml.etree-module.html,Variable lxml.sax.ElementTreeContentHandler.etree=lxml.sax.ElementTreeContentHandler-class.html#etree,Variable lxml.tests.test_elementtree.CElementTreeTestCase.etree=lxml.tests.test_elementtree.CElementTreeTestCase-class.html#etree,Variable lxml.tests.test_elementtree._ETreeTestCaseBase.etree=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#etree,Variable lxml.tests.test_io._IOTestCaseBase.etree=lxml.tests.test_io._IOTestCaseBase-class.html#etree"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-10', 'etree', 'link-10');">etree</a></tt><tt class="py-op">,</tt> <tt class="py-name">StringIO</tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Class lxml.tests.common_imports.HelperTestCase=lxml.tests.common_imports.HelperTestCase-class.html"><a title="lxml.tests.common_imports.HelperTestCase" class="py-name" href="#" onclick="return doclink('link-11', 'HelperTestCase', 'link-11');">HelperTestCase</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Function lxml.tests.common_imports.fileInTestDir()=lxml.tests.common_imports-module.html#fileInTestDir"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-12', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Function lxml.tests.common_imports.read_file()=lxml.tests.common_imports-module.html#read_file"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-13', 'read_file', 'link-13');">read_file</a></tt> </tt>
-<a name="L25"></a><tt class="py-lineno">  25</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-14" class="py-name"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-14', 'common_imports', 'link-9');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Class lxml.tests.common_imports.SillyFileLike=lxml.tests.common_imports.SillyFileLike-class.html"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-15', 'SillyFileLike', 'link-15');">SillyFileLike</a></tt><tt class="py-op">,</tt> <tt id="link-16" class="py-name" targets="Class lxml.tests.common_imports.LargeFileLikeUnicode=lxml.tests.common_imports.LargeFileLikeUnicode-class.html"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-16', 'LargeFileLikeUnicode', 'link-16');">LargeFileLikeUnicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctest</tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name" targets="Function lxml.tests.common_imports.make_doctest()=lxml.tests.common_imports-module.html#make_doctest"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-17', 'make_doctest', 'link-17');">make_doctest</a></tt> </tt>
-<a name="L26"></a><tt class="py-lineno">  26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-18" class="py-name"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-18', 'common_imports', 'link-9');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Function lxml.tests.common_imports.canonicalize()=lxml.tests.common_imports-module.html#canonicalize"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-19', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">,</tt> <tt class="py-name">sorted</tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name" targets="Function lxml.tests.common_imports._str()=lxml.tests.common_imports-module.html#_str"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-20', '_str', 'link-20');">_str</a></tt><tt class="py-op">,</tt> <tt id="link-21" class="py-name" targets="Function lxml.tests.common_imports._bytes()=lxml.tests.common_imports-module.html#_bytes"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-21', '_bytes', 'link-21');">_bytes</a></tt> </tt>
-<a name="L27"></a><tt class="py-lineno">  27</tt>  <tt class="py-line"> </tt>
-<a name="L28"></a><tt class="py-lineno">  28</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
-<a name="L29"></a><tt class="py-lineno">  29</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"TESTED VERSION: %s"</tt> <tt class="py-op">%</tt> <tt id="link-22" class="py-name"><a title="lxml.etree
+<a name="L26"></a><tt class="py-lineno">  26</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-14" class="py-name"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-14', 'common_imports', 'link-9');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Class lxml.tests.common_imports.SillyFileLike=lxml.tests.common_imports.SillyFileLike-class.html"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-15', 'SillyFileLike', 'link-15');">SillyFileLike</a></tt><tt class="py-op">,</tt> <tt id="link-16" class="py-name" targets="Class lxml.tests.common_imports.LargeFileLikeUnicode=lxml.tests.common_imports.LargeFileLikeUnicode-class.html"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-16', 'LargeFileLikeUnicode', 'link-16');">LargeFileLikeUnicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctest</tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name" targets="Function lxml.tests.common_imports.make_doctest()=lxml.tests.common_imports-module.html#make_doctest"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-17', 'make_doctest', 'link-17');">make_doctest</a></tt> </tt>
+<a name="L27"></a><tt class="py-lineno">  27</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-18" class="py-name"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-18', 'common_imports', 'link-9');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Function lxml.tests.common_imports.canonicalize()=lxml.tests.common_imports-module.html#canonicalize"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-19', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">,</tt> <tt class="py-name">sorted</tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name" targets="Function lxml.tests.common_imports._str()=lxml.tests.common_imports-module.html#_str"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-20', '_str', 'link-20');">_str</a></tt><tt class="py-op">,</tt> <tt id="link-21" class="py-name" targets="Function lxml.tests.common_imports._bytes()=lxml.tests.common_imports-module.html#_bytes"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-21', '_bytes', 'link-21');">_bytes</a></tt> </tt>
+<a name="L28"></a><tt class="py-lineno">  28</tt>  <tt class="py-line"> </tt>
+<a name="L29"></a><tt class="py-lineno">  29</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
+<a name="L30"></a><tt class="py-lineno">  30</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"TESTED VERSION: %s"</tt> <tt class="py-op">%</tt> <tt id="link-22" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-22', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__version__</tt><tt class="py-op">)</tt> </tt>
-<a name="L30"></a><tt class="py-lineno">  30</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    Python:           "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L31"></a><tt class="py-lineno">  31</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    lxml.etree:       "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-23" class="py-name"><a title="lxml.etree
+<a name="L31"></a><tt class="py-lineno">  31</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    Python:           "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L32"></a><tt class="py-lineno">  32</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    lxml.etree:       "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-23" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-23', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-24" class="py-name" targets="Variable lxml.etree.LXML_VERSION=lxml.etree-module.html#LXML_VERSION"><a title="lxml.etree.LXML_VERSION" class="py-name" href="#" onclick="return doclink('link-24', 'LXML_VERSION', 'link-24');">LXML_VERSION</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L32"></a><tt class="py-lineno">  32</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    libxml used:      "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-25" class="py-name"><a title="lxml.etree
+<a name="L33"></a><tt class="py-lineno">  33</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    libxml used:      "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-25" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-25', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Variable lxml.etree.LIBXML_VERSION=lxml.etree-module.html#LIBXML_VERSION"><a title="lxml.etree.LIBXML_VERSION" class="py-name" href="#" onclick="return doclink('link-26', 'LIBXML_VERSION', 'link-26');">LIBXML_VERSION</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L33"></a><tt class="py-lineno">  33</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    libxml compiled:  "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-27" class="py-name"><a title="lxml.etree
+<a name="L34"></a><tt class="py-lineno">  34</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    libxml compiled:  "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-27" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-27', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-28" class="py-name" targets="Variable lxml.etree.LIBXML_COMPILED_VERSION=lxml.etree-module.html#LIBXML_COMPILED_VERSION"><a title="lxml.etree.LIBXML_COMPILED_VERSION" class="py-name" href="#" onclick="return doclink('link-28', 'LIBXML_COMPILED_VERSION', 'link-28');">LIBXML_COMPILED_VERSION</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L34"></a><tt class="py-lineno">  34</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    libxslt used:     "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="lxml.etree
+<a name="L35"></a><tt class="py-lineno">  35</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    libxslt used:     "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-29" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-29', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-30" class="py-name" targets="Variable lxml.etree.LIBXSLT_VERSION=lxml.etree-module.html#LIBXSLT_VERSION"><a title="lxml.etree.LIBXSLT_VERSION" class="py-name" href="#" onclick="return doclink('link-30', 'LIBXSLT_VERSION', 'link-30');">LIBXSLT_VERSION</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L35"></a><tt class="py-lineno">  35</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    libxslt compiled: "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="lxml.etree
+<a name="L36"></a><tt class="py-lineno">  36</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"    libxslt compiled: "</tt> <tt class="py-op">+</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-31" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-31', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-32" class="py-name" targets="Variable lxml.etree.LIBXSLT_COMPILED_VERSION=lxml.etree-module.html#LIBXSLT_COMPILED_VERSION"><a title="lxml.etree.LIBXSLT_COMPILED_VERSION" class="py-name" href="#" onclick="return doclink('link-32', 'LIBXSLT_COMPILED_VERSION', 'link-32');">LIBXSLT_COMPILED_VERSION</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L36"></a><tt class="py-lineno">  36</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
-<a name="L37"></a><tt class="py-lineno">  37</tt>  <tt class="py-line"> </tt>
-<a name="L38"></a><tt class="py-lineno">  38</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L39"></a><tt class="py-lineno">  39</tt>  <tt class="py-line">    <tt class="py-name">_unicode</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt> </tt>
-<a name="L40"></a><tt class="py-lineno">  40</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
-<a name="L41"></a><tt class="py-lineno">  41</tt>  <tt class="py-line">    <tt class="py-comment"># Python 3</tt> </tt>
-<a name="L42"></a><tt class="py-lineno">  42</tt>  <tt class="py-line">    <tt class="py-name">_unicode</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name" targets="Class str=str-class.html"><a title="str" class="py-name" href="#" onclick="return doclink('link-33', 'str', 'link-33');">str</a></tt> </tt>
-<a name="L43"></a><tt class="py-lineno">  43</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase"></a><div id="ETreeOnlyTestCase-def"><a name="L44"></a><tt class="py-lineno">  44</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase-toggle" onclick="return toggle('ETreeOnlyTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeOnlyTestCase-expanded"><a name="L45"></a><tt class="py-lineno">  45</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests only for etree, not ElementTree"""</tt> </tt>
-<a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line">    <tt id="link-34" class="py-name"><a title="lxml.etree
+<a name="L37"></a><tt class="py-lineno">  37</tt>  <tt class="py-line"><tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
+<a name="L38"></a><tt class="py-lineno">  38</tt>  <tt class="py-line"> </tt>
+<a name="L39"></a><tt class="py-lineno">  39</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L40"></a><tt class="py-lineno">  40</tt>  <tt class="py-line">    <tt class="py-name">_unicode</tt> <tt class="py-op">=</tt> <tt class="py-name">unicode</tt> </tt>
+<a name="L41"></a><tt class="py-lineno">  41</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
+<a name="L42"></a><tt class="py-lineno">  42</tt>  <tt class="py-line">    <tt class="py-comment"># Python 3</tt> </tt>
+<a name="L43"></a><tt class="py-lineno">  43</tt>  <tt class="py-line">    <tt class="py-name">_unicode</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name" targets="Class str=str-class.html"><a title="str" class="py-name" href="#" onclick="return doclink('link-33', 'str', 'link-33');">str</a></tt> </tt>
+<a name="L44"></a><tt class="py-lineno">  44</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase"></a><div id="ETreeOnlyTestCase-def"><a name="L45"></a><tt class="py-lineno">  45</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase-toggle" onclick="return toggle('ETreeOnlyTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html">ETreeOnlyTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeOnlyTestCase-expanded"><a name="L46"></a><tt class="py-lineno">  46</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests only for etree, not ElementTree"""</tt> </tt>
+<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line">    <tt id="link-34" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -212,81 +213,81 @@ lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-35', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L47"></a><tt class="py-lineno">  47</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_version"></a><div id="ETreeOnlyTestCase.test_version-def"><a name="L48"></a><tt class="py-lineno">  48</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_version-toggle" onclick="return toggle('ETreeOnlyTestCase.test_version');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_version">test_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_version-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_version-expanded"><a name="L49"></a><tt class="py-lineno">  49</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-36" class="py-name"><a title="lxml.etree
+<a name="L48"></a><tt class="py-lineno">  48</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_version"></a><div id="ETreeOnlyTestCase.test_version-def"><a name="L49"></a><tt class="py-lineno">  49</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_version-toggle" onclick="return toggle('ETreeOnlyTestCase.test_version');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_version">test_version</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_version-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_version-expanded"><a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-36" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-36', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__version__</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L50"></a><tt class="py-lineno">  50</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="lxml.etree
+<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-37" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-37', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-38" class="py-name"><a title="lxml.etree.LXML_VERSION" class="py-name" href="#" onclick="return doclink('link-38', 'LXML_VERSION', 'link-24');">LXML_VERSION</a></tt><tt class="py-op">,</tt> <tt class="py-name">tuple</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L51"></a><tt class="py-lineno">  51</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-39" class="py-name"><a title="lxml.etree
+<a name="L52"></a><tt class="py-lineno">  52</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-39" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-39', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="lxml.etree.LXML_VERSION" class="py-name" href="#" onclick="return doclink('link-40', 'LXML_VERSION', 'link-24');">LXML_VERSION</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L52"></a><tt class="py-lineno">  52</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="lxml.etree
+<a name="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-41" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-41', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-42" class="py-name"><a title="lxml.etree.LXML_VERSION" class="py-name" href="#" onclick="return doclink('link-42', 'LXML_VERSION', 'link-24');">LXML_VERSION</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L53"></a><tt class="py-lineno">  53</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-43" class="py-name"><a title="lxml.etree
+<a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-43" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-43', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="lxml.etree.LXML_VERSION" class="py-name" href="#" onclick="return doclink('link-44', 'LXML_VERSION', 'link-24');">LXML_VERSION</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L54"></a><tt class="py-lineno">  54</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-45" class="py-name"><a title="lxml.etree
+<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-45" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-45', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-46" class="py-name"><a title="lxml.etree.LXML_VERSION" class="py-name" href="#" onclick="return doclink('link-46', 'LXML_VERSION', 'link-24');">LXML_VERSION</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L55"></a><tt class="py-lineno">  55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="lxml.etree
+<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-47" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-47', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-48" class="py-name"><a title="lxml.etree.LXML_VERSION" class="py-name" href="#" onclick="return doclink('link-48', 'LXML_VERSION', 'link-24');">LXML_VERSION</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">int</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L56"></a><tt class="py-lineno">  56</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="lxml.etree
+<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-49" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-49', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">__version__</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt> </tt>
-<a name="L57"></a><tt class="py-lineno">  57</tt>  <tt class="py-line">            <tt id="link-50" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-50', 'str', 'link-33');">str</a></tt><tt class="py-op">(</tt><tt id="link-51" class="py-name"><a title="lxml.etree
+<a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line">            <tt id="link-50" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-50', 'str', 'link-33');">str</a></tt><tt class="py-op">(</tt><tt id="link-51" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-51', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-52" class="py-name"><a title="lxml.etree.LXML_VERSION" class="py-name" href="#" onclick="return doclink('link-52', 'LXML_VERSION', 'link-24');">LXML_VERSION</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L58"></a><tt class="py-lineno">  58</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_c_api"></a><div id="ETreeOnlyTestCase.test_c_api-def"><a name="L59"></a><tt class="py-lineno">  59</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_c_api-toggle" onclick="return toggle('ETreeOnlyTestCase.test_c_api');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_c_api-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_c_api-expanded"><a name="L60"></a><tt class="py-lineno">  60</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-53" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-53', 'hasattr', 'link-53');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="lxml.etree
+</div><a name="L59"></a><tt class="py-lineno">  59</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_c_api"></a><div id="ETreeOnlyTestCase.test_c_api-def"><a name="L60"></a><tt class="py-lineno">  60</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_c_api-toggle" onclick="return toggle('ETreeOnlyTestCase.test_c_api');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_c_api">test_c_api</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_c_api-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_c_api-expanded"><a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-53" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-53', 'hasattr', 'link-53');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-54', 'etree', 'link-10');">etree</a></tt><tt class="py-op">,</tt> <tt class="py-string">'__pyx_capi__'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L61"></a><tt class="py-lineno">  61</tt>  <tt class="py-line">            <tt class="py-comment"># newer Pyrex compatible C-API</tt> </tt>
-<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="lxml.etree
+<a name="L62"></a><tt class="py-lineno">  62</tt>  <tt class="py-line">            <tt class="py-comment"># newer Pyrex compatible C-API</tt> </tt>
+<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-55" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-55', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-56" class="py-name" targets="Variable lxml.etree.__pyx_capi__=lxml.etree-module.html#__pyx_capi__"><a title="lxml.etree.__pyx_capi__" class="py-name" href="#" onclick="return doclink('link-56', '__pyx_capi__', 'link-56');">__pyx_capi__</a></tt><tt class="py-op">,</tt> <tt class="py-name">dict</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L63"></a><tt class="py-lineno">  63</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="lxml.etree
+<a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-57', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="lxml.etree.__pyx_capi__" class="py-name" href="#" onclick="return doclink('link-58', '__pyx_capi__', 'link-56');">__pyx_capi__</a></tt><tt class="py-op">)</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L64"></a><tt class="py-lineno">  64</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line">            <tt class="py-comment"># older C-API mechanism</tt> </tt>
-<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-59" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-59', 'hasattr', 'link-53');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="lxml.etree
+<a name="L65"></a><tt class="py-lineno">  65</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L66"></a><tt class="py-lineno">  66</tt>  <tt class="py-line">            <tt class="py-comment"># older C-API mechanism</tt> </tt>
+<a name="L67"></a><tt class="py-lineno">  67</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-59" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-59', 'hasattr', 'link-53');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-60', 'etree', 'link-10');">etree</a></tt><tt class="py-op">,</tt> <tt class="py-string">'_import_c_api'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L67"></a><tt class="py-lineno">  67</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_names"></a><div id="ETreeOnlyTestCase.test_element_names-def"><a name="L68"></a><tt class="py-lineno">  68</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_names-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_names');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_names-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_names-expanded"><a name="L69"></a><tt class="py-lineno">  69</tt>  <tt class="py-line">        <tt id="link-61" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
+</div><a name="L68"></a><tt class="py-lineno">  68</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_names"></a><div id="ETreeOnlyTestCase.test_element_names-def"><a name="L69"></a><tt class="py-lineno">  69</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_names-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_names');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_names">test_element_names</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_names-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_names-expanded"><a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line">        <tt id="link-61" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-61', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name"><a title="lxml.etree
@@ -297,29 +298,29 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-63', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L70"></a><tt class="py-lineno">  70</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name"><a title="lxml.etree.Element
+<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-64', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L71"></a><tt class="py-lineno">  71</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
+<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-65', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L72"></a><tt class="py-lineno">  72</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-66" class="py-name"><a title="lxml.etree.Element
+<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-66" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-66', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L73"></a><tt class="py-lineno">  73</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L74"></a><tt class="py-lineno">  74</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-67" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-67', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L74"></a><tt class="py-lineno">  74</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_name_empty"></a><div id="ETreeOnlyTestCase.test_element_name_empty-def"><a name="L75"></a><tt class="py-lineno">  75</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_name_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_name_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_name_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_name_empty-expanded"><a name="L76"></a><tt class="py-lineno">  76</tt>  <tt class="py-line">        <tt id="link-68" class="py-name"><a title="lxml.etree.Element
+</div><a name="L75"></a><tt class="py-lineno">  75</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_name_empty"></a><div id="ETreeOnlyTestCase.test_element_name_empty-def"><a name="L76"></a><tt class="py-lineno">  76</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_name_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_name_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_empty">test_element_name_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_name_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_name_empty-expanded"><a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line">        <tt id="link-68" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-68', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-69" class="py-name"><a title="lxml.etree
@@ -330,24 +331,24 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-70', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L77"></a><tt class="py-lineno">  77</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="lxml.etree.Element
+<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-71', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L78"></a><tt class="py-lineno">  78</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-72" class="py-name"><a title="lxml.etree.Element
+<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-72" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-72', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">)</tt> </tt>
-<a name="L79"></a><tt class="py-lineno">  79</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-73" class="py-name" targets="Method lxml.objectify.ObjectPath.setattr()=lxml.objectify.ObjectPath-class.html#setattr"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-73', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">)</tt> </tt>
-<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line"> </tt>
-<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-74" class="py-name"><a title="lxml.etree.Element
+<a name="L80"></a><tt class="py-lineno">  80</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-73" class="py-name" targets="Method lxml.objectify.ObjectPath.setattr()=lxml.objectify.ObjectPath-class.html#setattr"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-73', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">)</tt> </tt>
+<a name="L81"></a><tt class="py-lineno">  81</tt>  <tt class="py-line"> </tt>
+<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-74" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-74', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{test}'</tt><tt class="py-op">)</tt> </tt>
-<a name="L82"></a><tt class="py-lineno">  82</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-75" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-75', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">'{test}'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_name_colon"></a><div id="ETreeOnlyTestCase.test_element_name_colon-def"><a name="L84"></a><tt class="py-lineno">  84</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_name_colon-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_name_colon');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_name_colon-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_name_colon-expanded"><a name="L85"></a><tt class="py-lineno">  85</tt>  <tt class="py-line">        <tt id="link-76" class="py-name"><a title="lxml.etree.Element
+<a name="L83"></a><tt class="py-lineno">  83</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-75" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-75', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">'{test}'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L84"></a><tt class="py-lineno">  84</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_name_colon"></a><div id="ETreeOnlyTestCase.test_element_name_colon-def"><a name="L85"></a><tt class="py-lineno">  85</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_name_colon-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_name_colon');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_colon">test_element_name_colon</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_name_colon-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_name_colon-expanded"><a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">        <tt id="link-76" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-76', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="lxml.etree
@@ -358,23 +359,23 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-78', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L86"></a><tt class="py-lineno">  86</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-79" class="py-name"><a title="lxml.etree.Element
+<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-79" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-79', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p:name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L87"></a><tt class="py-lineno">  87</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-80" class="py-name"><a title="lxml.etree.Element
+<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-80" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-80', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{test}p:name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L88"></a><tt class="py-lineno">  88</tt>  <tt class="py-line"> </tt>
-<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="lxml.etree.Element
+<a name="L89"></a><tt class="py-lineno">  89</tt>  <tt class="py-line"> </tt>
+<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-81" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-81', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L90"></a><tt class="py-lineno">  90</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-82" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-82', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">'p:name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_name_quote"></a><div id="ETreeOnlyTestCase.test_element_name_quote-def"><a name="L92"></a><tt class="py-lineno">  92</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_name_quote-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_name_quote');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_name_quote-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_name_quote-expanded"><a name="L93"></a><tt class="py-lineno">  93</tt>  <tt class="py-line">        <tt id="link-83" class="py-name"><a title="lxml.etree.Element
+<a name="L91"></a><tt class="py-lineno">  91</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-82" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-82', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">'p:name'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L92"></a><tt class="py-lineno">  92</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_name_quote"></a><div id="ETreeOnlyTestCase.test_element_name_quote-def"><a name="L93"></a><tt class="py-lineno">  93</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_name_quote-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_name_quote');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_quote">test_element_name_quote</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_name_quote-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_name_quote-expanded"><a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line">        <tt id="link-83" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-83', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="lxml.etree
@@ -385,33 +386,33 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-85', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L94"></a><tt class="py-lineno">  94</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-86" class="py-name"><a title="lxml.etree.Element
+<a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-86" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-86', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">"p'name"</tt><tt class="py-op">)</tt> </tt>
-<a name="L95"></a><tt class="py-lineno">  95</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-87" class="py-name"><a title="lxml.etree.Element
+<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-87" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-87', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p"name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L96"></a><tt class="py-lineno">  96</tt>  <tt class="py-line"> </tt>
-<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-88" class="py-name"><a title="lxml.etree.Element
+<a name="L97"></a><tt class="py-lineno">  97</tt>  <tt class="py-line"> </tt>
+<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-88" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-88', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">"{test}p'name"</tt><tt class="py-op">)</tt> </tt>
-<a name="L98"></a><tt class="py-lineno">  98</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-89" class="py-name"><a title="lxml.etree.Element
+<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-89" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-89', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{test}p"name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L99"></a><tt class="py-lineno">  99</tt>  <tt class="py-line"> </tt>
-<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name"><a title="lxml.etree.Element
+<a name="L100"></a><tt class="py-lineno"> 100</tt>  <tt class="py-line"> </tt>
+<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-90" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-90', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L101"></a><tt class="py-lineno"> 101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-91" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-91', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">"p'name"</tt><tt class="py-op">)</tt> </tt>
-<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-92" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-92', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">'p"name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_name_space"></a><div id="ETreeOnlyTestCase.test_element_name_space-def"><a name="L104"></a><tt class="py-lineno"> 104</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_name_space-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_name_space');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_name_space-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_name_space-expanded"><a name="L105"></a><tt class="py-lineno"> 105</tt>  <tt class="py-line">        <tt id="link-93" class="py-name"><a title="lxml.etree.Element
+<a name="L102"></a><tt class="py-lineno"> 102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-91" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-91', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">"p'name"</tt><tt class="py-op">)</tt> </tt>
+<a name="L103"></a><tt class="py-lineno"> 103</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-92" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-92', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">'p"name'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L104"></a><tt class="py-lineno"> 104</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_name_space"></a><div id="ETreeOnlyTestCase.test_element_name_space-def"><a name="L105"></a><tt class="py-lineno"> 105</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_name_space-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_name_space');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_name_space">test_element_name_space</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_name_space-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_name_space-expanded"><a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line">        <tt id="link-93" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-93', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="lxml.etree
@@ -422,27 +423,27 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-95', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L106"></a><tt class="py-lineno"> 106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-96" class="py-name"><a title="lxml.etree.Element
+<a name="L107"></a><tt class="py-lineno"> 107</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-96" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-96', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">' name '</tt><tt class="py-op">)</tt> </tt>
-<a name="L107"></a><tt class="py-lineno"> 107</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-97" class="py-name"><a title="lxml.etree.Element
+<a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-97" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-97', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'na me'</tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno"> 108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-98" class="py-name"><a title="lxml.etree.Element
+<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-98" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-98', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{test} name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L109"></a><tt class="py-lineno"> 109</tt>  <tt class="py-line"> </tt>
-<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="lxml.etree.Element
+<a name="L110"></a><tt class="py-lineno"> 110</tt>  <tt class="py-line"> </tt>
+<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-99" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-99', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L111"></a><tt class="py-lineno"> 111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-100', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">' name '</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_subelement_name_empty"></a><div id="ETreeOnlyTestCase.test_subelement_name_empty-def"><a name="L113"></a><tt class="py-lineno"> 113</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_name_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_name_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_subelement_name_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_name_empty-expanded"><a name="L114"></a><tt class="py-lineno"> 114</tt>  <tt class="py-line">        <tt id="link-101" class="py-name"><a title="lxml.etree.Element
+<a name="L112"></a><tt class="py-lineno"> 112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-100" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-100', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">,</tt> <tt class="py-string">' name '</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L113"></a><tt class="py-lineno"> 113</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_subelement_name_empty"></a><div id="ETreeOnlyTestCase.test_subelement_name_empty-def"><a name="L114"></a><tt class="py-lineno"> 114</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_name_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_name_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_empty">test_subelement_name_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_subelement_name_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_name_empty-expanded"><a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line">        <tt id="link-101" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-101', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-102" class="py-name"><a title="lxml.etree
@@ -453,21 +454,21 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-103', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L115"></a><tt class="py-lineno"> 115</tt>  <tt class="py-line">        <tt id="link-104" class="py-name" targets="Function lxml.etree.SubElement()=lxml.etree-module.html#SubElement"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-104', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="lxml.etree
+<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line">        <tt id="link-104" class="py-name" targets="Function lxml.etree.SubElement()=lxml.etree-module.html#SubElement"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-104', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-105" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-105', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-106" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-106', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L116"></a><tt class="py-lineno"> 116</tt>  <tt class="py-line"> </tt>
-<a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-107" class="py-name"><a title="lxml.etree.Element
+<a name="L117"></a><tt class="py-lineno"> 117</tt>  <tt class="py-line"> </tt>
+<a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-107" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-107', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L118"></a><tt class="py-lineno"> 118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-108" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-108', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">)</tt> </tt>
-<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-109" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-109', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{test}'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_subelement_name_colon"></a><div id="ETreeOnlyTestCase.test_subelement_name_colon-def"><a name="L121"></a><tt class="py-lineno"> 121</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_name_colon-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_name_colon');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_subelement_name_colon-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_name_colon-expanded"><a name="L122"></a><tt class="py-lineno"> 122</tt>  <tt class="py-line">        <tt id="link-110" class="py-name"><a title="lxml.etree.Element
+<a name="L119"></a><tt class="py-lineno"> 119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-108" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-108', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{}'</tt><tt class="py-op">)</tt> </tt>
+<a name="L120"></a><tt class="py-lineno"> 120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-109" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-109', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{test}'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L121"></a><tt class="py-lineno"> 121</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_subelement_name_colon"></a><div id="ETreeOnlyTestCase.test_subelement_name_colon-def"><a name="L122"></a><tt class="py-lineno"> 122</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_name_colon-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_name_colon');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_colon">test_subelement_name_colon</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_subelement_name_colon-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_name_colon-expanded"><a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line">        <tt id="link-110" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-110', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="lxml.etree
@@ -478,21 +479,21 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-112', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L123"></a><tt class="py-lineno"> 123</tt>  <tt class="py-line">        <tt id="link-113" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-113', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="lxml.etree
+<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line">        <tt id="link-113" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-113', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-114" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-114', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-115', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L124"></a><tt class="py-lineno"> 124</tt>  <tt class="py-line"> </tt>
-<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="lxml.etree.Element
+<a name="L125"></a><tt class="py-lineno"> 125</tt>  <tt class="py-line"> </tt>
+<a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-116" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-116', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L126"></a><tt class="py-lineno"> 126</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-117" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-117', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'p:name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-118" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-118', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{test}p:name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_subelement_name_quote"></a><div id="ETreeOnlyTestCase.test_subelement_name_quote-def"><a name="L129"></a><tt class="py-lineno"> 129</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_name_quote-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_name_quote');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_subelement_name_quote-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_name_quote-expanded"><a name="L130"></a><tt class="py-lineno"> 130</tt>  <tt class="py-line">        <tt id="link-119" class="py-name"><a title="lxml.etree.Element
+<a name="L127"></a><tt class="py-lineno"> 127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-117" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-117', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'p:name'</tt><tt class="py-op">)</tt> </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-118" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-118', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{test}p:name'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L129"></a><tt class="py-lineno"> 129</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_subelement_name_quote"></a><div id="ETreeOnlyTestCase.test_subelement_name_quote-def"><a name="L130"></a><tt class="py-lineno"> 130</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_name_quote-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_name_quote');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_quote">test_subelement_name_quote</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_subelement_name_quote-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_name_quote-expanded"><a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">        <tt id="link-119" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-119', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-120" class="py-name"><a title="lxml.etree
@@ -503,24 +504,24 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-121', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L131"></a><tt class="py-lineno"> 131</tt>  <tt class="py-line">        <tt id="link-122" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-122', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree
+<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line">        <tt id="link-122" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-122', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-123', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-124" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-124', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L132"></a><tt class="py-lineno"> 132</tt>  <tt class="py-line"> </tt>
-<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="lxml.etree.Element
+<a name="L133"></a><tt class="py-lineno"> 133</tt>  <tt class="py-line"> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-125" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-125', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L134"></a><tt class="py-lineno"> 134</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-126" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-126', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"p'name"</tt><tt class="py-op">)</tt> </tt>
-<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-127" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-127', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"{test}p'name"</tt><tt class="py-op">)</tt> </tt>
-<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line"> </tt>
-<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-128" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-128', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'p"name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-129" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-129', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{test}p"name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_subelement_name_space"></a><div id="ETreeOnlyTestCase.test_subelement_name_space-def"><a name="L140"></a><tt class="py-lineno"> 140</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_name_space-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_name_space');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_subelement_name_space-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_name_space-expanded"><a name="L141"></a><tt class="py-lineno"> 141</tt>  <tt class="py-line">        <tt id="link-130" class="py-name"><a title="lxml.etree.Element
+<a name="L135"></a><tt class="py-lineno"> 135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-126" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-126', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"p'name"</tt><tt class="py-op">)</tt> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-127" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-127', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"{test}p'name"</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt>  <tt class="py-line"> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-128" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-128', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'p"name'</tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-129" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-129', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{test}p"name'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L140"></a><tt class="py-lineno"> 140</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_subelement_name_space"></a><div id="ETreeOnlyTestCase.test_subelement_name_space-def"><a name="L141"></a><tt class="py-lineno"> 141</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_name_space-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_name_space');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_name_space">test_subelement_name_space</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_subelement_name_space-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_name_space-expanded"><a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line">        <tt id="link-130" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-130', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-131" class="py-name"><a title="lxml.etree
@@ -531,22 +532,22 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-132', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L142"></a><tt class="py-lineno"> 142</tt>  <tt class="py-line">        <tt id="link-133" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-133', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="lxml.etree
+<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line">        <tt id="link-133" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-133', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-134', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-135" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-135', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L143"></a><tt class="py-lineno"> 143</tt>  <tt class="py-line"> </tt>
-<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-136" class="py-name"><a title="lxml.etree.Element
+<a name="L144"></a><tt class="py-lineno"> 144</tt>  <tt class="py-line"> </tt>
+<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-136" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-136', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L145"></a><tt class="py-lineno"> 145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-137" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-137', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">' name '</tt><tt class="py-op">)</tt> </tt>
-<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-138" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-138', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'na me'</tt><tt class="py-op">)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-139" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-139', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{test} name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_subelement_attribute_invalid"></a><div id="ETreeOnlyTestCase.test_subelement_attribute_invalid-def"><a name="L149"></a><tt class="py-lineno"> 149</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_attribute_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_attribute_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_subelement_attribute_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_attribute_invalid-expanded"><a name="L150"></a><tt class="py-lineno"> 150</tt>  <tt class="py-line">        <tt id="link-140" class="py-name"><a title="lxml.etree.Element
+<a name="L146"></a><tt class="py-lineno"> 146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-137" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-137', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">' name '</tt><tt class="py-op">)</tt> </tt>
+<a name="L147"></a><tt class="py-lineno"> 147</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-138" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-138', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'na me'</tt><tt class="py-op">)</tt> </tt>
+<a name="L148"></a><tt class="py-lineno"> 148</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-139" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-139', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'{test} name'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L149"></a><tt class="py-lineno"> 149</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_subelement_attribute_invalid"></a><div id="ETreeOnlyTestCase.test_subelement_attribute_invalid-def"><a name="L150"></a><tt class="py-lineno"> 150</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_attribute_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_attribute_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_attribute_invalid">test_subelement_attribute_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_subelement_attribute_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_attribute_invalid-expanded"><a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line">        <tt id="link-140" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-140', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.etree
@@ -557,88 +558,88 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-142', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L151"></a><tt class="py-lineno"> 151</tt>  <tt class="py-line">        <tt id="link-143" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-143', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="lxml.etree
+<a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line">        <tt id="link-143" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-143', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-144" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-144', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-145" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-145', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L152"></a><tt class="py-lineno"> 152</tt>  <tt class="py-line"> </tt>
-<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-146" class="py-name"><a title="lxml.etree.Element
+<a name="L153"></a><tt class="py-lineno"> 153</tt>  <tt class="py-line"> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-146" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-146', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L154"></a><tt class="py-lineno"> 154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-147" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-147', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'name'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'a b c'</tt> <tt class="py-op">:</tt> <tt class="py-string">'abc'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-148" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-148', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'name'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'a'</tt> <tt class="py-op">:</tt> <tt class="py-string">'a\0\n'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_qname_empty"></a><div id="ETreeOnlyTestCase.test_qname_empty-def"><a name="L158"></a><tt class="py-lineno"> 158</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty">test_qname_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_qname_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_empty-expanded"><a name="L159"></a><tt class="py-lineno"> 159</tt>  <tt class="py-line">        <tt id="link-149" class="py-name" targets="Class lxml.etree.QName=lxml.etree.QName-class.html,Class xml.etree.ElementTree.QName=xml.etree.ElementTree.QName-class.html"><a title="lxml.etree.QName
+<a name="L155"></a><tt class="py-lineno"> 155</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-147" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-147', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'name'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'a b c'</tt> <tt class="py-op">:</tt> <tt class="py-string">'abc'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-148" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-148', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">'name'</tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'a'</tt> <tt class="py-op">:</tt> <tt class="py-string">'a\0\n'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno"> 157</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L158"></a><tt class="py-lineno"> 158</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_qname_empty"></a><div id="ETreeOnlyTestCase.test_qname_empty-def"><a name="L159"></a><tt class="py-lineno"> 159</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_empty">test_qname_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_qname_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_empty-expanded"><a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line">        <tt id="link-149" class="py-name" targets="Class lxml.etree.QName=lxml.etree.QName-class.html,Class xml.etree.ElementTree.QName=xml.etree.ElementTree.QName-class.html"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-149', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-150', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-151" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-151', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L160"></a><tt class="py-lineno"> 160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-152" class="py-name"><a title="lxml.etree.QName
+<a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-152" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-152', 'QName', 'link-149');">QName</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L161"></a><tt class="py-lineno"> 161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-153" class="py-name"><a title="lxml.etree.QName
+<a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-153" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-153', 'QName', 'link-149');">QName</a></tt><tt class="py-op">,</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L162"></a><tt class="py-lineno"> 162</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_qname_colon"></a><div id="ETreeOnlyTestCase.test_qname_colon-def"><a name="L163"></a><tt class="py-lineno"> 163</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_colon-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_colon');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon">test_qname_colon</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_qname_colon-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_colon-expanded"><a name="L164"></a><tt class="py-lineno"> 164</tt>  <tt class="py-line">        <tt id="link-154" class="py-name"><a title="lxml.etree.QName
+</div><a name="L163"></a><tt class="py-lineno"> 163</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_qname_colon"></a><div id="ETreeOnlyTestCase.test_qname_colon-def"><a name="L164"></a><tt class="py-lineno"> 164</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_colon-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_colon');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_colon">test_qname_colon</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_qname_colon-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_colon-expanded"><a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line">        <tt id="link-154" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-154', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-155" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-155', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-156" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-156', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L165"></a><tt class="py-lineno"> 165</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-157" class="py-name"><a title="lxml.etree.QName
+<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-157" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-157', 'QName', 'link-149');">QName</a></tt><tt class="py-op">,</tt> <tt class="py-string">'p:name'</tt><tt class="py-op">)</tt> </tt>
-<a name="L166"></a><tt class="py-lineno"> 166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-158" class="py-name"><a title="lxml.etree.QName
+<a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-158" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-158', 'QName', 'link-149');">QName</a></tt><tt class="py-op">,</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">'p:name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L167"></a><tt class="py-lineno"> 167</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_qname_space"></a><div id="ETreeOnlyTestCase.test_qname_space-def"><a name="L168"></a><tt class="py-lineno"> 168</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_space-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_space');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space">test_qname_space</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_qname_space-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_space-expanded"><a name="L169"></a><tt class="py-lineno"> 169</tt>  <tt class="py-line">        <tt id="link-159" class="py-name"><a title="lxml.etree.QName
+</div><a name="L168"></a><tt class="py-lineno"> 168</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_qname_space"></a><div id="ETreeOnlyTestCase.test_qname_space-def"><a name="L169"></a><tt class="py-lineno"> 169</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_space-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_space');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_space">test_qname_space</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_qname_space-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_space-expanded"><a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line">        <tt id="link-159" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-159', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-160" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-160', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-161" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-161', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L170"></a><tt class="py-lineno"> 170</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-162" class="py-name"><a title="lxml.etree.QName
+<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-162" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-162', 'QName', 'link-149');">QName</a></tt><tt class="py-op">,</tt> <tt class="py-string">' name '</tt><tt class="py-op">)</tt> </tt>
-<a name="L171"></a><tt class="py-lineno"> 171</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-163" class="py-name"><a title="lxml.etree.QName
+<a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-163" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-163', 'QName', 'link-149');">QName</a></tt><tt class="py-op">,</tt> <tt class="py-string">'na me'</tt><tt class="py-op">)</tt> </tt>
-<a name="L172"></a><tt class="py-lineno"> 172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-164" class="py-name"><a title="lxml.etree.QName
+<a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-164" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-164', 'QName', 'link-149');">QName</a></tt><tt class="py-op">,</tt> <tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt class="py-string">' name'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L173"></a><tt class="py-lineno"> 173</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_qname_namespace_localname"></a><div id="ETreeOnlyTestCase.test_qname_namespace_localname-def"><a name="L174"></a><tt class="py-lineno"> 174</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_namespace_localname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_namespace_localname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname">test_qname_namespace_localname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_qname_namespace_localname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_namespace_localname-expanded"><a name="L175"></a><tt class="py-lineno"> 175</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't have namespace/localname properties on QNames</tt> </tt>
-<a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line">        <tt id="link-165" class="py-name"><a title="lxml.etree.QName
+</div><a name="L174"></a><tt class="py-lineno"> 174</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_qname_namespace_localname"></a><div id="ETreeOnlyTestCase.test_qname_namespace_localname-def"><a name="L175"></a><tt class="py-lineno"> 175</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_namespace_localname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_namespace_localname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_namespace_localname">test_qname_namespace_localname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_qname_namespace_localname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_namespace_localname-expanded"><a name="L176"></a><tt class="py-lineno"> 176</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't have namespace/localname properties on QNames</tt> </tt>
+<a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line">        <tt id="link-165" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-165', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-166', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-167" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-167', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L177"></a><tt class="py-lineno"> 177</tt>  <tt class="py-line">        <tt id="link-168" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-168', 'namespace', 'link-168');">namespace</a></tt><tt class="py-op">,</tt> <tt id="link-169" class="py-name" targets="Variable lxml.etree.QName.localname=lxml.etree.QName-class.html#localname"><a title="lxml.etree.QName.localname" class="py-name" href="#" onclick="return doclink('link-169', 'localname', 'link-169');">localname</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt> </tt>
-<a name="L178"></a><tt class="py-lineno"> 178</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-170" class="py-name"><a title="lxml.etree.QName
+<a name="L178"></a><tt class="py-lineno"> 178</tt>  <tt class="py-line">        <tt id="link-168" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-168', 'namespace', 'link-168');">namespace</a></tt><tt class="py-op">,</tt> <tt id="link-169" class="py-name" targets="Variable lxml.etree.QName.localname=lxml.etree.QName-class.html#localname"><a title="lxml.etree.QName.localname" class="py-name" href="#" onclick="return doclink('link-169', 'localname', 'link-169');">localname</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt> </tt>
+<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-170" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-170', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt id="link-171" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-171', 'namespace', 'link-168');">namespace</a></tt><tt class="py-op">,</tt> <tt id="link-172" class="py-name"><a title="lxml.etree.QName.localname" class="py-name" href="#" onclick="return doclink('link-172', 'localname', 'link-169');">localname</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L179"></a><tt class="py-lineno"> 179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-173', 'namespace', 'link-168');">namespace</a></tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-174', 'namespace', 'link-168');">namespace</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-175" class="py-name"><a title="lxml.etree.QName.localname" class="py-name" href="#" onclick="return doclink('link-175', 'localname', 'link-169');">localname</a></tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="lxml.etree.QName.localname" class="py-name" href="#" onclick="return doclink('link-176', 'localname', 'link-169');">localname</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_qname_element"></a><div id="ETreeOnlyTestCase.test_qname_element-def"><a name="L182"></a><tt class="py-lineno"> 182</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element">test_qname_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_qname_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_element-expanded"><a name="L183"></a><tt class="py-lineno"> 183</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't have namespace/localname properties on QNames</tt> </tt>
-<a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line">        <tt id="link-177" class="py-name"><a title="lxml.etree.QName
+<a name="L180"></a><tt class="py-lineno"> 180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-173" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-173', 'namespace', 'link-168');">namespace</a></tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-174', 'namespace', 'link-168');">namespace</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno"> 181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-175" class="py-name"><a title="lxml.etree.QName.localname" class="py-name" href="#" onclick="return doclink('link-175', 'localname', 'link-169');">localname</a></tt><tt class="py-op">,</tt> <tt class="py-name">qname</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="lxml.etree.QName.localname" class="py-name" href="#" onclick="return doclink('link-176', 'localname', 'link-169');">localname</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L182"></a><tt class="py-lineno"> 182</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_qname_element"></a><div id="ETreeOnlyTestCase.test_qname_element-def"><a name="L183"></a><tt class="py-lineno"> 183</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_element">test_qname_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_qname_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_element-expanded"><a name="L184"></a><tt class="py-lineno"> 184</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't have namespace/localname properties on QNames</tt> </tt>
+<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line">        <tt id="link-177" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-177', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-178', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-179', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L185"></a><tt class="py-lineno"> 185</tt>  <tt class="py-line">        <tt class="py-name">qname1</tt> <tt class="py-op">=</tt> <tt id="link-180" class="py-name"><a title="lxml.etree.QName
+<a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line">        <tt class="py-name">qname1</tt> <tt class="py-op">=</tt> <tt id="link-180" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-180', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L186"></a><tt class="py-lineno"> 186</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="lxml.etree
+<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -646,10 +647,10 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-182', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt id="link-183" class="py-name" targets="Variable lxml.etree._Element.nsmap=lxml.etree._Element-class.html#nsmap"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-183', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'p'</tt> <tt class="py-op">:</tt> <tt class="py-string">'http://myns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L187"></a><tt class="py-lineno"> 187</tt>  <tt class="py-line"> </tt>
-<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line">        <tt class="py-name">qname2</tt> <tt class="py-op">=</tt> <tt id="link-184" class="py-name"><a title="lxml.etree.QName
+<a name="L188"></a><tt class="py-lineno"> 188</tt>  <tt class="py-line"> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line">        <tt class="py-name">qname2</tt> <tt class="py-op">=</tt> <tt id="link-184" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-184', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L189"></a><tt class="py-lineno"> 189</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-185" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
@@ -659,7 +660,7 @@ lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-186', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L190"></a><tt class="py-lineno"> 190</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree.QName.text
+<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -668,11 +669,11 @@ lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-188', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L191"></a><tt class="py-lineno"> 191</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_qname_text_resolve"></a><div id="ETreeOnlyTestCase.test_qname_text_resolve-def"><a name="L193"></a><tt class="py-lineno"> 193</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_text_resolve-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_text_resolve');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve">test_qname_text_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_qname_text_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_text_resolve-expanded"><a name="L194"></a><tt class="py-lineno"> 194</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't resove QNames as text values</tt> </tt>
-<a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line">        <tt id="link-189" class="py-name"><a title="lxml.etree
+<a name="L192"></a><tt class="py-lineno"> 192</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">qname1</tt><tt class="py-op">,</tt> <tt class="py-name">qname2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L193"></a><tt class="py-lineno"> 193</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_qname_text_resolve"></a><div id="ETreeOnlyTestCase.test_qname_text_resolve-def"><a name="L194"></a><tt class="py-lineno"> 194</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_qname_text_resolve-toggle" onclick="return toggle('ETreeOnlyTestCase.test_qname_text_resolve');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_qname_text_resolve">test_qname_text_resolve</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_qname_text_resolve-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_qname_text_resolve-expanded"><a name="L195"></a><tt class="py-lineno"> 195</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't resove QNames as text values</tt> </tt>
+<a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line">        <tt id="link-189" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -681,13 +682,13 @@ lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-190', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L196"></a><tt class="py-lineno"> 196</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-191" class="py-name"><a title="lxml.etree
+<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line">        <tt class="py-name">qname</tt> <tt class="py-op">=</tt> <tt id="link-191" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-191', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-192" class="py-name"><a title="lxml.etree.QName
 xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-192', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">'http://myns'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L197"></a><tt class="py-lineno"> 197</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-193" class="py-name"><a title="lxml.etree
+<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-193" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -695,20 +696,20 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-194', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">qname</tt><tt class="py-op">,</tt> <tt id="link-195" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-195', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'p'</tt> <tt class="py-op">:</tt> <tt class="py-string">'http://myns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L198"></a><tt class="py-lineno"> 198</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="lxml.etree.QName.text
+<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-196', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">qname</tt> </tt>
-<a name="L199"></a><tt class="py-lineno"> 199</tt>  <tt class="py-line"> </tt>
-<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"p:a"</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="lxml.etree.QName.text
+<a name="L200"></a><tt class="py-lineno"> 200</tt>  <tt class="py-line"> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"p:a"</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-197" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-197', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L201"></a><tt class="py-lineno"> 201</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_nsmap_prefix_invalid"></a><div id="ETreeOnlyTestCase.test_nsmap_prefix_invalid-def"><a name="L202"></a><tt class="py-lineno"> 202</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_nsmap_prefix_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_nsmap_prefix_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_nsmap_prefix_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_nsmap_prefix_invalid-expanded"><a name="L203"></a><tt class="py-lineno"> 203</tt>  <tt class="py-line">        <tt id="link-198" class="py-name"><a title="lxml.etree
+</div><a name="L202"></a><tt class="py-lineno"> 202</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_nsmap_prefix_invalid"></a><div id="ETreeOnlyTestCase.test_nsmap_prefix_invalid-def"><a name="L203"></a><tt class="py-lineno"> 203</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_nsmap_prefix_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_nsmap_prefix_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_nsmap_prefix_invalid">test_nsmap_prefix_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_nsmap_prefix_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_nsmap_prefix_invalid-expanded"><a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line">        <tt id="link-198" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -717,8 +718,8 @@ lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-199', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L204"></a><tt class="py-lineno"> 204</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
-<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line">                          <tt id="link-200" class="py-name"><a title="lxml.etree
+<a name="L205"></a><tt class="py-lineno"> 205</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line">                          <tt id="link-200" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -726,8 +727,8 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-201', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-202" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-202', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'"'</tt> <tt class="py-op">:</tt> <tt class="py-string">'testns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L206"></a><tt class="py-lineno"> 206</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
-<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line">                          <tt id="link-203" class="py-name"><a title="lxml.etree
+<a name="L207"></a><tt class="py-lineno"> 207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">                          <tt id="link-203" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -735,8 +736,8 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-204', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-205" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-205', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'&amp;'</tt> <tt class="py-op">:</tt> <tt class="py-string">'testns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L208"></a><tt class="py-lineno"> 208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
-<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">                          <tt id="link-206" class="py-name"><a title="lxml.etree
+<a name="L209"></a><tt class="py-lineno"> 209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line">                          <tt id="link-206" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -744,10 +745,10 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-207', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">,</tt> <tt id="link-208" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-208', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'a:b'</tt> <tt class="py-op">:</tt> <tt class="py-string">'testns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L210"></a><tt class="py-lineno"> 210</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_has_key"></a><div id="ETreeOnlyTestCase.test_attribute_has_key-def"><a name="L211"></a><tt class="py-lineno"> 211</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_has_key-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_has_key');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_has_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_has_key-expanded"><a name="L212"></a><tt class="py-lineno"> 212</tt>  <tt class="py-line">        <tt class="py-comment"># ET in Py 3.x has no "attrib.has_key()" method</tt> </tt>
-<a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line">        <tt id="link-209" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
+</div><a name="L211"></a><tt class="py-lineno"> 211</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_has_key"></a><div id="ETreeOnlyTestCase.test_attribute_has_key-def"><a name="L212"></a><tt class="py-lineno"> 212</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_has_key-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_has_key');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_has_key">test_attribute_has_key</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_has_key-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_has_key-expanded"><a name="L213"></a><tt class="py-lineno"> 213</tt>  <tt class="py-line">        <tt class="py-comment"># ET in Py 3.x has no "attrib.has_key()" method</tt> </tt>
+<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line">        <tt id="link-209" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-209', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="lxml.etree
@@ -758,35 +759,35 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-211', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L214"></a><tt class="py-lineno"> 214</tt>  <tt class="py-line"> </tt>
-<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line">        <tt id="link-212" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-212', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-213" class="py-name"><a title="lxml.etree.XML
+<a name="L215"></a><tt class="py-lineno"> 215</tt>  <tt class="py-line"> </tt>
+<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line">        <tt id="link-212" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-212', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-213" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-213', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-214" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-214', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo bar="Bar" xmlns:ns="http://ns.codespeak.net/test" ns:baz="Baz" /&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L216"></a><tt class="py-lineno"> 216</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-215" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-215', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-216" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><a title="lxml.etree._Element.attrib
+<a name="L217"></a><tt class="py-lineno"> 217</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-215" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-215', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-216" class="py-name" targets="Variable lxml.etree._Element.attrib=lxml.etree._Element-class.html#attrib,Variable lxml.etree._ProcessingInstruction.attrib=lxml.etree._ProcessingInstruction-class.html#attrib,Variable xml.etree.ElementTree.Element.attrib=xml.etree.ElementTree.Element-class.html#attrib"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-216', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-217" class="py-name" targets="Method lxml.etree._Attrib.has_key()=lxml.etree._Attrib-class.html#has_key,Method lxml.etree._IDDict.has_key()=lxml.etree._IDDict-class.html#has_key"><a title="lxml.etree._Attrib.has_key
 lxml.etree._IDDict.has_key" class="py-name" href="#" onclick="return doclink('link-217', 'has_key', 'link-217');">has_key</a></tt><tt class="py-op">(</tt><tt class="py-string">'bar'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L218"></a><tt class="py-lineno"> 218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt id="link-218" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-218', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L219"></a><tt class="py-lineno"> 219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt id="link-218" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-218', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-219" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-219', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-220" class="py-name"><a title="lxml.etree._Attrib.has_key
 lxml.etree._IDDict.has_key" class="py-name" href="#" onclick="return doclink('link-220', 'has_key', 'link-217');">has_key</a></tt><tt class="py-op">(</tt><tt class="py-string">'baz'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L220"></a><tt class="py-lineno"> 220</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt id="link-221" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-221', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L221"></a><tt class="py-lineno"> 221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line">            <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt id="link-221" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-221', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-222', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-223" class="py-name"><a title="lxml.etree._Attrib.has_key
 lxml.etree._IDDict.has_key" class="py-name" href="#" onclick="return doclink('link-223', 'has_key', 'link-217');">has_key</a></tt><tt class="py-op">(</tt><tt class="py-string">'hah'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L222"></a><tt class="py-lineno"> 222</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
-<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">            <tt id="link-224" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-224', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L223"></a><tt class="py-lineno"> 223</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt>  <tt class="py-line">            <tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line">            <tt id="link-224" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-224', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-225" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-225', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-226" class="py-name"><a title="lxml.etree._Attrib.has_key
 lxml.etree._IDDict.has_key" class="py-name" href="#" onclick="return doclink('link-226', 'has_key', 'link-217');">has_key</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.codespeak.net/test}baz'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L225"></a><tt class="py-lineno"> 225</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_set"></a><div id="ETreeOnlyTestCase.test_attribute_set-def"><a name="L226"></a><tt class="py-lineno"> 226</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_set-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_set');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_set-expanded"><a name="L227"></a><tt class="py-lineno"> 227</tt>  <tt class="py-line">        <tt id="link-227" class="py-name"><a title="lxml.etree.Element
+</div><a name="L226"></a><tt class="py-lineno"> 226</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_set"></a><div id="ETreeOnlyTestCase.test_attribute_set-def"><a name="L227"></a><tt class="py-lineno"> 227</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_set-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_set');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_set-expanded"><a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">        <tt id="link-227" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-227', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-228" class="py-name"><a title="lxml.etree
@@ -797,21 +798,21 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-229', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L228"></a><tt class="py-lineno"> 228</tt>  <tt class="py-line">        <tt id="link-230" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-230', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-231" class="py-name"><a title="lxml.etree.Element
+<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line">        <tt id="link-230" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-230', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-231" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-231', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L229"></a><tt class="py-lineno"> 229</tt>  <tt class="py-line">        <tt id="link-232" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-232', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-233" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
+<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line">        <tt id="link-232" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-232', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-233" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-233', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"attr"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-<a name="L230"></a><tt class="py-lineno"> 230</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-234" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-234', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-235" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
+<a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-234" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-234', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-235" class="py-name" targets="Method lxml.etree._Attrib.get()=lxml.etree._Attrib-class.html#get,Method lxml.etree._Element.get()=lxml.etree._Element-class.html#get,Method lxml.etree._IDDict.get()=lxml.etree._IDDict-class.html#get,Method lxml.etree._ProcessingInstruction.get()=lxml.etree._ProcessingInstruction-class.html#get"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-235', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"attr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L231"></a><tt class="py-lineno"> 231</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_set_invalid"></a><div id="ETreeOnlyTestCase.test_attribute_set_invalid-def"><a name="L232"></a><tt class="py-lineno"> 232</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_set_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_set_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_set_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_set_invalid-expanded"><a name="L233"></a><tt class="py-lineno"> 233</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree accepts arbitrary attribute values</tt> </tt>
-<a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree allows only strings</tt> </tt>
-<a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line">        <tt id="link-236" class="py-name"><a title="lxml.etree.Element
+</div><a name="L232"></a><tt class="py-lineno"> 232</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_set_invalid"></a><div id="ETreeOnlyTestCase.test_attribute_set_invalid-def"><a name="L233"></a><tt class="py-lineno"> 233</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_set_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_set_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set_invalid">test_attribute_set_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_set_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_set_invalid-expanded"><a name="L234"></a><tt class="py-lineno"> 234</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree accepts arbitrary attribute values</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree allows only strings</tt> </tt>
+<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line">        <tt id="link-236" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-236', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="lxml.etree
@@ -822,17 +823,17 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-238', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L236"></a><tt class="py-lineno"> 236</tt>  <tt class="py-line">        <tt id="link-239" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-239', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-240" class="py-name"><a title="lxml.etree.Element
+<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line">        <tt id="link-239" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-239', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-240" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-240', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L237"></a><tt class="py-lineno"> 237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-241" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-241', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="lxml.etree._Element.set
+<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-241" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-241', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-242" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-242', 'set', 'link-233');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-<a name="L238"></a><tt class="py-lineno"> 238</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-243" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-243', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="lxml.etree._Element.set
+<a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-243" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-243', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-244" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-244', 'set', 'link-233');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L239"></a><tt class="py-lineno"> 239</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_attributes"></a><div id="ETreeOnlyTestCase.test_strip_attributes-def"><a name="L240"></a><tt class="py-lineno"> 240</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_attributes-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_attributes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_attributes-expanded"><a name="L241"></a><tt class="py-lineno"> 241</tt>  <tt class="py-line">        <tt id="link-245" class="py-name"><a title="lxml.etree.XML
+</div><a name="L240"></a><tt class="py-lineno"> 240</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_attributes"></a><div id="ETreeOnlyTestCase.test_strip_attributes-def"><a name="L241"></a><tt class="py-lineno"> 241</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_attributes-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_attributes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes">test_strip_attributes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_attributes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_attributes-expanded"><a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line">        <tt id="link-245" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-245', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-246" class="py-name"><a title="lxml.etree
@@ -843,36 +844,36 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-247', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L242"></a><tt class="py-lineno"> 242</tt>  <tt class="py-line">        <tt id="link-248" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-248', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-249" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-249', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test a="5" b="10" c="20"&gt;&lt;x a="4" b="2"/&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line"> </tt>
-<a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-line">        <tt id="link-250" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-250', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-251" class="py-name"><a title="lxml.etree.XML
+<a name="L243"></a><tt class="py-lineno"> 243</tt>  <tt class="py-line">        <tt id="link-248" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-248', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-249" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-249', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test a="5" b="10" c="20"&gt;&lt;x a="4" b="2"/&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt>  <tt class="py-line"> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line">        <tt id="link-250" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-250', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-251" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-251', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-252" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-252', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L245"></a><tt class="py-lineno"> 245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-253" class="py-name"><a title="lxml.etree
+<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-253" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-253', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-254" class="py-name" targets="Function lxml.etree.strip_attributes()=lxml.etree-module.html#strip_attributes"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-254', 'strip_attributes', 'link-254');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-255" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-255', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L246"></a><tt class="py-lineno"> 246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-256" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-256', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test b="10" c="20"&gt;&lt;x b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement,Method lxml.tests.test_etree.ETreeOnlyTestCase._writeElement()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L247"></a><tt class="py-lineno"> 247</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-256" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-256', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test b="10" c="20"&gt;&lt;x b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-257" class="py-name" targets="Method lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#_writeElement,Method lxml.tests.test_etree.ETreeOnlyTestCase._writeElement()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-257', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-258" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-258', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L248"></a><tt class="py-lineno"> 248</tt>  <tt class="py-line"> </tt>
-<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line">        <tt id="link-259" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-259', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-260" class="py-name"><a title="lxml.etree.XML
+<a name="L249"></a><tt class="py-lineno"> 249</tt>  <tt class="py-line"> </tt>
+<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line">        <tt id="link-259" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-259', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-260" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-260', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-261" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-261', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L250"></a><tt class="py-lineno"> 250</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="lxml.etree
+<a name="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-262', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-263" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-263', 'strip_attributes', 'link-254');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-264" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-264', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L251"></a><tt class="py-lineno"> 251</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-265" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-265', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test a="5"&gt;&lt;x a="4"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-266" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L252"></a><tt class="py-lineno"> 252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-265" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-265', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test a="5"&gt;&lt;x a="4"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-266" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-266', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-267" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-267', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L253"></a><tt class="py-lineno"> 253</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_attributes_ns"></a><div id="ETreeOnlyTestCase.test_strip_attributes_ns-def"><a name="L254"></a><tt class="py-lineno"> 254</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_attributes_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_attributes_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_attributes_ns-expanded"><a name="L255"></a><tt class="py-lineno"> 255</tt>  <tt class="py-line">        <tt id="link-268" class="py-name"><a title="lxml.etree.XML
+</div><a name="L254"></a><tt class="py-lineno"> 254</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_attributes_ns"></a><div id="ETreeOnlyTestCase.test_strip_attributes_ns-def"><a name="L255"></a><tt class="py-lineno"> 255</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_attributes_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_attributes_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_attributes_ns">test_strip_attributes_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_attributes_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_attributes_ns-expanded"><a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-line">        <tt id="link-268" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-268', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-269" class="py-name"><a title="lxml.etree
@@ -883,52 +884,52 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-270', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L256"></a><tt class="py-lineno"> 256</tt>  <tt class="py-line">        <tt id="link-271" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-271', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-272" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-272', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10" c="20" n:a="5"&gt;&lt;x a="4" n:b="2"/&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line"> </tt>
-<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line">        <tt id="link-273" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-273', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-274" class="py-name"><a title="lxml.etree.XML
+<a name="L257"></a><tt class="py-lineno"> 257</tt>  <tt class="py-line">        <tt id="link-271" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-271', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-272" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-272', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10" c="20" n:a="5"&gt;&lt;x a="4" n:b="2"/&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt>  <tt class="py-line"> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line">        <tt id="link-273" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-273', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-274" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-274', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-275" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-275', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L259"></a><tt class="py-lineno"> 259</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-276" class="py-name"><a title="lxml.etree
+<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-276" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-276', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-277" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-277', 'strip_attributes', 'link-254');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-278" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-278', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L260"></a><tt class="py-lineno"> 260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L261"></a><tt class="py-lineno"> 261</tt>  <tt class="py-line">            <tt id="link-279" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-279', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" b="10" c="20" n:a="5"&gt;&lt;x n:b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-280" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L261"></a><tt class="py-lineno"> 261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt>  <tt class="py-line">            <tt id="link-279" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-279', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" b="10" c="20" n:a="5"&gt;&lt;x n:b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-280" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-280', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-281" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-281', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L263"></a><tt class="py-lineno"> 263</tt>  <tt class="py-line"> </tt>
-<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line">        <tt id="link-282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-282', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-283" class="py-name"><a title="lxml.etree.XML
+<a name="L264"></a><tt class="py-lineno"> 264</tt>  <tt class="py-line"> </tt>
+<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line">        <tt id="link-282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-282', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-283" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-283', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-284" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-284', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L265"></a><tt class="py-lineno"> 265</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="lxml.etree
+<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-285" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-285', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-286" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-286', 'strip_attributes', 'link-254');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-287" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-287', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test/ns}a'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L266"></a><tt class="py-lineno"> 266</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line">            <tt id="link-288" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-288', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10"&gt;&lt;x a="4" n:b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-289" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L267"></a><tt class="py-lineno"> 267</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt>  <tt class="py-line">            <tt id="link-288" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-288', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10"&gt;&lt;x a="4" n:b="2"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-289" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-289', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-290" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-290', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L269"></a><tt class="py-lineno"> 269</tt>  <tt class="py-line"> </tt>
-<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line">        <tt id="link-291" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-291', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-292" class="py-name"><a title="lxml.etree.XML
+<a name="L270"></a><tt class="py-lineno"> 270</tt>  <tt class="py-line"> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line">        <tt id="link-291" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-291', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-292" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-292', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-293" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-293', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L271"></a><tt class="py-lineno"> 271</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name"><a title="lxml.etree
+<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-294" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-294', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-295" class="py-name"><a title="lxml.etree.strip_attributes" class="py-name" href="#" onclick="return doclink('link-295', 'strip_attributes', 'link-254');">strip_attributes</a></tt><tt class="py-op">(</tt><tt id="link-296" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-296', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{http://test/ns}*'</tt><tt class="py-op">)</tt> </tt>
-<a name="L272"></a><tt class="py-lineno"> 272</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line">            <tt id="link-297" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-297', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10" c="20"&gt;&lt;x a="4"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L273"></a><tt class="py-lineno"> 273</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt>  <tt class="py-line">            <tt id="link-297" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-297', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test xmlns:n="http://test/ns" a="6" b="10" c="20"&gt;&lt;x a="4"&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-298" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-298', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-299" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-299', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L275"></a><tt class="py-lineno"> 275</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_elements"></a><div id="ETreeOnlyTestCase.test_strip_elements-def"><a name="L276"></a><tt class="py-lineno"> 276</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_elements-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_elements-expanded"><a name="L277"></a><tt class="py-lineno"> 277</tt>  <tt class="py-line">        <tt id="link-300" class="py-name"><a title="lxml.etree.XML
+</div><a name="L276"></a><tt class="py-lineno"> 276</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_elements"></a><div id="ETreeOnlyTestCase.test_strip_elements-def"><a name="L277"></a><tt class="py-lineno"> 277</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_elements-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_elements');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements">test_strip_elements</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_elements-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_elements-expanded"><a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line">        <tt id="link-300" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-300', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-301" class="py-name"><a title="lxml.etree
@@ -939,49 +940,49 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-302', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L278"></a><tt class="py-lineno"> 278</tt>  <tt class="py-line">        <tt id="link-303" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-303', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-304" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-304', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line"> </tt>
-<a name="L280"></a><tt class="py-lineno"> 280</tt>  <tt class="py-line">        <tt id="link-305" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-305', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-306" class="py-name"><a title="lxml.etree.XML
+<a name="L279"></a><tt class="py-lineno"> 279</tt>  <tt class="py-line">        <tt id="link-303" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-303', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-304" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-304', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno"> 280</tt>  <tt class="py-line"> </tt>
+<a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line">        <tt id="link-305" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-305', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-306" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-306', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-307" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-307', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L281"></a><tt class="py-lineno"> 281</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="lxml.etree
+<a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-308" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-308', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-309" class="py-name" targets="Function lxml.etree.strip_elements()=lxml.etree-module.html#strip_elements"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-309', 'strip_elements', 'link-309');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-310" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-310', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L282"></a><tt class="py-lineno"> 282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-311" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-311', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;x&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-312" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L283"></a><tt class="py-lineno"> 283</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-311" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-311', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;x&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-312" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-312', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-313" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-313', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L284"></a><tt class="py-lineno"> 284</tt>  <tt class="py-line"> </tt>
-<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line">        <tt id="link-314" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-314', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-315" class="py-name"><a title="lxml.etree.XML
+<a name="L285"></a><tt class="py-lineno"> 285</tt>  <tt class="py-line"> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line">        <tt id="link-314" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-314', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-315" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-315', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-316" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-316', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L286"></a><tt class="py-lineno"> 286</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="lxml.etree
+<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-317" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-317', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-318" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-318', 'strip_elements', 'link-309');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-319" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-319', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'Y'</tt><tt class="py-op">,</tt> <tt class="py-string">'Z'</tt><tt class="py-op">)</tt> </tt>
-<a name="L287"></a><tt class="py-lineno"> 287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-320" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-320', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-321" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L288"></a><tt class="py-lineno"> 288</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-320" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-320', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-321" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-321', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-322" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-322', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L289"></a><tt class="py-lineno"> 289</tt>  <tt class="py-line"> </tt>
-<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line">        <tt id="link-323" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-323', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-324" class="py-name"><a title="lxml.etree.XML
+<a name="L290"></a><tt class="py-lineno"> 290</tt>  <tt class="py-line"> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt id="link-323" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-323', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-324" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-324', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-325" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-325', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L291"></a><tt class="py-lineno"> 291</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="lxml.etree
+<a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-326" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-326', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-327" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-327', 'strip_elements', 'link-309');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-328" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-328', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L292"></a><tt class="py-lineno"> 292</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-329" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-329', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L293"></a><tt class="py-lineno"> 293</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-329" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-329', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;x&gt;&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;/x&gt;&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-330" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-330', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-331" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-331', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L294"></a><tt class="py-lineno"> 294</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_elements_ns"></a><div id="ETreeOnlyTestCase.test_strip_elements_ns-def"><a name="L295"></a><tt class="py-lineno"> 295</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_elements_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_elements_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns">test_strip_elements_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_elements_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_elements_ns-expanded"><a name="L296"></a><tt class="py-lineno"> 296</tt>  <tt class="py-line">        <tt id="link-332" class="py-name"><a title="lxml.etree.XML
+</div><a name="L295"></a><tt class="py-lineno"> 295</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_elements_ns"></a><div id="ETreeOnlyTestCase.test_strip_elements_ns-def"><a name="L296"></a><tt class="py-lineno"> 296</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_elements_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_elements_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_elements_ns">test_strip_elements_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_elements_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_elements_ns-expanded"><a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line">        <tt id="link-332" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-332', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-333" class="py-name"><a title="lxml.etree
@@ -992,62 +993,62 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-334', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L297"></a><tt class="py-lineno"> 297</tt>  <tt class="py-line">        <tt id="link-335" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-335', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-336" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-336', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"/&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b xmlns="urn:a"/&gt;BT&lt;c xmlns="urn:x"/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line"> </tt>
-<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line">        <tt id="link-337" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-337', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-338" class="py-name"><a title="lxml.etree.XML
+<a name="L298"></a><tt class="py-lineno"> 298</tt>  <tt class="py-line">        <tt id="link-335" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-335', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-336" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-336', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"/&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b xmlns="urn:a"/&gt;BT&lt;c xmlns="urn:x"/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L299"></a><tt class="py-lineno"> 299</tt>  <tt class="py-line"> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line">        <tt id="link-337" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-337', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-338" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-338', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-339" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-339', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L300"></a><tt class="py-lineno"> 300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree
+<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-340" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-340', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-341" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-341', 'strip_elements', 'link-309');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-342" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-342', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L301"></a><tt class="py-lineno"> 301</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-343" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-343', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-344" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L302"></a><tt class="py-lineno"> 302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-343" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-343', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-344" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-344', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-345" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-345', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L303"></a><tt class="py-lineno"> 303</tt>  <tt class="py-line"> </tt>
-<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line">        <tt id="link-346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-346', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-347" class="py-name"><a title="lxml.etree.XML
+<a name="L304"></a><tt class="py-lineno"> 304</tt>  <tt class="py-line"> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line">        <tt id="link-346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-346', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-347" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-347', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-348" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-348', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L305"></a><tt class="py-lineno"> 305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-349" class="py-name"><a title="lxml.etree
+<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-349" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-349', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-350" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-350', 'strip_elements', 'link-309');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-351" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-351', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L306"></a><tt class="py-lineno"> 306</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-352" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-352', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L307"></a><tt class="py-lineno"> 307</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-352" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-352', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;C&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-353" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-353', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-354" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-354', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L308"></a><tt class="py-lineno"> 308</tt>  <tt class="py-line"> </tt>
-<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line">        <tt id="link-355" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-355', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-356" class="py-name"><a title="lxml.etree.XML
+<a name="L309"></a><tt class="py-lineno"> 309</tt>  <tt class="py-line"> </tt>
+<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">        <tt id="link-355" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-355', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-356" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-356', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-357" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-357', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L310"></a><tt class="py-lineno"> 310</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name"><a title="lxml.etree
+<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-358" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-358', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-359" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-359', 'strip_elements', 'link-309');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-360" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-360', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L311"></a><tt class="py-lineno"> 311</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-361" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-361', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;x&gt;X&lt;a&gt;A&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L312"></a><tt class="py-lineno"> 312</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-361" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-361', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;x&gt;X&lt;a&gt;A&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-362" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-362', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-363" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-363', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L313"></a><tt class="py-lineno"> 313</tt>  <tt class="py-line"> </tt>
-<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line">        <tt id="link-364" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-364', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-365" class="py-name"><a title="lxml.etree.XML
+<a name="L314"></a><tt class="py-lineno"> 314</tt>  <tt class="py-line"> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line">        <tt id="link-364" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-364', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-365" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-365', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-366" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-366', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L315"></a><tt class="py-lineno"> 315</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-367" class="py-name"><a title="lxml.etree
+<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-367" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-367', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-368" class="py-name"><a title="lxml.etree.strip_elements" class="py-name" href="#" onclick="return doclink('link-368', 'strip_elements', 'link-309');">strip_elements</a></tt><tt class="py-op">(</tt><tt id="link-369" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-369', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L316"></a><tt class="py-lineno"> 316</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-370" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-370', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTAT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-371" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L317"></a><tt class="py-lineno"> 317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-370" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-370', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTAT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-371" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-371', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-372" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-372', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L318"></a><tt class="py-lineno"> 318</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags"></a><div id="ETreeOnlyTestCase.test_strip_tags-def"><a name="L319"></a><tt class="py-lineno"> 319</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags-expanded"><a name="L320"></a><tt class="py-lineno"> 320</tt>  <tt class="py-line">        <tt id="link-373" class="py-name"><a title="lxml.etree.XML
+</div><a name="L319"></a><tt class="py-lineno"> 319</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags"></a><div id="ETreeOnlyTestCase.test_strip_tags-def"><a name="L320"></a><tt class="py-lineno"> 320</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags">test_strip_tags</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags-expanded"><a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line">        <tt id="link-373" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-373', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-374" class="py-name"><a title="lxml.etree
@@ -1058,49 +1059,49 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-375', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L321"></a><tt class="py-lineno"> 321</tt>  <tt class="py-line">        <tt id="link-376" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-376', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-377" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-377', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;A&lt;b&gt;B&lt;c/&gt;CT&lt;/b&gt;BT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b/&gt;BT&lt;c/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line"> </tt>
-<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line">        <tt id="link-378" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-378', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-379" class="py-name"><a title="lxml.etree.XML
+<a name="L322"></a><tt class="py-lineno"> 322</tt>  <tt class="py-line">        <tt id="link-376" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-376', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-377" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-377', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;A&lt;b&gt;B&lt;c/&gt;CT&lt;/b&gt;BT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b/&gt;BT&lt;c/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L323"></a><tt class="py-lineno"> 323</tt>  <tt class="py-line"> </tt>
+<a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line">        <tt id="link-378" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-378', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-379" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-379', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-380" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-380', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L324"></a><tt class="py-lineno"> 324</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-381" class="py-name"><a title="lxml.etree
+<a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-381" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-381', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-382" class="py-name" targets="Function lxml.etree.strip_tags()=lxml.etree-module.html#strip_tags"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-382', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-383" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-383', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L325"></a><tt class="py-lineno"> 325</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-384" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-384', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTA&lt;b&gt;B&lt;c&gt;&lt;/c&gt;CT&lt;/b&gt;BTAT&lt;x&gt;XA&lt;b&gt;&lt;/b&gt;BT&lt;c&gt;&lt;/c&gt;CTAT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L326"></a><tt class="py-lineno"> 326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-384" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-384', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTA&lt;b&gt;B&lt;c&gt;&lt;/c&gt;CT&lt;/b&gt;BTAT&lt;x&gt;XA&lt;b&gt;&lt;/b&gt;BT&lt;c&gt;&lt;/c&gt;CTAT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-385', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-386', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L327"></a><tt class="py-lineno"> 327</tt>  <tt class="py-line"> </tt>
-<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line">        <tt id="link-387" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-387', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-388" class="py-name"><a title="lxml.etree.XML
+<a name="L328"></a><tt class="py-lineno"> 328</tt>  <tt class="py-line"> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line">        <tt id="link-387" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-387', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-388" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-388', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-389" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-389', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L329"></a><tt class="py-lineno"> 329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="lxml.etree
+<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-390" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-390', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-391', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-392" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-392', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'X'</tt><tt class="py-op">,</tt> <tt class="py-string">'Y'</tt><tt class="py-op">,</tt> <tt class="py-string">'Z'</tt><tt class="py-op">)</tt> </tt>
-<a name="L330"></a><tt class="py-lineno"> 330</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-393" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-393', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;ABCTBT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;ABTCT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-394" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L331"></a><tt class="py-lineno"> 331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-393" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-393', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;ABCTBT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;ABTCT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-394" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-394', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-395" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-395', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L332"></a><tt class="py-lineno"> 332</tt>  <tt class="py-line"> </tt>
-<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line">        <tt id="link-396" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-396', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-397" class="py-name"><a title="lxml.etree.XML
+<a name="L333"></a><tt class="py-lineno"> 333</tt>  <tt class="py-line"> </tt>
+<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line">        <tt id="link-396" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-396', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-397" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-397', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-398" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-398', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L334"></a><tt class="py-lineno"> 334</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-399" class="py-name"><a title="lxml.etree
+<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-399" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-399', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-400" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-400', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-401" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-401', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L335"></a><tt class="py-lineno"> 335</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-402" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-402', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;A&lt;b&gt;BCT&lt;/b&gt;BT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b&gt;&lt;/b&gt;BTCT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L336"></a><tt class="py-lineno"> 336</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-402" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-402', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;a&gt;A&lt;b&gt;BCT&lt;/b&gt;BT&lt;/a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b&gt;&lt;/b&gt;BTCT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-403" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-403', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-404" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-404', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L337"></a><tt class="py-lineno"> 337</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_pi_comment"></a><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-def"><a name="L338"></a><tt class="py-lineno"> 338</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_pi_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_pi_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment">test_strip_tags_pi_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-expanded"><a name="L339"></a><tt class="py-lineno"> 339</tt>  <tt class="py-line">        <tt id="link-405" class="py-name"><a title="lxml.etree.XML
+</div><a name="L338"></a><tt class="py-lineno"> 338</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_pi_comment"></a><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-def"><a name="L339"></a><tt class="py-lineno"> 339</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_pi_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_pi_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment">test_strip_tags_pi_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment-expanded"><a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line">        <tt id="link-405" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-405', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-406" class="py-name"><a title="lxml.etree
@@ -1111,72 +1112,72 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-407', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L340"></a><tt class="py-lineno"> 340</tt>  <tt class="py-line">        <tt id="link-408" class="py-name" targets="Function lxml.etree.PI()=lxml.etree-module.html#PI"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-408', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-409" class="py-name"><a title="lxml.etree
+<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">        <tt id="link-408" class="py-name" targets="Function lxml.etree.PI()=lxml.etree-module.html#PI"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-408', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-409" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-409', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L341"></a><tt class="py-lineno"> 341</tt>  <tt class="py-line">        <tt id="link-410" class="py-name" targets="Function lxml.etree.Comment()=lxml.etree-module.html#Comment"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-410', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-411" class="py-name"><a title="lxml.etree
+<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">        <tt id="link-410" class="py-name" targets="Function lxml.etree.Comment()=lxml.etree-module.html#Comment"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-410', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-411" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-411', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-412" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-412', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L342"></a><tt class="py-lineno"> 342</tt>  <tt class="py-line">        <tt id="link-413" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-413', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-414" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-414', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line"> </tt>
-<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line">        <tt id="link-415" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-415', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-416" class="py-name"><a title="lxml.etree.XML
+<a name="L343"></a><tt class="py-lineno"> 343</tt>  <tt class="py-line">        <tt id="link-413" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-413', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-414" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-414', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L344"></a><tt class="py-lineno"> 344</tt>  <tt class="py-line"> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">        <tt id="link-415" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-415', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-416" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-416', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-417" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-417', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L345"></a><tt class="py-lineno"> 345</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="lxml.etree
+<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-418" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-418', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-419" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-419', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-420" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-420', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt id="link-421" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-421', 'PI', 'link-408');">PI</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L346"></a><tt class="py-lineno"> 346</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-422" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-422', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-423" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L347"></a><tt class="py-lineno"> 347</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-422" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-422', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-423" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-423', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-424" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-424', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L348"></a><tt class="py-lineno"> 348</tt>  <tt class="py-line"> </tt>
-<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line">        <tt id="link-425" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-425', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-426" class="py-name"><a title="lxml.etree.XML
+<a name="L349"></a><tt class="py-lineno"> 349</tt>  <tt class="py-line"> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">        <tt id="link-425" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-425', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-426" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-426', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-427" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-427', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L350"></a><tt class="py-lineno"> 350</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="lxml.etree
+<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-428', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-429" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-429', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-430" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-430', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt id="link-431" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-431', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L351"></a><tt class="py-lineno"> 351</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-432" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-432', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-433" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L352"></a><tt class="py-lineno"> 352</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-432" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-432', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-433" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-433', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-434" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-434', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L353"></a><tt class="py-lineno"> 353</tt>  <tt class="py-line"> </tt>
-<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line">        <tt id="link-435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-435', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-436" class="py-name"><a title="lxml.etree.XML
+<a name="L354"></a><tt class="py-lineno"> 354</tt>  <tt class="py-line"> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line">        <tt id="link-435" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-435', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-436" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-436', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-437" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-437', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L355"></a><tt class="py-lineno"> 355</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-438" class="py-name"><a title="lxml.etree
+<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-438" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-438', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-439" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-439', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-440" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-440', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt id="link-441" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-441', 'PI', 'link-408');">PI</a></tt><tt class="py-op">,</tt> <tt id="link-442" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-442', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L356"></a><tt class="py-lineno"> 356</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-443" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-443', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-444" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L357"></a><tt class="py-lineno"> 357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-443" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-443', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-444" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-444', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-445" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-445', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L358"></a><tt class="py-lineno"> 358</tt>  <tt class="py-line"> </tt>
-<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line">        <tt id="link-446" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-446', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-447" class="py-name"><a title="lxml.etree.XML
+<a name="L359"></a><tt class="py-lineno"> 359</tt>  <tt class="py-line"> </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">        <tt id="link-446" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-446', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-447" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-447', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-448" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-448', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L360"></a><tt class="py-lineno"> 360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-449" class="py-name"><a title="lxml.etree
+<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-449" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-449', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-450" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-450', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-451" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-451', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt id="link-452" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-452', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">,</tt> <tt id="link-453" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-453', 'PI', 'link-408');">PI</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L361"></a><tt class="py-lineno"> 361</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-454" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-454', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L362"></a><tt class="py-lineno"> 362</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-454" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-454', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-455', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-456" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-456', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L363"></a><tt class="py-lineno"> 363</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_pi_comment_all"></a><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-def"><a name="L364"></a><tt class="py-lineno"> 364</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_pi_comment_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-expanded"><a name="L365"></a><tt class="py-lineno"> 365</tt>  <tt class="py-line">        <tt id="link-457" class="py-name"><a title="lxml.etree.XML
+</div><a name="L364"></a><tt class="py-lineno"> 364</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_pi_comment_all"></a><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-def"><a name="L365"></a><tt class="py-lineno"> 365</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_pi_comment_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_pi_comment_all">test_strip_tags_pi_comment_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_pi_comment_all-expanded"><a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line">        <tt id="link-457" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-457', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-458" class="py-name"><a title="lxml.etree
@@ -1187,7 +1188,7 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-459', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L366"></a><tt class="py-lineno"> 366</tt>  <tt class="py-line">        <tt id="link-460" class="py-name" targets="Function lxml.etree.ElementTree()=lxml.etree-module.html#ElementTree,Module xml.etree.ElementTree=xml.etree.ElementTree-module.html,Class xml.etree.ElementTree.ElementTree=xml.etree.ElementTree.ElementTree-class.html"><a title="lxml.etree.ElementTree
+<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line">        <tt id="link-460" class="py-name" targets="Function lxml.etree.ElementTree()=lxml.etree-module.html#ElementTree,Module xml.etree.ElementTree=xml.etree.ElementTree-module.html,Class xml.etree.ElementTree.ElementTree=xml.etree.ElementTree.ElementTree-class.html"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-460', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-461" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -1196,80 +1197,80 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-461', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-462" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-462', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L367"></a><tt class="py-lineno"> 367</tt>  <tt class="py-line">        <tt id="link-463" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-463', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.etree
+<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line">        <tt id="link-463" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-463', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-464', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L368"></a><tt class="py-lineno"> 368</tt>  <tt class="py-line">        <tt id="link-465" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-465', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.etree
+<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line">        <tt id="link-465" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-465', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-466', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-467" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-467', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L369"></a><tt class="py-lineno"> 369</tt>  <tt class="py-line">        <tt id="link-468" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-468', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-469" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-469', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line"> </tt>
-<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line">        <tt id="link-470" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-470', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-471" class="py-name"><a title="lxml.etree.XML
+<a name="L370"></a><tt class="py-lineno"> 370</tt>  <tt class="py-line">        <tt id="link-468" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-468', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-469" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-469', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;?PI1?&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;!--comment3--&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt>  <tt class="py-line"> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">        <tt id="link-470" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-470', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-471" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-471', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-472" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-472', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L372"></a><tt class="py-lineno"> 372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-473" class="py-name"><a title="lxml.etree
+<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-473" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-473', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-474', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-475" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-475', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-476" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-476', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-477" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-477', 'PI', 'link-408');">PI</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L373"></a><tt class="py-lineno"> 373</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-478" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-478', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;/test&gt;\n&lt;!--comment3--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L374"></a><tt class="py-lineno"> 374</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-478" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-478', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--comment1--&gt;\n&lt;test&gt;TEST&lt;!--comment2--&gt;XT&lt;/test&gt;\n&lt;!--comment3--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-479" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-479', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-480" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-480', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L375"></a><tt class="py-lineno"> 375</tt>  <tt class="py-line"> </tt>
-<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line">        <tt id="link-481" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-481', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-482" class="py-name"><a title="lxml.etree.XML
+<a name="L376"></a><tt class="py-lineno"> 376</tt>  <tt class="py-line"> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line">        <tt id="link-481" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-481', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-482" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-482', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-483" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-483', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L377"></a><tt class="py-lineno"> 377</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="lxml.etree
+<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-484', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-485" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-485', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-486" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-486', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-487" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-487', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-488" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-488', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L378"></a><tt class="py-lineno"> 378</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-489" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-489', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L379"></a><tt class="py-lineno"> 379</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-489" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-489', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?PI1?&gt;\n&lt;test&gt;TESTXT&lt;?PI2?&gt;&lt;/test&gt;\n&lt;?PI1?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-490" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-490', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-491" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-491', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L380"></a><tt class="py-lineno"> 380</tt>  <tt class="py-line"> </tt>
-<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line">        <tt id="link-492" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-492', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-493" class="py-name"><a title="lxml.etree.XML
+<a name="L381"></a><tt class="py-lineno"> 381</tt>  <tt class="py-line"> </tt>
+<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">        <tt id="link-492" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-492', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-493" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-493', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-494" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-494', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L382"></a><tt class="py-lineno"> 382</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-495" class="py-name"><a title="lxml.etree
+<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-495" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-495', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-496" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-496', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-497" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-497', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-498" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-498', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-499" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-499', 'PI', 'link-408');">PI</a></tt><tt class="py-op">,</tt> <tt id="link-500" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-500', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L383"></a><tt class="py-lineno"> 383</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-501" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-501', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTXT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-502" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L384"></a><tt class="py-lineno"> 384</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-501" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-501', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTXT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-502" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-502', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-503" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-503', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L385"></a><tt class="py-lineno"> 385</tt>  <tt class="py-line"> </tt>
-<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line">        <tt id="link-504" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-504', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-505" class="py-name"><a title="lxml.etree.XML
+<a name="L386"></a><tt class="py-lineno"> 386</tt>  <tt class="py-line"> </tt>
+<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line">        <tt id="link-504" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-504', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-505" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-505', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-506" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-506', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L387"></a><tt class="py-lineno"> 387</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-507" class="py-name"><a title="lxml.etree
+<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-507" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-507', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-508" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-508', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-509" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-509', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-510" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-510', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-511" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-511', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">,</tt> <tt id="link-512" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-512', 'PI', 'link-408');">PI</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L388"></a><tt class="py-lineno"> 388</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-513" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-513', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTXT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-514" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L389"></a><tt class="py-lineno"> 389</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-513" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-513', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTXT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-514" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-514', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-515" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-515', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L390"></a><tt class="py-lineno"> 390</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_doc_style"></a><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-def"><a name="L391"></a><tt class="py-lineno"> 391</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_doc_style-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_doc_style');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-expanded"><a name="L392"></a><tt class="py-lineno"> 392</tt>  <tt class="py-line">        <tt id="link-516" class="py-name"><a title="lxml.etree.XML
+</div><a name="L391"></a><tt class="py-lineno"> 391</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_doc_style"></a><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-def"><a name="L392"></a><tt class="py-lineno"> 392</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_doc_style-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_doc_style');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_doc_style">test_strip_tags_doc_style</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_doc_style-expanded"><a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line">        <tt id="link-516" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-516', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-517" class="py-name"><a title="lxml.etree
@@ -1280,48 +1281,49 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-518', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L393"></a><tt class="py-lineno"> 393</tt>  <tt class="py-line">        <tt id="link-519" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-519', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-520', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line"><tt class="py-string">        &lt;div&gt;</tt> </tt>
-<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line"><tt class="py-string">            &lt;div&gt;</tt> </tt>
-<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line"><tt class="py-string">                I like &lt;strong&gt;sheep&lt;/strong&gt;.</tt> </tt>
-<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
-<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line"><tt class="py-string">                I like lots of &lt;strong&gt;sheep&lt;/strong&gt;.</tt> </tt>
-<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
-<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"><tt class="py-string">                Click &lt;a href="http://www.sheep.com"&gt;here&lt;/a&gt; for &lt;a href="http://www.sheep.com"&gt;those&lt;/a&gt; sheep.</tt> </tt>
-<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
-<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line"><tt class="py-string">            &lt;/div&gt;</tt> </tt>
-<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line"><tt class="py-string">        &lt;/div&gt;</tt> </tt>
-<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">.</tt><tt id="link-521" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-521', 'strip', 'link-521');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line"> </tt>
-<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line">        <tt id="link-522" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-522', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-523" class="py-name"><a title="lxml.etree.XML
+<a name="L394"></a><tt class="py-lineno"> 394</tt>  <tt class="py-line">        <tt id="link-519" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-519', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-520', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt>  <tt class="py-line"><tt class="py-string">        &lt;div&gt;</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt>  <tt class="py-line"><tt class="py-string">            &lt;div&gt;</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt>  <tt class="py-line"><tt class="py-string">                I like &lt;strong&gt;sheep&lt;/strong&gt;.</tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt>  <tt class="py-line"><tt class="py-string">                I like lots of &lt;strong&gt;sheep&lt;/strong&gt;.</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt>  <tt class="py-line"><tt class="py-string">                Click &lt;a href="http://www.sheep.com"&gt;here&lt;/a&gt;</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt>  <tt class="py-line"><tt class="py-string">                 for &lt;a href="http://www.sheep.com"&gt;those&lt;/a&gt; sheep.</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt>  <tt class="py-line"><tt class="py-string">                &lt;br/&gt;</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt>  <tt class="py-line"><tt class="py-string">            &lt;/div&gt;</tt> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt>  <tt class="py-line"><tt class="py-string">        &lt;/div&gt;</tt> </tt>
+<a name="L406"></a><tt class="py-lineno"> 406</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">.</tt><tt id="link-521" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-521', 'strip', 'link-521');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line"> </tt>
+<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line">        <tt id="link-522" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-522', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-523" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-523', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-524', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L407"></a><tt class="py-lineno"> 407</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-525" class="py-name"><a title="lxml.etree
+<a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-525" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-525', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-526" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-526', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-527" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-527', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L408"></a><tt class="py-lineno"> 408</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-528" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-528', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/?a[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-529" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-529', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-530" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-530', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-531" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-531', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-532" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-532', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-533" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-533', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br&gt;&lt;/br&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L409"></a><tt class="py-lineno"> 409</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-534" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-528" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-528', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/?a[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-529" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-529', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-530" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-530', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-531" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-531', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-532" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-532', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-533" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-533', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br&gt;&lt;/br&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-534" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-534', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-535', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L410"></a><tt class="py-lineno"> 410</tt>  <tt class="py-line"> </tt>
-<a name="L411"></a><tt class="py-lineno"> 411</tt>  <tt class="py-line">        <tt id="link-536" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-536', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-537" class="py-name"><a title="lxml.etree.XML
+<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line"> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line">        <tt id="link-536" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-536', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-537" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-537', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-538" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-538', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L412"></a><tt class="py-lineno"> 412</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-539" class="py-name"><a title="lxml.etree
+<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-539" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-539', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-540" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-540', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-541" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-541', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'br'</tt><tt class="py-op">)</tt> </tt>
-<a name="L413"></a><tt class="py-lineno"> 413</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-542', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/?a[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-543" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-543', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L414"></a><tt class="py-lineno"> 414</tt>  <tt class="py-line">                                 <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-544', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-545" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-545', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-546" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-546', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-547" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L415"></a><tt class="py-lineno"> 415</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-542" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-542', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;/?a[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-543" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-543', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line">                                 <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">sub</tt><tt class="py-op">(</tt><tt id="link-544" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-544', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;br[^&gt;]*&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-545" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-545', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-546" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-546', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-547" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-547', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-548', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L416"></a><tt class="py-lineno"> 416</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_ns"></a><div id="ETreeOnlyTestCase.test_strip_tags_ns-def"><a name="L417"></a><tt class="py-lineno"> 417</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_ns-expanded"><a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line">        <tt id="link-549" class="py-name"><a title="lxml.etree.XML
+</div><a name="L418"></a><tt class="py-lineno"> 418</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_ns"></a><div id="ETreeOnlyTestCase.test_strip_tags_ns-def"><a name="L419"></a><tt class="py-lineno"> 419</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_ns">test_strip_tags_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_ns-expanded"><a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line">        <tt id="link-549" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-549', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-550" class="py-name"><a title="lxml.etree
@@ -1332,50 +1334,50 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-551', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L419"></a><tt class="py-lineno"> 419</tt>  <tt class="py-line">        <tt id="link-552" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-552', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-553" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-553', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"/&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b xmlns="urn:a"/&gt;BT&lt;c xmlns="urn:x"/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L420"></a><tt class="py-lineno"> 420</tt>  <tt class="py-line"> </tt>
-<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line">        <tt id="link-554" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-554', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-555" class="py-name"><a title="lxml.etree.XML
+<a name="L421"></a><tt class="py-lineno"> 421</tt>  <tt class="py-line">        <tt id="link-552" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-552', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-553" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-553', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"/&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;A&lt;b xmlns="urn:a"/&gt;BT&lt;c xmlns="urn:x"/&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line"> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">        <tt id="link-554" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-554', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-555" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-555', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-556" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-556', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L422"></a><tt class="py-lineno"> 422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-557" class="py-name"><a title="lxml.etree
+<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-557" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-557', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-558" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-558', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-559" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-559', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L423"></a><tt class="py-lineno"> 423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-560" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-560', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;XA&lt;b xmlns="urn:a"&gt;&lt;/b&gt;BT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CTAT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L424"></a><tt class="py-lineno"> 424</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-561" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-560" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-560', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;XA&lt;b xmlns="urn:a"&gt;&lt;/b&gt;BT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CTAT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-561" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-561', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-562" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-562', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L425"></a><tt class="py-lineno"> 425</tt>  <tt class="py-line"> </tt>
-<a name="L426"></a><tt class="py-lineno"> 426</tt>  <tt class="py-line">        <tt id="link-563" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-563', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-564" class="py-name"><a title="lxml.etree.XML
+<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line"> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">        <tt id="link-563" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-563', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-564" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-564', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-565" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-565', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L427"></a><tt class="py-lineno"> 427</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.etree
+<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-566', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-567" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-567', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-568" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-568', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L428"></a><tt class="py-lineno"> 428</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-569" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-569', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L429"></a><tt class="py-lineno"> 429</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-570" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-569" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-569', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TEST&lt;n:a xmlns:n="urn:a"&gt;A&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BT&lt;/n:a&gt;AT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-570" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-570', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-571" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-571', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L430"></a><tt class="py-lineno"> 430</tt>  <tt class="py-line"> </tt>
-<a name="L431"></a><tt class="py-lineno"> 431</tt>  <tt class="py-line">        <tt id="link-572" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-572', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-573" class="py-name"><a title="lxml.etree.XML
+<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line"> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">        <tt id="link-572" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-572', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-573" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-573', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-574" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-574', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L432"></a><tt class="py-lineno"> 432</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree
+<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-575', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-576" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-576', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-577" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-577', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'{urn:a}*'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L433"></a><tt class="py-lineno"> 433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-578" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-578', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTA&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BTAT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L434"></a><tt class="py-lineno"> 434</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+<a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-578" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-578', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test&gt;TESTA&lt;b&gt;B&lt;c xmlns="urn:c"&gt;&lt;/c&gt;CT&lt;/b&gt;BTAT&lt;x&gt;X&lt;a&gt;ABT&lt;c xmlns="urn:x"&gt;&lt;/c&gt;CT&lt;/a&gt;AT&lt;/x&gt;XT&lt;/test&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L436"></a><tt class="py-lineno"> 436</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
 lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-579', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-580" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-580', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L435"></a><tt class="py-lineno"> 435</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_strip_tags_and_remove"></a><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-def"><a name="L436"></a><tt class="py-lineno"> 436</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_and_remove-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_and_remove');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-expanded"><a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line">        <tt class="py-comment"># previously crashed</tt> </tt>
-<a name="L438"></a><tt class="py-lineno"> 438</tt>  <tt class="py-line">        <tt id="link-581" class="py-name" targets="Variable lxml.etree.ErrorDomains.HTML=lxml.etree.ErrorDomains-class.html#HTML,Function lxml.etree.HTML()=lxml.etree-module.html#HTML,Variable lxml.html.builder.HTML=lxml.html.builder-module.html#HTML,Variable lxml.tests.test_css.HTML=lxml.tests.test_css-module.html#HTML"><a title="lxml.etree.ErrorDomains.HTML
+</div><a name="L437"></a><tt class="py-lineno"> 437</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_strip_tags_and_remove"></a><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-def"><a name="L438"></a><tt class="py-lineno"> 438</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_strip_tags_and_remove-toggle" onclick="return toggle('ETreeOnlyTestCase.test_strip_tags_and_remove');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_strip_tags_and_remove">test_strip_tags_and_remove</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_strip_tags_and_remove-expanded"><a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">        <tt class="py-comment"># previously crashed</tt> </tt>
+<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">        <tt id="link-581" class="py-name" targets="Variable lxml.etree.ErrorDomains.HTML=lxml.etree.ErrorDomains-class.html#HTML,Function lxml.etree.HTML()=lxml.etree-module.html#HTML,Variable lxml.html.builder.HTML=lxml.html.builder-module.html#HTML,Variable lxml.tests.test_css.HTML=lxml.tests.test_css-module.html#HTML"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
 lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-581', 'HTML', 'link-581');">HTML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-582" class="py-name"><a title="lxml.etree
@@ -1386,43 +1388,43 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.etree.HTML
 lxml.html.builder.HTML
 lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-583', 'HTML', 'link-581');">HTML</a></tt> </tt>
-<a name="L439"></a><tt class="py-lineno"> 439</tt>  <tt class="py-line">        <tt id="link-584" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-584', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-585" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">        <tt id="link-584" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-584', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-585" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
 lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-585', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-586" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-586', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; &lt;b&gt;foo&lt;/b&gt; &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L440"></a><tt class="py-lineno"> 440</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-587" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-587', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; &lt;b&gt;foo&lt;/b&gt; &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L441"></a><tt class="py-lineno"> 441</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree
+<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-587" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-587', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; &lt;b&gt;foo&lt;/b&gt; &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-588', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-589" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-589', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-590" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-590', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L442"></a><tt class="py-lineno"> 442</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.etree
+<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-591', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-592" class="py-name"><a title="lxml.etree.strip_tags" class="py-name" href="#" onclick="return doclink('link-592', 'strip_tags', 'link-382');">strip_tags</a></tt><tt class="py-op">(</tt><tt id="link-593" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-593', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L443"></a><tt class="py-lineno"> 443</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-594" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-594', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; foo &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L444"></a><tt class="py-lineno"> 444</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree
+<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-594" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-594', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;h1&gt;title&lt;/h1&gt; foo &lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-595', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-596" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-596', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-597" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-597', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L445"></a><tt class="py-lineno"> 445</tt>  <tt class="py-line">        <tt id="link-598" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-598', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-599" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
+<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line">        <tt id="link-598" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-598', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-599" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-599', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-600" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-600', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L446"></a><tt class="py-lineno"> 446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-601" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-601', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L447"></a><tt class="py-lineno"> 447</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-602" class="py-name"><a title="lxml.etree
+<a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-601" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-601', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;div&gt;&lt;p&gt;boo&lt;/p&gt;&lt;/div&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-602" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-602', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-603" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-603', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-604" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-604', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L448"></a><tt class="py-lineno"> 448</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pi"></a><div id="ETreeOnlyTestCase.test_pi-def"><a name="L449"></a><tt class="py-lineno"> 449</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi">test_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi-expanded"><a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
-<a name="L451"></a><tt class="py-lineno"> 451</tt>  <tt class="py-line">        <tt id="link-605" class="py-name"><a title="lxml.etree.Element
+</div><a name="L450"></a><tt class="py-lineno"> 450</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pi"></a><div id="ETreeOnlyTestCase.test_pi-def"><a name="L451"></a><tt class="py-lineno"> 451</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi">test_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi-expanded"><a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree separates target and text</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">        <tt id="link-605" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-605', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-606" class="py-name"><a title="lxml.etree
@@ -1433,31 +1435,31 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-607', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L452"></a><tt class="py-lineno"> 452</tt>  <tt class="py-line">        <tt id="link-608" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-608', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-609" class="py-name"><a title="lxml.etree
+<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line">        <tt id="link-608" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-608', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-609" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-609', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-610" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-610', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L453"></a><tt class="py-lineno"> 453</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-611" class="py-name"><a title="lxml.etree
+<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-611" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-611', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L454"></a><tt class="py-lineno"> 454</tt>  <tt class="py-line"> </tt>
-<a name="L455"></a><tt class="py-lineno"> 455</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-612" class="py-name"><a title="lxml.etree.Element
+<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line"> </tt>
+<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-612" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-612', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L456"></a><tt class="py-lineno"> 456</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-613" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-613', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L457"></a><tt class="py-lineno"> 457</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-614" class="py-name" targets="Variable lxml.etree._ProcessingInstruction.target=lxml.etree._ProcessingInstruction-class.html#target"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-614', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-615" class="py-name"><a title="lxml.etree.QName.text
+<a name="L458"></a><tt class="py-lineno"> 458</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-613" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-613', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-614" class="py-name" targets="Variable lxml.etree._ProcessingInstruction.target=lxml.etree._ProcessingInstruction-class.html#target"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-614', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-615" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-615', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'some more text'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L459"></a><tt class="py-lineno"> 459</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pi_parse"></a><div id="ETreeOnlyTestCase.test_pi_parse-def"><a name="L460"></a><tt class="py-lineno"> 460</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse">test_pi_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_pi_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_parse-expanded"><a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line">        <tt id="link-616" class="py-name"><a title="lxml.etree.XML
+</div><a name="L461"></a><tt class="py-lineno"> 461</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pi_parse"></a><div id="ETreeOnlyTestCase.test_pi_parse-def"><a name="L462"></a><tt class="py-lineno"> 462</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_parse">test_pi_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_pi_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_parse-expanded"><a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line">        <tt id="link-616" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-616', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-617" class="py-name"><a title="lxml.etree
@@ -1468,19 +1470,19 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-618', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L462"></a><tt class="py-lineno"> 462</tt>  <tt class="py-line">        <tt id="link-619" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-619', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-620" class="py-name"><a title="lxml.etree.XML
+<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line">        <tt id="link-619" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-619', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-620" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-620', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-621" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-621', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my test ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L463"></a><tt class="py-lineno"> 463</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-622" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-622', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-623" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-623', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
-<a name="L464"></a><tt class="py-lineno"> 464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-624', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-625" class="py-name"><a title="lxml.etree.QName.text
+<a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-622" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-622', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-623" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-623', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-624', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-625" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-625', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"my test "</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L465"></a><tt class="py-lineno"> 465</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pi_pseudo_attributes_get"></a><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-def"><a name="L466"></a><tt class="py-lineno"> 466</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_pseudo_attributes_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-expanded"><a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line">        <tt id="link-626" class="py-name"><a title="lxml.etree.XML
+</div><a name="L467"></a><tt class="py-lineno"> 467</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pi_pseudo_attributes_get"></a><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-def"><a name="L468"></a><tt class="py-lineno"> 468</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_pseudo_attributes_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_get">test_pi_pseudo_attributes_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_get-expanded"><a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">        <tt id="link-626" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-626', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-627" class="py-name"><a title="lxml.etree
@@ -1491,38 +1493,38 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-628', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L468"></a><tt class="py-lineno"> 468</tt>  <tt class="py-line">        <tt id="link-629" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-629', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-630" class="py-name"><a title="lxml.etree.XML
+<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">        <tt id="link-629" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-629', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-630" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-630', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-631" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-631', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my='1' test=\" abc \" quotes=\"' '\" only names ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L469"></a><tt class="py-lineno"> 469</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-632" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-632', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-633" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-633', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
-<a name="L470"></a><tt class="py-lineno"> 470</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-634" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-634', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-635" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-632" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-632', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-633" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-633', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-634" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-634', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-635" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-635', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'my'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L471"></a><tt class="py-lineno"> 471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-636" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-636', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-637" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-636" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-636', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-637" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-637', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">" abc "</tt><tt class="py-op">)</tt> </tt>
-<a name="L472"></a><tt class="py-lineno"> 472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-638', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-639" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-638', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-639" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-639', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'quotes'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"' '"</tt><tt class="py-op">)</tt> </tt>
-<a name="L473"></a><tt class="py-lineno"> 473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-640" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-640', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-641" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-640" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-640', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-641" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-641', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'only'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L474"></a><tt class="py-lineno"> 474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-642" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-642', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-643" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-642" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-642', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-643" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-643', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'names'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L475"></a><tt class="py-lineno"> 475</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-644" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-644', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-645" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L477"></a><tt class="py-lineno"> 477</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-644" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-644', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-645" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-645', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'nope'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L476"></a><tt class="py-lineno"> 476</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib"></a><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-def"><a name="L477"></a><tt class="py-lineno"> 477</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-expanded"><a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line">        <tt id="link-646" class="py-name"><a title="lxml.etree.XML
+</div><a name="L478"></a><tt class="py-lineno"> 478</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib"></a><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-def"><a name="L479"></a><tt class="py-lineno"> 479</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pi_pseudo_attributes_attrib">test_pi_pseudo_attributes_attrib</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pi_pseudo_attributes_attrib-expanded"><a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">        <tt id="link-646" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-646', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-647" class="py-name"><a title="lxml.etree
@@ -1533,21 +1535,21 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-648', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L479"></a><tt class="py-lineno"> 479</tt>  <tt class="py-line">        <tt id="link-649" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-649', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-650" class="py-name"><a title="lxml.etree.XML
+<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">        <tt id="link-649" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-649', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-650" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-650', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-651" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-651', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test&gt;&lt;?mypi my='1' test=\" abc \" quotes=\"' '\" only names ?&gt;&lt;/test&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L480"></a><tt class="py-lineno"> 480</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-652" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-652', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-653" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-653', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
-<a name="L481"></a><tt class="py-lineno"> 481</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-654" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-654', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-655" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-652" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-652', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-653" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-653', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"mypi"</tt><tt class="py-op">)</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-654" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-654', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-655" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-655', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'my'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L482"></a><tt class="py-lineno"> 482</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-656" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-656', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-656" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-656', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-657', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">" abc "</tt><tt class="py-op">)</tt> </tt>
-<a name="L483"></a><tt class="py-lineno"> 483</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-658', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-659" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-658', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-659" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-659', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'quotes'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">"' '"</tt><tt class="py-op">)</tt> </tt>
-<a name="L484"></a><tt class="py-lineno"> 484</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt id="link-660" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-660', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt id="link-660" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-660', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-661', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-662" class="py-name" targets="Method lxml.etree._Attrib.__getitem__()=lxml.etree._Attrib-class.html#__getitem__,Method lxml.etree._Element.__getitem__()=lxml.etree._Element-class.html#__getitem__,Method lxml.etree._IDDict.__getitem__()=lxml.etree._IDDict-class.html#__getitem__,Method lxml.etree._ListErrorLog.__getitem__()=lxml.etree._ListErrorLog-class.html#__getitem__,Method lxml.html.FieldsDict.__getitem__()=lxml.html.FieldsDict-class.html#__getitem__,Method lxml.html.InputGetter.__getitem__()=lxml.html.InputGetter-class.html#__getitem__,Method lxml.objectify.ObjectifiedElement.__getitem__()=lxml.objectify.ObjectifiedElement-class.html#__getitem__"><a title="lxml.etree._Attrib.__getitem__
 lxml.etree._Element.__getitem__
@@ -1556,7 +1558,7 @@ lxml.etree._ListErrorLog.__getitem__
 lxml.html.FieldsDict.__getitem__
 lxml.html.InputGetter.__getitem__
 lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-662', '__getitem__', 'link-662');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'only'</tt><tt class="py-op">)</tt> </tt>
-<a name="L485"></a><tt class="py-lineno"> 485</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt id="link-663" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-663', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-664" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt id="link-663" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-663', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-664" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-664', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-665" class="py-name"><a title="lxml.etree._Attrib.__getitem__
 lxml.etree._Element.__getitem__
@@ -1565,7 +1567,7 @@ lxml.etree._ListErrorLog.__getitem__
 lxml.html.FieldsDict.__getitem__
 lxml.html.InputGetter.__getitem__
 lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-665', '__getitem__', 'link-662');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'names'</tt><tt class="py-op">)</tt> </tt>
-<a name="L486"></a><tt class="py-lineno"> 486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt id="link-666" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-666', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-667" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L488"></a><tt class="py-lineno"> 488</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">KeyError</tt><tt class="py-op">,</tt> <tt id="link-666" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-666', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-667" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-667', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">.</tt><tt id="link-668" class="py-name"><a title="lxml.etree._Attrib.__getitem__
 lxml.etree._Element.__getitem__
@@ -1574,41 +1576,41 @@ lxml.etree._ListErrorLog.__getitem__
 lxml.html.FieldsDict.__getitem__
 lxml.html.InputGetter.__getitem__
 lxml.objectify.ObjectifiedElement.__getitem__" class="py-name" href="#" onclick="return doclink('link-668', '__getitem__', 'link-662');">__getitem__</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nope'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L487"></a><tt class="py-lineno"> 487</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_deepcopy_pi"></a><div id="ETreeOnlyTestCase.test_deepcopy_pi-def"><a name="L488"></a><tt class="py-lineno"> 488</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_deepcopy_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_pi-expanded"><a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line">        <tt class="py-comment"># previously caused a crash</tt> </tt>
-<a name="L490"></a><tt class="py-lineno"> 490</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-669" class="py-name"><a title="lxml.etree
+</div><a name="L489"></a><tt class="py-lineno"> 489</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_deepcopy_pi"></a><div id="ETreeOnlyTestCase.test_deepcopy_pi-def"><a name="L490"></a><tt class="py-lineno"> 490</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_pi">test_deepcopy_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_deepcopy_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_pi-expanded"><a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line">        <tt class="py-comment"># previously caused a crash</tt> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line">        <tt class="py-name">ProcessingInstruction</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-669" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-669', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstruction</tt> </tt>
-<a name="L491"></a><tt class="py-lineno"> 491</tt>  <tt class="py-line">         </tt>
-<a name="L492"></a><tt class="py-lineno"> 492</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">"PI"</tt><tt class="py-op">,</tt> <tt class="py-string">"ONE"</tt><tt class="py-op">)</tt> </tt>
-<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-670" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+<a name="L493"></a><tt class="py-lineno"> 493</tt>  <tt class="py-line">         </tt>
+<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">ProcessingInstruction</tt><tt class="py-op">(</tt><tt class="py-string">"PI"</tt><tt class="py-op">,</tt> <tt class="py-string">"ONE"</tt><tt class="py-op">)</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-670" class="py-name"><a title="lxml.etree.PyErrorLog.copy
 lxml.etree._BaseErrorLog.copy
 lxml.etree._ErrorLog.copy
 lxml.etree._IDDict.copy
 lxml.etree._ListErrorLog.copy
 lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-670', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L494"></a><tt class="py-lineno"> 494</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-671" class="py-name"><a title="lxml.etree.QName.text
+<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-671" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-671', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"ANOTHER"</tt> </tt>
-<a name="L495"></a><tt class="py-lineno"> 495</tt>  <tt class="py-line"> </tt>
-<a name="L496"></a><tt class="py-lineno"> 496</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ONE'</tt><tt class="py-op">,</tt>     <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-672" class="py-name"><a title="lxml.etree.QName.text
+<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line"> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ONE'</tt><tt class="py-op">,</tt>     <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-672" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-672', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L497"></a><tt class="py-lineno"> 497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ANOTHER'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-673" class="py-name"><a title="lxml.etree.QName.text
+<a name="L499"></a><tt class="py-lineno"> 499</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'ANOTHER'</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-673" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-673', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L498"></a><tt class="py-lineno"> 498</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_deepcopy_elementtree_pi"></a><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-def"><a name="L499"></a><tt class="py-lineno"> 499</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_elementtree_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-expanded"><a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line">        <tt id="link-674" class="py-name"><a title="lxml.etree.XML
+</div><a name="L500"></a><tt class="py-lineno"> 500</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_deepcopy_elementtree_pi"></a><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-def"><a name="L501"></a><tt class="py-lineno"> 501</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_elementtree_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_pi">test_deepcopy_elementtree_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_pi-expanded"><a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">        <tt id="link-674" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-674', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-675" class="py-name"><a title="lxml.etree
@@ -1619,50 +1621,50 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-676', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L501"></a><tt class="py-lineno"> 501</tt>  <tt class="py-line">        <tt id="link-677" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line">        <tt id="link-677" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-677', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-678" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-678', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-679" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-679', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L502"></a><tt class="py-lineno"> 502</tt>  <tt class="py-line">        <tt id="link-680" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-680', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-681" class="py-name"><a title="lxml.etree.XML
+<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">        <tt id="link-680" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-680', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-681" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-681', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-682" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-682', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L503"></a><tt class="py-lineno"> 503</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-683" class="py-name"><a title="lxml.etree
+<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-683" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-683', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-684" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-684', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-685" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-685', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L504"></a><tt class="py-lineno"> 504</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-686', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L505"></a><tt class="py-lineno"> 505</tt>  <tt class="py-line">                          <tt id="link-687" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-686', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">                          <tt id="link-687" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-687', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L506"></a><tt class="py-lineno"> 506</tt>  <tt class="py-line"> </tt>
-<a name="L507"></a><tt class="py-lineno"> 507</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-688" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line"> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-688" class="py-name"><a title="lxml.etree.PyErrorLog.copy
 lxml.etree._BaseErrorLog.copy
 lxml.etree._ErrorLog.copy
 lxml.etree._IDDict.copy
 lxml.etree._ListErrorLog.copy
 lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-688', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt> </tt>
-<a name="L508"></a><tt class="py-lineno"> 508</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-689" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-689', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L509"></a><tt class="py-lineno"> 509</tt>  <tt class="py-line">                          <tt id="link-690" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-689" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-689', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;?mypi my test ?&gt;&lt;test/&gt;&lt;!--comment --&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">                          <tt id="link-690" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-690', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L510"></a><tt class="py-lineno"> 510</tt>  <tt class="py-line"> </tt>
-<a name="L511"></a><tt class="py-lineno"> 511</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-691" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line"> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-691" class="py-name"><a title="lxml.etree.PyErrorLog.copy
 lxml.etree._BaseErrorLog.copy
 lxml.etree._ErrorLog.copy
 lxml.etree._IDDict.copy
 lxml.etree._ListErrorLog.copy
 lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-691', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">.</tt><tt id="link-692" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-692', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L512"></a><tt class="py-lineno"> 512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-693" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-693', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L513"></a><tt class="py-lineno"> 513</tt>  <tt class="py-line">                          <tt id="link-694" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-693" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-693', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L515"></a><tt class="py-lineno"> 515</tt>  <tt class="py-line">                          <tt id="link-694" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-694', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L514"></a><tt class="py-lineno"> 514</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd"></a><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-def"><a name="L515"></a><tt class="py-lineno"> 515</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_elementtree_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-expanded"><a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line">        <tt id="link-695" class="py-name"><a title="lxml.etree.XML
+</div><a name="L516"></a><tt class="py-lineno"> 516</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd"></a><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-def"><a name="L517"></a><tt class="py-lineno"> 517</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_deepcopy_elementtree_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_deepcopy_elementtree_dtd">test_deepcopy_elementtree_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_deepcopy_elementtree_dtd-expanded"><a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line">        <tt id="link-695" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-695', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.etree
@@ -1673,51 +1675,51 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-697', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L517"></a><tt class="py-lineno"> 517</tt>  <tt class="py-line">        <tt id="link-698" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line">        <tt id="link-698" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-698', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-699', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-700" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-700', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L518"></a><tt class="py-lineno"> 518</tt>  <tt class="py-line">        <tt id="link-701" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-701', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-702" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-702', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE test [\n&lt;!ENTITY entity "tasty"&gt;\n]&gt;\n&lt;test/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L519"></a><tt class="py-lineno"> 519</tt>  <tt class="py-line">        <tt id="link-703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-703', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-704" class="py-name"><a title="lxml.etree.XML
+<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line">        <tt id="link-701" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-701', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-702" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-702', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE test [\n&lt;!ENTITY entity "tasty"&gt;\n]&gt;\n&lt;test/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">        <tt id="link-703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-703', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-704" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-704', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-705" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-705', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L520"></a><tt class="py-lineno"> 520</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-706" class="py-name"><a title="lxml.etree
+<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line">        <tt class="py-name">tree1</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-706" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-706', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-707" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-707', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-708" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-708', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L521"></a><tt class="py-lineno"> 521</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-709" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-709', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-710" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-709" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-709', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-710" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-710', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L522"></a><tt class="py-lineno"> 522</tt>  <tt class="py-line"> </tt>
-<a name="L523"></a><tt class="py-lineno"> 523</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-711" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line"> </tt>
+<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line">        <tt class="py-name">tree2</tt> <tt class="py-op">=</tt> <tt id="link-711" class="py-name"><a title="lxml.etree.PyErrorLog.copy
 lxml.etree._BaseErrorLog.copy
 lxml.etree._ErrorLog.copy
 lxml.etree._IDDict.copy
 lxml.etree._ListErrorLog.copy
 lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-711', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">)</tt> </tt>
-<a name="L524"></a><tt class="py-lineno"> 524</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-712" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-712', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-713" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-712" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-712', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-713" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-713', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L525"></a><tt class="py-lineno"> 525</tt>  <tt class="py-line"> </tt>
-<a name="L526"></a><tt class="py-lineno"> 526</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-714" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line"> </tt>
+<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-714" class="py-name"><a title="lxml.etree.PyErrorLog.copy
 lxml.etree._BaseErrorLog.copy
 lxml.etree._ErrorLog.copy
 lxml.etree._IDDict.copy
 lxml.etree._ListErrorLog.copy
 lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-714', 'copy', 'link-1');">copy</a></tt><tt class="py-op">.</tt><tt class="py-name">deepcopy</tt><tt class="py-op">(</tt><tt class="py-name">tree1</tt><tt class="py-op">.</tt><tt id="link-715" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-715', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L527"></a><tt class="py-lineno"> 527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-716" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-716', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L528"></a><tt class="py-lineno"> 528</tt>  <tt class="py-line">                          <tt id="link-717" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-716" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-716', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;test/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt>  <tt class="py-line">                          <tt id="link-717" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-717', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L529"></a><tt class="py-lineno"> 529</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_set"></a><div id="ETreeOnlyTestCase.test_attribute_set-def"><a name="L530"></a><tt class="py-lineno"> 530</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_set-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_set');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_set-expanded"><a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree accepts arbitrary attribute values</tt> </tt>
-<a name="L532"></a><tt class="py-lineno"> 532</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree allows only strings</tt> </tt>
-<a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line">        <tt id="link-718" class="py-name"><a title="lxml.etree.Element
+</div><a name="L531"></a><tt class="py-lineno"> 531</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_set"></a><div id="ETreeOnlyTestCase.test_attribute_set-def"><a name="L532"></a><tt class="py-lineno"> 532</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_set-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_set');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_set">test_attribute_set</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_set-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_set-expanded"><a name="L533"></a><tt class="py-lineno"> 533</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree accepts arbitrary attribute values</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line">        <tt class="py-comment"># lxml.etree allows only strings</tt> </tt>
+<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">        <tt id="link-718" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-718', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-719" class="py-name"><a title="lxml.etree
@@ -1728,22 +1730,22 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-720', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L534"></a><tt class="py-lineno"> 534</tt>  <tt class="py-line"> </tt>
-<a name="L535"></a><tt class="py-lineno"> 535</tt>  <tt class="py-line">        <tt id="link-721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-721', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-722" class="py-name"><a title="lxml.etree.Element
+<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line"> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">        <tt id="link-721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-721', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-722" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-722', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L536"></a><tt class="py-lineno"> 536</tt>  <tt class="py-line">        <tt id="link-723" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-723', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-724" class="py-name"><a title="lxml.etree._Element.set
+<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt id="link-723" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-723', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-724" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-724', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"attr"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-<a name="L537"></a><tt class="py-lineno"> 537</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-725" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-725', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-726" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-725" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-725', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-726" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-726', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"attr"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L538"></a><tt class="py-lineno"> 538</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-727" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-727', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-728" class="py-name"><a title="lxml.etree._Element.set
+<a name="L540"></a><tt class="py-lineno"> 540</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-727" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-727', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-728" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-728', 'set', 'link-233');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"newattr"</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L539"></a><tt class="py-lineno"> 539</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_remove_comments"></a><div id="ETreeOnlyTestCase.test_parse_remove_comments-def"><a name="L540"></a><tt class="py-lineno"> 540</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_remove_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_remove_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments">test_parse_remove_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_remove_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_remove_comments-expanded"><a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line">        <tt id="link-729" class="py-name" targets="Function lxml.etree.fromstring()=lxml.etree-module.html#fromstring,Function lxml.html.html5parser.fromstring()=lxml.html.html5parser-module.html#fromstring,Function lxml.html.soupparser.fromstring()=lxml.html.soupparser-module.html#fromstring,Function lxml.objectify.fromstring()=lxml.objectify-module.html#fromstring"><a title="lxml.etree.fromstring
+</div><a name="L541"></a><tt class="py-lineno"> 541</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_remove_comments"></a><div id="ETreeOnlyTestCase.test_parse_remove_comments-def"><a name="L542"></a><tt class="py-lineno"> 542</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_remove_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_remove_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_comments">test_parse_remove_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_remove_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_remove_comments-expanded"><a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt id="link-729" class="py-name" targets="Function lxml.etree.fromstring()=lxml.etree-module.html#fromstring,Function lxml.html.html5parser.fromstring()=lxml.html.html5parser-module.html#fromstring,Function lxml.html.soupparser.fromstring()=lxml.html.soupparser-module.html#fromstring,Function lxml.objectify.fromstring()=lxml.objectify-module.html#fromstring"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
 lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-729', 'fromstring', 'link-729');">fromstring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree
@@ -1754,14 +1756,14 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
 lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-731', 'fromstring', 'link-729');">fromstring</a></tt> </tt>
-<a name="L542"></a><tt class="py-lineno"> 542</tt>  <tt class="py-line">        <tt id="link-732" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line">        <tt id="link-732" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-732', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-733" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-733', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-734" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-734', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L543"></a><tt class="py-lineno"> 543</tt>  <tt class="py-line">        <tt id="link-735" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
+<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">        <tt id="link-735" class="py-name" targets="Class lxml.etree.XMLParser=lxml.etree.XMLParser-class.html,Method lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser()=lxml.tests.test_elementtree._ETreeTestCaseBase-class.html#XMLParser,Class xml.etree.ElementTree.XMLParser=xml.etree.ElementTree.XMLParser-class.html"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-735', 'XMLParser', 'link-735');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-736" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -1770,24 +1772,24 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-736', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-737" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-737', 'XMLParser', 'link-735');">XMLParser</a></tt> </tt>
-<a name="L544"></a><tt class="py-lineno"> 544</tt>  <tt class="py-line"> </tt>
-<a name="L545"></a><tt class="py-lineno"> 545</tt>  <tt class="py-line">        <tt id="link-738" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-738', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-739" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-739', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line">        <tt id="link-740" class="py-name" targets="Variable lxml.etree._ElementTree.parser=lxml.etree._ElementTree-class.html#parser,Variable lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser"><a title="lxml.etree._ElementTree.parser
+<a name="L546"></a><tt class="py-lineno"> 546</tt>  <tt class="py-line"> </tt>
+<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">        <tt id="link-738" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-738', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-739" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-739', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">        <tt id="link-740" class="py-name" targets="Variable lxml.etree._ElementTree.parser=lxml.etree._ElementTree-class.html#parser,Variable lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#parser"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-740', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-741" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-741', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L547"></a><tt class="py-lineno"> 547</tt>  <tt class="py-line">        <tt id="link-742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-742', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-743" class="py-name"><a title="lxml.etree.fromstring
+<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">        <tt id="link-742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-742', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-743" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
 lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-743', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-744" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-744', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-745" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-745', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L548"></a><tt class="py-lineno"> 548</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L549"></a><tt class="py-lineno"> 549</tt>  <tt class="py-line">            <tt id="link-746" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-746', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">            <tt id="link-747" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L550"></a><tt class="py-lineno"> 550</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line">            <tt id="link-746" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-746', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L552"></a><tt class="py-lineno"> 552</tt>  <tt class="py-line">            <tt id="link-747" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-747', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-748" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-748', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L551"></a><tt class="py-lineno"> 551</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_remove_pis"></a><div id="ETreeOnlyTestCase.test_parse_remove_pis-def"><a name="L552"></a><tt class="py-lineno"> 552</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_remove_pis-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_remove_pis');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis">test_parse_remove_pis</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_remove_pis-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_remove_pis-expanded"><a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line">        <tt id="link-749" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><a title="lxml.etree._ElementTree.parse
+</div><a name="L553"></a><tt class="py-lineno"> 553</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_remove_pis"></a><div id="ETreeOnlyTestCase.test_parse_remove_pis-def"><a name="L554"></a><tt class="py-lineno"> 554</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_remove_pis-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_remove_pis');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_remove_pis">test_parse_remove_pis</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_remove_pis-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_remove_pis-expanded"><a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">        <tt id="link-749" class="py-name" targets="Method lxml.etree._ElementTree.parse()=lxml.etree._ElementTree-class.html#parse,Function lxml.etree.parse()=lxml.etree-module.html#parse,Function lxml.html.ElementSoup.parse()=lxml.html.ElementSoup-module.html#parse,Function lxml.html.html5parser.parse()=lxml.html.html5parser-module.html#parse,Function lxml.html.soupparser.parse()=lxml.html.soupparser-module.html#parse,Function lxml.objectify.parse()=lxml.objectify-module.html#parse,Method lxml.tests.common_imports.HelperTestCase.parse()=lxml.tests.common_imports.HelperTestCase-class.html#parse"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -1804,14 +1806,14 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-751', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L554"></a><tt class="py-lineno"> 554</tt>  <tt class="py-line">        <tt id="link-752" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line">        <tt id="link-752" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-752', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-753" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-753', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-754" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-754', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L555"></a><tt class="py-lineno"> 555</tt>  <tt class="py-line">        <tt id="link-755" class="py-name"><a title="lxml.etree.XMLParser
+<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line">        <tt id="link-755" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-755', 'XMLParser', 'link-735');">XMLParser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-756" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -1820,27 +1822,27 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-756', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-757" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-757', 'XMLParser', 'link-735');">XMLParser</a></tt> </tt>
-<a name="L556"></a><tt class="py-lineno"> 556</tt>  <tt class="py-line"> </tt>
-<a name="L557"></a><tt class="py-lineno"> 557</tt>  <tt class="py-line">        <tt id="link-758" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-758', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-759" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-759', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test?&gt;&lt;a&gt;&lt;?A?&gt;&lt;b&gt;&lt;?B?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?C?&gt;&lt;/a&gt;&lt;?tail?&gt;'</tt><tt class="py-op">)</tt> </tt>
 <a name="L558"></a><tt class="py-lineno"> 558</tt>  <tt class="py-line"> </tt>
-<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-760" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-760', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-761" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L559"></a><tt class="py-lineno"> 559</tt>  <tt class="py-line">        <tt id="link-758" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-758', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-759" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-759', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test?&gt;&lt;a&gt;&lt;?A?&gt;&lt;b&gt;&lt;?B?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?C?&gt;&lt;/a&gt;&lt;?tail?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt>  <tt class="py-line"> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-760" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-760', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-761" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-761', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L561"></a><tt class="py-lineno"> 561</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L562"></a><tt class="py-lineno"> 562</tt>  <tt class="py-line">            <tt id="link-762" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-762', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">            <tt id="link-763" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L563"></a><tt class="py-lineno"> 563</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line">            <tt id="link-762" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-762', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">            <tt id="link-763" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-763', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L564"></a><tt class="py-lineno"> 564</tt>  <tt class="py-line"> </tt>
-<a name="L565"></a><tt class="py-lineno"> 565</tt>  <tt class="py-line">        <tt id="link-764" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line"> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">        <tt id="link-764" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-764', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-765" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-765', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">remove_pis</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L566"></a><tt class="py-lineno"> 566</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-766" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-766" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -1848,14 +1850,14 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-766', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-767" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-767', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L567"></a><tt class="py-lineno"> 567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L568"></a><tt class="py-lineno"> 568</tt>  <tt class="py-line">            <tt id="link-768" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-768', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">            <tt id="link-769" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L569"></a><tt class="py-lineno"> 569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line">            <tt id="link-768" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-768', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt>  <tt class="py-line">            <tt id="link-769" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-769', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L570"></a><tt class="py-lineno"> 570</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_parser_type_error"></a><div id="ETreeOnlyTestCase.test_parse_parser_type_error-def"><a name="L571"></a><tt class="py-lineno"> 571</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_parser_type_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_parser_type_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error">test_parse_parser_type_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_parser_type_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_parser_type_error-expanded"><a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line">        <tt class="py-comment"># ET raises IOError only</tt> </tt>
-<a name="L573"></a><tt class="py-lineno"> 573</tt>  <tt class="py-line">        <tt id="link-770" class="py-name"><a title="lxml.etree._ElementTree.parse
+</div><a name="L572"></a><tt class="py-lineno"> 572</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_parser_type_error"></a><div id="ETreeOnlyTestCase.test_parse_parser_type_error-def"><a name="L573"></a><tt class="py-lineno"> 573</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_parser_type_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_parser_type_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_parser_type_error">test_parse_parser_type_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_parser_type_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_parser_type_error-expanded"><a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line">        <tt class="py-comment"># ET raises IOError only</tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line">        <tt id="link-770" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -1872,97 +1874,97 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-772', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L574"></a><tt class="py-lineno"> 574</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-773" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L576"></a><tt class="py-lineno"> 576</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-773" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-773', 'parse', 'link-749');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-string">'notthere.xml'</tt><tt class="py-op">,</tt> <tt class="py-name">object</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L575"></a><tt class="py-lineno"> 575</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tree_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-def"><a name="L576"></a><tt class="py-lineno"> 576</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tree_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tree_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-expanded"><a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes comments</tt> </tt>
-<a name="L578"></a><tt class="py-lineno"> 578</tt>  <tt class="py-line">        <tt id="link-774" class="py-name" targets="Class lxml.etree.iterparse=lxml.etree.iterparse-class.html"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-774', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-775" class="py-name"><a title="lxml.etree
+</div><a name="L577"></a><tt class="py-lineno"> 577</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tree_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-def"><a name="L578"></a><tt class="py-lineno"> 578</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tree_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tree_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tree_comments">test_iterparse_tree_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tree_comments-expanded"><a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes comments</tt> </tt>
+<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line">        <tt id="link-774" class="py-name" targets="Class lxml.etree.iterparse=lxml.etree.iterparse-class.html"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-774', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-775" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-775', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-776" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-776', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L579"></a><tt class="py-lineno"> 579</tt>  <tt class="py-line">        <tt id="link-777" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">        <tt id="link-777" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-777', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-778" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-778', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-779" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-779', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L580"></a><tt class="py-lineno"> 580</tt>  <tt class="py-line"> </tt>
-<a name="L581"></a><tt class="py-lineno"> 581</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-780" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-780', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line">        <tt id="link-781" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-781', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line">            <tt id="link-782" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-782', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">            <tt id="link-783" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L582"></a><tt class="py-lineno"> 582</tt>  <tt class="py-line"> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-780" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-780', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt>  <tt class="py-line">        <tt id="link-781" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-781', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line">            <tt id="link-782" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-782', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt>  <tt class="py-line">            <tt id="link-783" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-783', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-784" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-784', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L588"></a><tt class="py-lineno"> 588</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_comments-def"><a name="L589"></a><tt class="py-lineno"> 589</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_comments-expanded"><a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes comments</tt> </tt>
-<a name="L591"></a><tt class="py-lineno"> 591</tt>  <tt class="py-line">        <tt id="link-785" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-785', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-786" class="py-name"><a title="lxml.etree
+</div><a name="L590"></a><tt class="py-lineno"> 590</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_comments-def"><a name="L591"></a><tt class="py-lineno"> 591</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_comments">test_iterparse_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_comments-expanded"><a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes comments</tt> </tt>
+<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line">        <tt id="link-785" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-785', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-786" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-786', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-787" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-787', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L592"></a><tt class="py-lineno"> 592</tt>  <tt class="py-line">        <tt id="link-788" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">        <tt id="link-788" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-788', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-789" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-789', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-790" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-790', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L593"></a><tt class="py-lineno"> 593</tt>  <tt class="py-line"> </tt>
-<a name="L594"></a><tt class="py-lineno"> 594</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">name</tt><tt class="py-op">(</tt><tt class="py-param">event</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'comment'</tt><tt class="py-op">:</tt> </tt>
-<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-791" class="py-name"><a title="lxml.etree.QName.text
+<a name="L595"></a><tt class="py-lineno"> 595</tt>  <tt class="py-line"> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">name</tt><tt class="py-op">(</tt><tt class="py-param">event</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'comment'</tt><tt class="py-op">:</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-791" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-791', 'text', 'link-186');">text</a></tt> </tt>
-<a name="L597"></a><tt class="py-lineno"> 597</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L598"></a><tt class="py-lineno"> 598</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-792" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-792" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-792', 'tag', 'link-65');">tag</a></tt> </tt>
-</div><a name="L599"></a><tt class="py-lineno"> 599</tt>  <tt class="py-line"> </tt>
-<a name="L600"></a><tt class="py-lineno"> 600</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-793" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-793', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">        <tt id="link-794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-794', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">6</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">' B '</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'C'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt id="link-795" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
+</div><a name="L601"></a><tt class="py-lineno"> 601</tt>  <tt class="py-line"> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-793" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-793', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt>  <tt class="py-line">        <tt id="link-794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-794', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">6</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">' B '</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'C'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt id="link-795" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
 lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-795', 'name', 'link-795');">name</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L606"></a><tt class="py-lineno"> 606</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L607"></a><tt class="py-lineno"> 607</tt>  <tt class="py-line">            <tt id="link-796" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-796', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">            <tt id="link-797" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L608"></a><tt class="py-lineno"> 608</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line">            <tt id="link-796" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-796', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt>  <tt class="py-line">            <tt id="link-797" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-797', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-798" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-798', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L609"></a><tt class="py-lineno"> 609</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_pis"></a><div id="ETreeOnlyTestCase.test_iterparse_pis-def"><a name="L610"></a><tt class="py-lineno"> 610</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_pis-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_pis');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_pis-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_pis-expanded"><a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes pis</tt> </tt>
-<a name="L612"></a><tt class="py-lineno"> 612</tt>  <tt class="py-line">        <tt id="link-799" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-799', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-800" class="py-name"><a title="lxml.etree
+</div><a name="L611"></a><tt class="py-lineno"> 611</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_pis"></a><div id="ETreeOnlyTestCase.test_iterparse_pis-def"><a name="L612"></a><tt class="py-lineno"> 612</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_pis-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_pis');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_pis">test_iterparse_pis</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_pis-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_pis-expanded"><a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">        <tt class="py-comment"># ET removes pis</tt> </tt>
+<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line">        <tt id="link-799" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-799', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-800" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-800', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-801" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-801', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L613"></a><tt class="py-lineno"> 613</tt>  <tt class="py-line">        <tt id="link-802" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line">        <tt id="link-802" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-802', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-803" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-803', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-804" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-804', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L614"></a><tt class="py-lineno"> 614</tt>  <tt class="py-line">        <tt id="link-805" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">        <tt id="link-805" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-805', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-806" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -1971,96 +1973,96 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-806', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-807" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-807', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L615"></a><tt class="py-lineno"> 615</tt>  <tt class="py-line"> </tt>
-<a name="L616"></a><tt class="py-lineno"> 616</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">name</tt><tt class="py-op">(</tt><tt class="py-param">event</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'pi'</tt><tt class="py-op">:</tt> </tt>
-<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-808" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-808', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-809" class="py-name"><a title="lxml.etree.QName.text
+<a name="L617"></a><tt class="py-lineno"> 617</tt>  <tt class="py-line"> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">name</tt><tt class="py-op">(</tt><tt class="py-param">event</tt><tt class="py-op">,</tt> <tt class="py-param">el</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'pi'</tt><tt class="py-op">:</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-808" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-808', 'target', 'link-614');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-809" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-809', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L619"></a><tt class="py-lineno"> 619</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L620"></a><tt class="py-lineno"> 620</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-810" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-810" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-810', 'tag', 'link-65');">tag</a></tt> </tt>
-</div><a name="L621"></a><tt class="py-lineno"> 621</tt>  <tt class="py-line"> </tt>
-<a name="L622"></a><tt class="py-lineno"> 622</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?pia a?&gt;&lt;a&gt;&lt;?pib b?&gt;&lt;b&gt;&lt;?pic c?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?pid d?&gt;&lt;/a&gt;&lt;?pie e?&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-811" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-811', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">        <tt id="link-812" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-812', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'pia'</tt><tt class="py-op">,</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pib'</tt><tt class="py-op">,</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pic'</tt><tt class="py-op">,</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
-<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">                           <tt class="py-op">(</tt><tt class="py-string">'pid'</tt><tt class="py-op">,</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pie'</tt><tt class="py-op">,</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt id="link-813" class="py-name"><a title="lxml.etree.DTD.name
+</div><a name="L623"></a><tt class="py-lineno"> 623</tt>  <tt class="py-line"> </tt>
+<a name="L624"></a><tt class="py-lineno"> 624</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?pia a?&gt;&lt;a&gt;&lt;?pib b?&gt;&lt;b&gt;&lt;?pic c?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?pid d?&gt;&lt;/a&gt;&lt;?pie e?&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-811" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-811', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L626"></a><tt class="py-lineno"> 626</tt>  <tt class="py-line">        <tt id="link-812" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-812', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'pia'</tt><tt class="py-op">,</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pib'</tt><tt class="py-op">,</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pic'</tt><tt class="py-op">,</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">                           <tt class="py-op">(</tt><tt class="py-string">'pid'</tt><tt class="py-op">,</tt><tt class="py-string">'d'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'pie'</tt><tt class="py-op">,</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt id="link-813" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
 lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-813', 'name', 'link-795');">name</a></tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L629"></a><tt class="py-lineno"> 629</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L630"></a><tt class="py-lineno"> 630</tt>  <tt class="py-line">            <tt id="link-814" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-814', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?pia a?&gt;&lt;a&gt;&lt;?pib b?&gt;&lt;b&gt;&lt;?pic c?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?pid d?&gt;&lt;/a&gt;&lt;?pie e?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">            <tt id="link-815" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L631"></a><tt class="py-lineno"> 631</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line">            <tt id="link-814" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-814', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?pia a?&gt;&lt;a&gt;&lt;?pib b?&gt;&lt;b&gt;&lt;?pic c?&gt;&lt;c/&gt;&lt;/b&gt;&lt;?pid d?&gt;&lt;/a&gt;&lt;?pie e?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt>  <tt class="py-line">            <tt id="link-815" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-815', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-816" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-816', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-817" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-817', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L632"></a><tt class="py-lineno"> 632</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_remove_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-def"><a name="L633"></a><tt class="py-lineno"> 633</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_remove_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_remove_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-expanded"><a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line">        <tt id="link-818" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-818', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-819" class="py-name"><a title="lxml.etree
+</div><a name="L634"></a><tt class="py-lineno"> 634</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_remove_comments"></a><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-def"><a name="L635"></a><tt class="py-lineno"> 635</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_remove_comments-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_remove_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_remove_comments">test_iterparse_remove_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_remove_comments-expanded"><a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line">        <tt id="link-818" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-818', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-819" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-819', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-820" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-820', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L635"></a><tt class="py-lineno"> 635</tt>  <tt class="py-line">        <tt id="link-821" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line">        <tt id="link-821" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-821', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-822" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-822', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-823" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-823', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L636"></a><tt class="py-lineno"> 636</tt>  <tt class="py-line"> </tt>
-<a name="L637"></a><tt class="py-lineno"> 637</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-824" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-824', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">remove_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
-<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">                                <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">        <tt id="link-825" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-825', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-826" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L638"></a><tt class="py-lineno"> 638</tt>  <tt class="py-line"> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--A--&gt;&lt;b&gt;&lt;!-- B --&gt;&lt;c/&gt;&lt;/b&gt;&lt;!--C--&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-824" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-824', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">remove_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt>  <tt class="py-line">                                <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'comment'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt>  <tt class="py-line">        <tt id="link-825" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-825', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">events</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line">                          <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-826" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-826', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L644"></a><tt class="py-lineno"> 644</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L645"></a><tt class="py-lineno"> 645</tt>  <tt class="py-line">            <tt id="link-827" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-827', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">            <tt id="link-828" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L646"></a><tt class="py-lineno"> 646</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line">            <tt id="link-827" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-827', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt>  <tt class="py-line">            <tt id="link-828" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-828', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-829" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-829', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L647"></a><tt class="py-lineno"> 647</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_broken"></a><div id="ETreeOnlyTestCase.test_iterparse_broken-def"><a name="L648"></a><tt class="py-lineno"> 648</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_broken-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_broken');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_broken-expanded"><a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line">        <tt id="link-830" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-830', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-831" class="py-name"><a title="lxml.etree
+</div><a name="L649"></a><tt class="py-lineno"> 649</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_broken"></a><div id="ETreeOnlyTestCase.test_iterparse_broken-def"><a name="L650"></a><tt class="py-lineno"> 650</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_broken-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_broken');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_broken">test_iterparse_broken</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_broken-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_broken-expanded"><a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">        <tt id="link-830" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-830', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-831" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-831', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-832" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-832', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L650"></a><tt class="py-lineno"> 650</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L651"></a><tt class="py-lineno"> 651</tt>  <tt class="py-line">        <tt class="py-comment"># ET raises ExpatError, lxml raises XMLSyntaxError</tt> </tt>
-<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-833" class="py-name"><a title="lxml.etree
+<a name="L652"></a><tt class="py-lineno"> 652</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line">        <tt class="py-comment"># ET raises ExpatError, lxml raises XMLSyntaxError</tt> </tt>
+<a name="L654"></a><tt class="py-lineno"> 654</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-833" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-833', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-834" class="py-name" targets="Class lxml.etree.XMLSyntaxError=lxml.etree.XMLSyntaxError-class.html"><a title="lxml.etree.XMLSyntaxError" class="py-name" href="#" onclick="return doclink('link-834', 'XMLSyntaxError', 'link-834');">XMLSyntaxError</a></tt><tt class="py-op">,</tt> <tt class="py-name">list</tt><tt class="py-op">,</tt> <tt id="link-835" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-835', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L653"></a><tt class="py-lineno"> 653</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_strip"></a><div id="ETreeOnlyTestCase.test_iterparse_strip-def"><a name="L654"></a><tt class="py-lineno"> 654</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_strip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_strip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_strip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_strip-expanded"><a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line">        <tt id="link-836" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-836', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-837" class="py-name"><a title="lxml.etree
+</div><a name="L655"></a><tt class="py-lineno"> 655</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_strip"></a><div id="ETreeOnlyTestCase.test_iterparse_strip-def"><a name="L656"></a><tt class="py-lineno"> 656</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_strip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_strip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_strip">test_iterparse_strip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_strip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_strip-expanded"><a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line">        <tt id="link-836" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-836', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-837" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-837', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-838" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-838', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L656"></a><tt class="py-lineno"> 656</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"""</tt> </tt>
-<a name="L657"></a><tt class="py-lineno"> 657</tt>  <tt class="py-line"><tt class="py-string">               &lt;a&gt;  \n \n  &lt;b&gt; b test &lt;/b&gt;  \n</tt> </tt>
-<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line"><tt class="py-string">               \n\t &lt;c&gt; \n &lt;/c&gt; &lt;/a&gt;  \n """</tt><tt class="py-op">)</tt> </tt>
-<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-839" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-839', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line">        <tt id="link-840" class="py-name"><a title="lxml.etree.QName.text
+<a name="L658"></a><tt class="py-lineno"> 658</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"""</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt>  <tt class="py-line"><tt class="py-string">               &lt;a&gt;  \n \n  &lt;b&gt; b test &lt;/b&gt;  \n</tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt>  <tt class="py-line"><tt class="py-string">               \n\t &lt;c&gt; \n &lt;/c&gt; &lt;/a&gt;  \n """</tt><tt class="py-op">)</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-839" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-839', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line">        <tt id="link-840" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -2070,196 +2072,196 @@ lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-841', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-842" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-842', 'tail', 'link-842');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L662"></a><tt class="py-lineno"> 662</tt>  <tt class="py-line">                 <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">element</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt> <tt class="py-op">]</tt> </tt>
-<a name="L663"></a><tt class="py-lineno"> 663</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">" b test "</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">" \n "</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line">            <tt id="link-843" class="py-name"><a title="lxml.etree.QName.text
+<a name="L664"></a><tt class="py-lineno"> 664</tt>  <tt class="py-line">                 <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">element</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt> <tt class="py-op">]</tt> </tt>
+<a name="L665"></a><tt class="py-lineno"> 665</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">" b test "</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">" \n "</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L667"></a><tt class="py-lineno"> 667</tt>  <tt class="py-line">            <tt id="link-843" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-843', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L666"></a><tt class="py-lineno"> 666</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag"></a><div id="ETreeOnlyTestCase.test_iterparse_tag-def"><a name="L667"></a><tt class="py-lineno"> 667</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag">test_iterparse_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag-expanded"><a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line">        <tt id="link-844" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-844', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-845" class="py-name"><a title="lxml.etree
+</div><a name="L668"></a><tt class="py-lineno"> 668</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag"></a><div id="ETreeOnlyTestCase.test_iterparse_tag-def"><a name="L669"></a><tt class="py-lineno"> 669</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag">test_iterparse_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag-expanded"><a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line">        <tt id="link-844" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-844', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-845" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-845', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-846" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-846', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L669"></a><tt class="py-lineno"> 669</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L670"></a><tt class="py-lineno"> 670</tt>  <tt class="py-line"> </tt>
-<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-847" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-847', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-848" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L671"></a><tt class="py-lineno"> 671</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line"> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-847" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-847', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-848" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-848', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"b"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L672"></a><tt class="py-lineno"> 672</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L673"></a><tt class="py-lineno"> 673</tt>  <tt class="py-line">        <tt id="link-849" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-849', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-850" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-850', 'root', 'link-212');">root</a></tt> </tt>
-<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-851" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-851', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-852" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-852', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_all-def"><a name="L678"></a><tt class="py-lineno"> 678</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_all-expanded"><a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line">        <tt id="link-853" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-853', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-854" class="py-name"><a title="lxml.etree
+<a name="L674"></a><tt class="py-lineno"> 674</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt>  <tt class="py-line">        <tt id="link-849" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-849', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-850" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-850', 'root', 'link-212');">root</a></tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-851" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-851', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-852" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-852', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L678"></a><tt class="py-lineno"> 678</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L679"></a><tt class="py-lineno"> 679</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_all-def"><a name="L680"></a><tt class="py-lineno"> 680</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_all">test_iterparse_tag_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_all-expanded"><a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line">        <tt id="link-853" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-853', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-854" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-854', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-855" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-855', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L680"></a><tt class="py-lineno"> 680</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L681"></a><tt class="py-lineno"> 681</tt>  <tt class="py-line"> </tt>
-<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-856" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-856', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-857" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L682"></a><tt class="py-lineno"> 682</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line"> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-856" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-856', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-857" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-857', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"*"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L683"></a><tt class="py-lineno"> 683</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L684"></a><tt class="py-lineno"> 684</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
-<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">            <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_ns"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-def"><a name="L688"></a><tt class="py-lineno"> 688</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns">test_iterparse_tag_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-expanded"><a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line">        <tt id="link-858" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-858', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-859" class="py-name"><a title="lxml.etree
+<a name="L685"></a><tt class="py-lineno"> 685</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt>  <tt class="py-line">            <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L689"></a><tt class="py-lineno"> 689</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_ns"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-def"><a name="L690"></a><tt class="py-lineno"> 690</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns">test_iterparse_tag_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns-expanded"><a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line">        <tt id="link-858" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-858', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-859" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-859', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-860" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-860', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L690"></a><tt class="py-lineno"> 690</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L691"></a><tt class="py-lineno"> 691</tt>  <tt class="py-line"> </tt>
-<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-861" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-861', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-862" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L692"></a><tt class="py-lineno"> 692</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line"> </tt>
+<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-861" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-861', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-862" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-862', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{urn:test:1}b"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L693"></a><tt class="py-lineno"> 693</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L694"></a><tt class="py-lineno"> 694</tt>  <tt class="py-line">        <tt id="link-863" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-863', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-864" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-864', 'root', 'link-212');">root</a></tt> </tt>
-<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-865" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-865', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-866" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-866', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_empty"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-def"><a name="L699"></a><tt class="py-lineno"> 699</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty">test_iterparse_tag_ns_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-expanded"><a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line">        <tt id="link-867" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-867', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-868" class="py-name"><a title="lxml.etree
+<a name="L695"></a><tt class="py-lineno"> 695</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L696"></a><tt class="py-lineno"> 696</tt>  <tt class="py-line">        <tt id="link-863" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-863', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-864" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-864', 'root', 'link-212');">root</a></tt> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L698"></a><tt class="py-lineno"> 698</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-865" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-865', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-866" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-866', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L699"></a><tt class="py-lineno"> 699</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L700"></a><tt class="py-lineno"> 700</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_empty"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-def"><a name="L701"></a><tt class="py-lineno"> 701</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty">test_iterparse_tag_ns_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty-expanded"><a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">        <tt id="link-867" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-867', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-868" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-868', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-869" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-869', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L701"></a><tt class="py-lineno"> 701</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L702"></a><tt class="py-lineno"> 702</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-870" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-870', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-871" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-870" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-870', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-871" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-871', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}b"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L703"></a><tt class="py-lineno"> 703</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L704"></a><tt class="py-lineno"> 704</tt>  <tt class="py-line">        <tt id="link-872" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-872', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-873" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-873', 'root', 'link-212');">root</a></tt> </tt>
-<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-874" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-874', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-875" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-875', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line"> </tt>
-<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-876" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-876', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-877" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L705"></a><tt class="py-lineno"> 705</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt>  <tt class="py-line">        <tt id="link-872" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-872', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-873" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-873', 'root', 'link-212');">root</a></tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-874" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-874', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-875" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-875', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt>  <tt class="py-line"> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-876" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-876', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-877" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-877', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}b"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L711"></a><tt class="py-lineno"> 711</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L712"></a><tt class="py-lineno"> 712</tt>  <tt class="py-line">        <tt id="link-878" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-878', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-879" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-879', 'root', 'link-212');">root</a></tt> </tt>
-<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-def"><a name="L715"></a><tt class="py-lineno"> 715</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-expanded"><a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line">        <tt id="link-880" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-880', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-881" class="py-name"><a title="lxml.etree
+<a name="L713"></a><tt class="py-lineno"> 713</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt>  <tt class="py-line">        <tt id="link-878" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-878', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-879" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-879', 'root', 'link-212');">root</a></tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L716"></a><tt class="py-lineno"> 716</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-def"><a name="L717"></a><tt class="py-lineno"> 717</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_all">test_iterparse_tag_ns_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_all-expanded"><a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">        <tt id="link-880" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-880', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-881" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-881', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-882" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-882', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L717"></a><tt class="py-lineno"> 717</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L718"></a><tt class="py-lineno"> 718</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-883" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-883', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-884" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-883" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-883', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-884" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-884', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{urn:test:1}*"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L719"></a><tt class="py-lineno"> 719</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L720"></a><tt class="py-lineno"> 720</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-def"><a name="L722"></a><tt class="py-lineno"> 722</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-expanded"><a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line">        <tt id="link-885" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-885', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-886" class="py-name"><a title="lxml.etree
+<a name="L721"></a><tt class="py-lineno"> 721</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L723"></a><tt class="py-lineno"> 723</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all"></a><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-def"><a name="L724"></a><tt class="py-lineno"> 724</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_tag_ns_empty_all">test_iterparse_tag_ns_empty_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_tag_ns_empty_all-expanded"><a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">        <tt id="link-885" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-885', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-886" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-886', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-887" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-887', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L724"></a><tt class="py-lineno"> 724</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L725"></a><tt class="py-lineno"> 725</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-888" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-888', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-889" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="urn:test:1"&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-888" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-888', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-889" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-889', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}*"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L726"></a><tt class="py-lineno"> 726</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L727"></a><tt class="py-lineno"> 727</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line"> </tt>
-<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-890" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-890', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-891" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L728"></a><tt class="py-lineno"> 728</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt>  <tt class="py-line"> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-890" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-890', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-891" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-891', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"{}*"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L731"></a><tt class="py-lineno"> 731</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L732"></a><tt class="py-lineno"> 732</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_encoding_error"></a><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-def"><a name="L734"></a><tt class="py-lineno"> 734</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_encoding_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_encoding_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error">test_iterparse_encoding_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-expanded"><a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line">        <tt id="link-892" class="py-name"><a title="lxml.etree.QName.text
+<a name="L733"></a><tt class="py-lineno"> 733</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L735"></a><tt class="py-lineno"> 735</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_encoding_error"></a><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-def"><a name="L736"></a><tt class="py-lineno"> 736</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_encoding_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_encoding_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_error">test_iterparse_encoding_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_encoding_error-expanded"><a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">        <tt id="link-892" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-892', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-893" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-893', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">)</tt> </tt>
-<a name="L736"></a><tt class="py-lineno"> 736</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt> </tt>
-<a name="L737"></a><tt class="py-lineno"> 737</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-894" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-894', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-895" class="py-name"><a title="lxml.etree.QName.text
+<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt> </tt>
+<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-894" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-894', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-895" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-895', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L738"></a><tt class="py-lineno"> 738</tt>  <tt class="py-line">                      <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L739"></a><tt class="py-lineno"> 739</tt>  <tt class="py-line"> </tt>
-<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-896" class="py-name"><a title="lxml.etree
+<a name="L740"></a><tt class="py-lineno"> 740</tt>  <tt class="py-line">                      <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line"> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-896" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-896', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-897" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
 xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-897', 'ParseError', 'link-897');">ParseError</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L741"></a><tt class="py-lineno"> 741</tt>  <tt class="py-line">                          <tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-898" class="py-name"><a title="lxml.etree
+<a name="L743"></a><tt class="py-lineno"> 743</tt>  <tt class="py-line">                          <tt class="py-name">list</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-898" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-898', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-899" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-899', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L742"></a><tt class="py-lineno"> 742</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override"></a><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-def"><a name="L743"></a><tt class="py-lineno"> 743</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_encoding_8bit_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-expanded"><a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line">        <tt id="link-900" class="py-name"><a title="lxml.etree.QName.text
+</div><a name="L744"></a><tt class="py-lineno"> 744</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override"></a><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-def"><a name="L745"></a><tt class="py-lineno"> 745</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_encoding_8bit_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_encoding_8bit_override">test_iterparse_encoding_8bit_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_encoding_8bit_override-expanded"><a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">        <tt id="link-900" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-900', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-901" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-901', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettet'</tt><tt class="py-op">,</tt> <tt id="link-902" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-902', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L745"></a><tt class="py-lineno"> 745</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt> </tt>
-<a name="L746"></a><tt class="py-lineno"> 746</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-903" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-903', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-904" class="py-name"><a title="lxml.etree.QName.text
+<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">        <tt class="py-name">wrong_declaration</tt> <tt class="py-op">=</tt> <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8'?&gt;"</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line">        <tt class="py-name">xml_latin1</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-903" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-903', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'%s&lt;a&gt;%s&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">wrong_declaration</tt><tt class="py-op">,</tt> <tt id="link-904" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-904', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L747"></a><tt class="py-lineno"> 747</tt>  <tt class="py-line">                      <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L748"></a><tt class="py-lineno"> 748</tt>  <tt class="py-line"> </tt>
-<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-905" class="py-name"><a title="lxml.etree
+<a name="L749"></a><tt class="py-lineno"> 749</tt>  <tt class="py-line">                      <tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line"> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-905" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-905', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-906" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-906', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_latin1</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L750"></a><tt class="py-lineno"> 750</tt>  <tt class="py-line">                                        <tt id="link-907" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-907', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L751"></a><tt class="py-lineno"> 751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line"> </tt>
-<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-908" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-908', 'root', 'link-212');">root</a></tt> </tt>
-<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-909" class="py-name"><a title="lxml.etree.QName.text
+<a name="L752"></a><tt class="py-lineno"> 752</tt>  <tt class="py-line">                                        <tt id="link-907" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-907', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt>  <tt class="py-line"> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">iterator</tt><tt class="py-op">.</tt><tt id="link-908" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-908', 'root', 'link-212');">root</a></tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-909" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
@@ -2268,67 +2270,67 @@ lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-910', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L755"></a><tt class="py-lineno"> 755</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterparse_keep_cdata"></a><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-def"><a name="L756"></a><tt class="py-lineno"> 756</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_keep_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_keep_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata">test_iterparse_keep_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-expanded"><a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line">        <tt id="link-911" class="py-name"><a title="lxml.etree.XSLT.tostring
+</div><a name="L757"></a><tt class="py-lineno"> 757</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterparse_keep_cdata"></a><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-def"><a name="L758"></a><tt class="py-lineno"> 758</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterparse_keep_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterparse_keep_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterparse_keep_cdata">test_iterparse_keep_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterparse_keep_cdata-expanded"><a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line">        <tt id="link-911" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-911', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-912', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-913" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-913', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L758"></a><tt class="py-lineno"> 758</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L759"></a><tt class="py-lineno"> 759</tt>  <tt class="py-line">        <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-914" class="py-name"><a title="lxml.etree
+<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line">        <tt class="py-name">context</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-914" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-914', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-915" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-915', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L760"></a><tt class="py-lineno"> 760</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree.QName.text
+<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-916', 'text', 'link-186');">text</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt><tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">context</tt> <tt class="py-op">]</tt> </tt>
-<a name="L761"></a><tt class="py-lineno"> 761</tt>  <tt class="py-line"> </tt>
-<a name="L762"></a><tt class="py-lineno"> 762</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
-<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-917" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-917', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">                          <tt id="link-918" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L763"></a><tt class="py-lineno"> 763</tt>  <tt class="py-line"> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">content</tt><tt class="py-op">)</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-917" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-917', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">                          <tt id="link-918" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-918', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">.</tt><tt id="link-919" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-919', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_encoding_unknown"></a><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-def"><a name="L766"></a><tt class="py-lineno"> 766</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding_unknown-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_encoding_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-expanded"><a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L768"></a><tt class="py-lineno"> 768</tt>  <tt class="py-line">            <tt class="py-name">LookupError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-920" class="py-name"><a title="lxml.etree
+</div><a name="L767"></a><tt class="py-lineno"> 767</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_encoding_unknown"></a><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-def"><a name="L768"></a><tt class="py-lineno"> 768</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding_unknown-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_encoding_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding_unknown">test_parser_encoding_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_encoding_unknown-expanded"><a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">            <tt class="py-name">LookupError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-920" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-920', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-921', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">,</tt> <tt id="link-922" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-922', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"hopefully unknown"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_encoding"></a><div id="ETreeOnlyTestCase.test_parser_encoding-def"><a name="L770"></a><tt class="py-lineno"> 770</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding">test_parser_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_encoding-expanded"><a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-923" class="py-name"><a title="lxml.etree
+</div><a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_encoding"></a><div id="ETreeOnlyTestCase.test_parser_encoding-def"><a name="L772"></a><tt class="py-lineno"> 772</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_encoding">test_parser_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_encoding-expanded"><a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-923" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-923', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-924" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-924', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-925" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-925', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
-<a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree
+<a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-926', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-927" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-927', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-928" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-928', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"utf-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L773"></a><tt class="py-lineno"> 773</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-929" class="py-name"><a title="lxml.etree
+<a name="L775"></a><tt class="py-lineno"> 775</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-929" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-929', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-930" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-930', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-931" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-931', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"iso-8859-1"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_feed_parser_recover"></a><div id="ETreeOnlyTestCase.test_feed_parser_recover-def"><a name="L775"></a><tt class="py-lineno"> 775</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_feed_parser_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_feed_parser_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_feed_parser_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_feed_parser_recover-expanded"><a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">        <tt id="link-932" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_feed_parser_recover"></a><div id="ETreeOnlyTestCase.test_feed_parser_recover-def"><a name="L777"></a><tt class="py-lineno"> 777</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_feed_parser_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_feed_parser_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_feed_parser_recover">test_feed_parser_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_feed_parser_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_feed_parser_recover-expanded"><a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">        <tt id="link-932" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-932', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-933" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2336,80 +2338,80 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-933', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-934" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-934', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line"> </tt>
-<a name="L778"></a><tt class="py-lineno"> 778</tt>  <tt class="py-line">        <tt id="link-935" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line"> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">        <tt id="link-935" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-935', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-936" class="py-name" targets="Method lxml.etree._FeedParser.feed()=lxml.etree._FeedParser-class.html#feed"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-936', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?xml version='</tt><tt class="py-op">)</tt> </tt>
-<a name="L779"></a><tt class="py-lineno"> 779</tt>  <tt class="py-line">        <tt id="link-937" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line">        <tt id="link-937" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-937', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-938" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-938', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'"1.0"?&gt;&lt;ro'</tt><tt class="py-op">)</tt> </tt>
-<a name="L780"></a><tt class="py-lineno"> 780</tt>  <tt class="py-line">        <tt id="link-939" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">        <tt id="link-939" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-939', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-940" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-940', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'ot&gt;&lt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L781"></a><tt class="py-lineno"> 781</tt>  <tt class="py-line">        <tt id="link-941" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">        <tt id="link-941" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-941', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-942" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-942', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'a test="works"'</tt><tt class="py-op">)</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">        <tt id="link-943" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line">        <tt id="link-943" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-943', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-944" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-944', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;&lt;othertag/&gt;&lt;/root'</tt><tt class="py-op">)</tt> <tt class="py-comment"># &lt;a&gt; not closed!</tt> </tt>
-<a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">        <tt id="link-945" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">        <tt id="link-945" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-945', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-946" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-946', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt class="py-string">'&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line"> </tt>
-<a name="L785"></a><tt class="py-lineno"> 785</tt>  <tt class="py-line">        <tt id="link-947" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-947', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-948" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line"> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">        <tt id="link-947" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-947', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-948" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-948', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-949" class="py-name" targets="Method lxml.etree.TreeBuilder.close()=lxml.etree.TreeBuilder-class.html#close,Method lxml.etree._FeedParser.close()=lxml.etree._FeedParser-class.html#close"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-949', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line"> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-950" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-950', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-951" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line"> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-950" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-950', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-951" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-951', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-952" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-952', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-953" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-953', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-952" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-952', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-953" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-953', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-954', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-955" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-955', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-955" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-955', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-956', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">"works"</tt><tt class="py-op">)</tt> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-957" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-957', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-958" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-958', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-957" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-957', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-958" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-958', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-959', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">"othertag"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: would be nice to get some errors logged ...</tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line">        <tt class="py-comment">#self.assertTrue(len(parser.error_log) &gt; 0, "error log is empty")</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_parser_target_type_error"></a><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-def"><a name="L796"></a><tt class="py-lineno"> 796</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_parser_target_type_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-expanded"><a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line">        <tt id="link-960" class="py-name" targets="Variable lxml.tests.common_imports.HelperTestCase.assertFalse=lxml.tests.common_imports.HelperTestCase-class.html#assertFalse"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-960', 'assertFalse', 'link-960');">assertFalse</a></tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-961" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-961', 'assertFalse', 'link-960');">assertFalse</a></tt> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line"> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-962" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-962', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">                <tt id="link-963" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-963', 'assertFalse', 'link-960');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-964" class="py-name"><a title="lxml.etree._Element.attrib
+</div><a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">        <tt class="py-comment"># FIXME: would be nice to get some errors logged ...</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line">        <tt class="py-comment">#self.assertTrue(len(parser.error_log) &gt; 0, "error log is empty")</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_parser_target_type_error"></a><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-def"><a name="L798"></a><tt class="py-lineno"> 798</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_parser_target_type_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_parser_target_type_error">test_elementtree_parser_target_type_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_parser_target_type_error-expanded"><a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">        <tt id="link-960" class="py-name" targets="Variable lxml.tests.common_imports.HelperTestCase.assertFalse=lxml.tests.common_imports.HelperTestCase-class.html#assertFalse"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-960', 'assertFalse', 'link-960');">assertFalse</a></tt>  <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-961" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-961', 'assertFalse', 'link-960');">assertFalse</a></tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line"> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-962" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-962', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">)</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">                <tt id="link-963" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-963', 'assertFalse', 'link-960');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-964" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-964', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-965" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-965" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-965', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-966', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-967" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-966', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end"</tt><tt class="py-op">)</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TAG"</tt><tt class="py-op">,</tt> <tt id="link-967" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-967', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> <tt class="py-comment"># no Element!</tt> </tt>
-</div></div><a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line"> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">        <tt id="link-968" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> <tt class="py-comment"># no Element!</tt> </tt>
+</div></div><a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line"> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line">        <tt id="link-968" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-968', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-969" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2417,16 +2419,16 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-969', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-970" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-970', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-971" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-971', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-972" class="py-name"><a title="lxml.etree
+<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-972" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-972', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-973" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-973', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line"> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">                          <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-974" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line"> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">                          <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-974" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -2435,40 +2437,40 @@ lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-974', 'parse', 'link-749');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;TAG/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-975" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-975', 'parser', 'link-740');">parser</a></tt><tt class="py-op">=</tt><tt id="link-976" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-976', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_feed_exception"></a><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-def"><a name="L819"></a><tt class="py-lineno"> 819</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_feed_exception-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_feed_exception');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-expanded"><a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't call .close() on errors</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-977" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-977', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-978" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt> <tt class="py-string">"end"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_feed_exception"></a><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-def"><a name="L821"></a><tt class="py-lineno"> 821</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_feed_exception-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_feed_exception');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_feed_exception">test_parser_target_feed_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_feed_exception-expanded"><a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't call .close() on errors</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-977" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-977', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-978" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-978', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-979" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-979', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-980" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-979" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-979', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-980" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-980', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-981" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-981" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-981', 'tag', 'link-65');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"dead and gone"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-982', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-983" class="py-name" targets="Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-983', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-984" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-984', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line"> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">        <tt id="link-985" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"dead and gone"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-982', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-983" class="py-name" targets="Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-983', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-984" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-984', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">        <tt id="link-985" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-985', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2476,53 +2478,53 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-986', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-987" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-987', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-988" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-988', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line">            <tt id="link-989" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">            <tt id="link-989" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-989', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-990', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt id="link-991" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-991', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-992" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-992" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-992', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-993" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-993', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"error expected, but parsing succeeded"</tt><tt class="py-op">)</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-string">'value error received as expected'</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_fromstring_exception"></a><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-def"><a name="L848"></a><tt class="py-lineno"> 848</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_fromstring_exception');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-expanded"><a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't call .close() on errors</tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-994" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-994', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-995" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"error expected, but parsing succeeded"</tt><tt class="py-op">)</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-string">'value error received as expected'</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line"> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_fromstring_exception"></a><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-def"><a name="L850"></a><tt class="py-lineno"> 850</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_fromstring_exception');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_fromstring_exception">test_parser_target_fromstring_exception</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_fromstring_exception-expanded"><a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">        <tt class="py-comment"># ET doesn't call .close() on errors</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-994" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-994', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-995" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-995', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-996" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-996', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-997" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-996" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-996', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-997" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-997', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-998" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-998" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-998', 'tag', 'link-65');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">'a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"dead and gone"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-999', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1000" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1000', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1001', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line"> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">        <tt id="link-1002" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">                    <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"dead and gone"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-999', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1000" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1000', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1001', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt id="link-1002" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1002', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1003" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2530,9 +2532,9 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1003', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1004', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1005" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1005', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.etree
+<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line"> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2540,46 +2542,46 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
 lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-1007', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-1008" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1008', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line">                                         <tt id="link-1009" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">                                         <tt id="link-1009" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1009', 'parser', 'link-740');">parser</a></tt><tt class="py-op">=</tt><tt id="link-1010" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1010', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"error expected, but parsing succeeded"</tt><tt class="py-op">)</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-string">'value error received as expected'</tt> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line"> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_comment"></a><div id="ETreeOnlyTestCase.test_parser_target_comment-def"><a name="L877"></a><tt class="py-lineno"> 877</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment">test_parser_target_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_comment-expanded"><a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1011" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1011', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1012" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">fail</tt><tt class="py-op">(</tt><tt class="py-string">"error expected, but parsing succeeded"</tt><tt class="py-op">)</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ValueError</tt><tt class="py-op">:</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line">            <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt class="py-string">'value error received as expected'</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_comment"></a><div id="ETreeOnlyTestCase.test_parser_target_comment-def"><a name="L879"></a><tt class="py-lineno"> 879</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_comment">test_parser_target_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_comment-expanded"><a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1011" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1011', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1012" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1012', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1013" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1013', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1014" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1013" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1013', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1014" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1014', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1015" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1015', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1016" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1016', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">comment</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1017" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1017', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"comment-"</tt> <tt class="py-op">+</tt> <tt id="link-1018" class="py-name"><a title="lxml.etree.QName.text
+</div><a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1015" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1015', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1016" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1016', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">comment</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1017" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1017', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"comment-"</tt> <tt class="py-op">+</tt> <tt id="link-1018" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1018', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">        <tt id="link-1019" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">        <tt id="link-1019" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1019', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1020" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2587,44 +2589,44 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1020', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1021', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1022" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1022', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">        <tt id="link-1023" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line"> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">        <tt id="link-1023" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1023', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1024" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1024', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1025" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1025', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--a--&gt;&lt;root&gt;A&lt;!--b--&gt;&lt;sub/&gt;&lt;!--c--&gt;B&lt;/root&gt;&lt;!--d--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1026" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1026" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1026', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1027" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-1027', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line"> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"comment-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-b"</tt><tt class="py-op">,</tt> </tt>
-<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">                           <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-c"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> </tt>
-<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">                           <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-d"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_pi"></a><div id="ETreeOnlyTestCase.test_parser_target_pi-def"><a name="L902"></a><tt class="py-lineno"> 902</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi">test_parser_target_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_pi-expanded"><a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1028', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1029" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line"> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"comment-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-b"</tt><tt class="py-op">,</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line">                           <tt class="py-string">"start-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-sub"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-c"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line">                           <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"comment-d"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_pi"></a><div id="ETreeOnlyTestCase.test_parser_target_pi-def"><a name="L904"></a><tt class="py-lineno"> 904</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_pi">test_parser_target_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_pi-expanded"><a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1028', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1029" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1029', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1030" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1030', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1031" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1030" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1030', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1031" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1031', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1032', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1033" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1033', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">pi</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1034" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1034', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi-"</tt> <tt class="py-op">+</tt> <tt id="link-1035" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1035', 'target', 'link-614');">target</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"-"</tt> <tt class="py-op">+</tt> <tt id="link-1036" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1036', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line"> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">        <tt id="link-1037" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1032', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1033" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1033', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">pi</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1034" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1034', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi-"</tt> <tt class="py-op">+</tt> <tt id="link-1035" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1035', 'target', 'link-614');">target</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"-"</tt> <tt class="py-op">+</tt> <tt id="link-1036" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1036', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line"> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">        <tt id="link-1037" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1037', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1038" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2632,41 +2634,41 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1038', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1039" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1039', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1040" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1040', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line"> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">        <tt id="link-1041" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line"> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line">        <tt id="link-1041" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1041', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1042" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1042', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1043" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1043', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test a?&gt;&lt;root&gt;A&lt;?test b?&gt;B&lt;/root&gt;&lt;?test c?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1044" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1044" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1044', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-1045', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line"> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"pi-test-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"pi-test-b"</tt><tt class="py-op">,</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">                           <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"pi-test-c"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_cdata"></a><div id="ETreeOnlyTestCase.test_parser_target_cdata-def"><a name="L926"></a><tt class="py-lineno"> 926</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_cdata-expanded"><a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1046" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1046', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1047" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line"> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"pi-test-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"pi-test-b"</tt><tt class="py-op">,</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line">                           <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"pi-test-c"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_cdata"></a><div id="ETreeOnlyTestCase.test_parser_target_cdata-def"><a name="L928"></a><tt class="py-lineno"> 928</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_cdata">test_parser_target_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_cdata-expanded"><a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1046" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1046', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1047" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1047', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1048', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1049" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1048', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1049" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1049', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1050" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1050', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1051" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1051', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"> </tt>
-<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">        <tt id="link-1052" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1050" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1050', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1051" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1051', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line"> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line">        <tt id="link-1052" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1052', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1053" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2674,43 +2676,43 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1053', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1054" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1054', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1055" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1055', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">                                      <tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">        <tt id="link-1056" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line">                                      <tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line">        <tt id="link-1056" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1056', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1057" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1057', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1058" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1058', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;&lt;![CDATA[ca]]&gt;&lt;/a&gt;B&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1059" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1059" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1059', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1060" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-1060', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parser_target_recover"></a><div id="ETreeOnlyTestCase.test_parser_target_recover-def"><a name="L949"></a><tt class="py-lineno"> 949</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parser_target_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_recover-expanded"><a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1061" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1061', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1062" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line"> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-root"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parser_target_recover"></a><div id="ETreeOnlyTestCase.test_parser_target_recover-def"><a name="L951"></a><tt class="py-lineno"> 951</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parser_target_recover-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parser_target_recover');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parser_target_recover">test_parser_target_recover</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parser_target_recover-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parser_target_recover-expanded"><a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Target</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">start</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1061" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1061', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"start-"</tt> <tt class="py-op">+</tt> <tt id="link-1062" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1062', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1063" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1063', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1064" class="py-name"><a title="lxml.etree._Comment.tag
+</div><a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">end</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1063" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1063', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"end-"</tt> <tt class="py-op">+</tt> <tt id="link-1064" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1064', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1065" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1065', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1066" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1066', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1067" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1067', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
-</div></div><a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">        <tt id="link-1068" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">data</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1065" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1065', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"data-"</tt> <tt class="py-op">+</tt> <tt id="link-1066" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-1066', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">close</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line">                <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1067" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1067', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-string">"close"</tt><tt class="py-op">)</tt> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-string">"DONE"</tt> </tt>
+</div></div><a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line"> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line">        <tt id="link-1068" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1068', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1069" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2718,27 +2720,27 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1069', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1070" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1070', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-1071" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-1071', 'target', 'link-614');">target</a></tt><tt class="py-op">=</tt><tt class="py-name">Target</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">                                      <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">        <tt id="link-1072" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">                                      <tt class="py-name">recover</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line"> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line">        <tt id="link-1072" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1072', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1073" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-1073', 'feed', 'link-936');">feed</a></tt><tt class="py-op">(</tt><tt id="link-1074" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1074', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;A&lt;a&gt;ca&lt;/a&gt;B&lt;/not-root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1075" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line">        <tt class="py-name">done</tt> <tt class="py-op">=</tt> <tt id="link-1075" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1075', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt id="link-1076" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-1076', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"> </tt>
-<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
-<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> </tt>
-<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line">                           <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_tag"></a><div id="ETreeOnlyTestCase.test_iterwalk_tag-def"><a name="L974"></a><tt class="py-lineno"> 974</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag">test_iterwalk_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_tag-expanded"><a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">        <tt id="link-1077" class="py-name" targets="Class lxml.etree.iterwalk=lxml.etree.iterwalk-class.html"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1077', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1078" class="py-name"><a title="lxml.etree
+<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line"> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"DONE"</tt><tt class="py-op">,</tt> <tt class="py-name">done</tt><tt class="py-op">)</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">"start-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-A"</tt><tt class="py-op">,</tt> <tt class="py-string">"start-a"</tt><tt class="py-op">,</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">                           <tt class="py-string">"data-ca"</tt><tt class="py-op">,</tt> <tt class="py-string">"end-a"</tt><tt class="py-op">,</tt> <tt class="py-string">"data-B"</tt><tt class="py-op">,</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">                           <tt class="py-string">"end-root"</tt><tt class="py-op">,</tt> <tt class="py-string">"close"</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line">                          <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_tag"></a><div id="ETreeOnlyTestCase.test_iterwalk_tag-def"><a name="L976"></a><tt class="py-lineno"> 976</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag">test_iterwalk_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_tag-expanded"><a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line">        <tt id="link-1077" class="py-name" targets="Class lxml.etree.iterwalk=lxml.etree.iterwalk-class.html"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1077', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1078" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1078', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1079" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1079', 'iterwalk', 'link-1077');">iterwalk</a></tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line">        <tt id="link-1080" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1080', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1081" class="py-name"><a title="lxml.etree
+<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line">        <tt id="link-1080" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1080', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1081" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2746,25 +2748,25 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1082', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1083" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1083', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1084" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1084', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1085" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1085', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt id="link-1086" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1084" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1084', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1085" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1085', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt id="link-1086" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1086', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"b"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1087" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1087', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1088" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1088', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_tag_all"></a><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-def"><a name="L984"></a><tt class="py-lineno"> 984</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_tag_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_tag_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-expanded"><a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line">        <tt id="link-1089" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1089', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1090" class="py-name"><a title="lxml.etree
+<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1087" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1087', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1088" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1088', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_tag_all"></a><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-def"><a name="L986"></a><tt class="py-lineno"> 986</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_tag_all-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_tag_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_tag_all">test_iterwalk_tag_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_tag_all-expanded"><a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line">        <tt id="link-1089" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1089', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1090" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1090', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1091" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1091', 'iterwalk', 'link-1077');">iterwalk</a></tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line">        <tt id="link-1092" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1092', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1093" class="py-name"><a title="lxml.etree
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">        <tt id="link-1092" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1092', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1093" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2772,25 +2774,25 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1094', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1095" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1095', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line"> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1096" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1096', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1097" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1097', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt id="link-1098" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line"> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1096" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1096', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1097" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1097', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt id="link-1098" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1098', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">"*"</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">            <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk"></a><div id="ETreeOnlyTestCase.test_iterwalk-def"><a name="L994"></a><tt class="py-lineno"> 994</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk-expanded"><a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">        <tt id="link-1099" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1099', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1100" class="py-name"><a title="lxml.etree
+<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">            <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">events</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk"></a><div id="ETreeOnlyTestCase.test_iterwalk-def"><a name="L996"></a><tt class="py-lineno"> 996</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk">test_iterwalk</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk-expanded"><a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">        <tt id="link-1099" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1099', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1100" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1100', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1101" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1101', 'iterwalk', 'link-1077');">iterwalk</a></tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">        <tt id="link-1102" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1102', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1103" class="py-name"><a title="lxml.etree
+<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">        <tt id="link-1102" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1102', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1103" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2798,19 +2800,19 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1104', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1105" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1105', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line"> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1106" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1106', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1107" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1107', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1108" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1108', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1109" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1109', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1110" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1110', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_start"></a><div id="ETreeOnlyTestCase.test_iterwalk_start-def"><a name="L1003"></a><tt class="py-lineno">1003</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start">test_iterwalk_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start-expanded"><a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line">        <tt id="link-1111" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1111', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1112" class="py-name"><a title="lxml.etree
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line"> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt id="link-1106" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1106', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1107" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1107', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1108" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1108', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1109" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1109', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1110" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1110', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_start"></a><div id="ETreeOnlyTestCase.test_iterwalk_start-def"><a name="L1005"></a><tt class="py-lineno">1005</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start">test_iterwalk_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start-expanded"><a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">        <tt id="link-1111" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1111', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1112" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1112', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1113" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1113', 'iterwalk', 'link-1077');">iterwalk</a></tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">        <tt id="link-1114" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1114', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1115" class="py-name"><a title="lxml.etree
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">        <tt id="link-1114" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1114', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1115" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2818,20 +2820,20 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1116', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1117" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1117', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line"> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1118" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1118', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1119" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1119', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1120" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1120', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1121" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1121', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1122" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1122', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_start_end"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end-def"><a name="L1013"></a><tt class="py-lineno">1013</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end">test_iterwalk_start_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end-expanded"><a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line">        <tt id="link-1123" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1123', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1124" class="py-name"><a title="lxml.etree
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line"> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1118" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1118', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1119" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1119', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1120" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1120', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1121" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1121', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1122" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1122', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_start_end"></a><div id="ETreeOnlyTestCase.test_iterwalk_start_end-def"><a name="L1015"></a><tt class="py-lineno">1015</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_start_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_start_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_start_end">test_iterwalk_start_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_start_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_start_end-expanded"><a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line">        <tt id="link-1123" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1123', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1124" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1124', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1125" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1125', 'iterwalk', 'link-1077');">iterwalk</a></tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line">        <tt id="link-1126" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1126', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1127" class="py-name"><a title="lxml.etree
+<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">        <tt id="link-1126" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1126', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1127" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2839,21 +2841,21 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1128', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1129" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1129', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1130" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1130', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1131" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1131', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
-<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1132" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1132', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1133" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1133', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1134" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1134', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1135', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1136" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1136', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1137" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1137', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_clear"></a><div id="ETreeOnlyTestCase.test_iterwalk_clear-def"><a name="L1024"></a><tt class="py-lineno">1024</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_clear-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_clear-expanded"><a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line">        <tt id="link-1138" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1138', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1139" class="py-name"><a title="lxml.etree
+<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1130" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1130', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1131" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1131', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">iterator</tt><tt class="py-op">)</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1132" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1132', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1133" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1133', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1134" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1134', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line">             <tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt id="link-1135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1135', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1136" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1136', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt id="link-1137" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1137', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_clear"></a><div id="ETreeOnlyTestCase.test_iterwalk_clear-def"><a name="L1026"></a><tt class="py-lineno">1026</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_clear-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_clear');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_clear">test_iterwalk_clear</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_clear-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_clear-expanded"><a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line">        <tt id="link-1138" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1138', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1139" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1139', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1140" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1140', 'iterwalk', 'link-1077');">iterwalk</a></tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">        <tt id="link-1141" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1141', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1142" class="py-name"><a title="lxml.etree
+<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">        <tt id="link-1141" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1141', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1142" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2861,23 +2863,23 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1143', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1144" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1144', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line"> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1145" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1145', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1146" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1146', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">            <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1147" class="py-name" targets="Method lxml.etree._Attrib.clear()=lxml.etree._Attrib-class.html#clear,Method lxml.etree._Element.clear()=lxml.etree._Element-class.html#clear,Method lxml.etree._ErrorLog.clear()=lxml.etree._ErrorLog-class.html#clear"><a title="lxml.etree._Attrib.clear
+<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line"> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1145" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1145', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1146" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1146', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">            <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1147" class="py-name" targets="Method lxml.etree._Attrib.clear()=lxml.etree._Attrib-class.html#clear,Method lxml.etree._Element.clear()=lxml.etree._Element-class.html#clear,Method lxml.etree._ErrorLog.clear()=lxml.etree._ErrorLog-class.html#clear"><a title="lxml.etree._Attrib.clear
 lxml.etree._Element.clear
 lxml.etree._ErrorLog.clear" class="py-name" href="#" onclick="return doclink('link-1147', 'clear', 'link-1147');">clear</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line"> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1148" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1148', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_attrib_ns"></a><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-def"><a name="L1035"></a><tt class="py-lineno">1035</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_attrib_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns">test_iterwalk_attrib_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-expanded"><a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">        <tt id="link-1149" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1149', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1150" class="py-name"><a title="lxml.etree
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line"> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-1148" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1148', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_attrib_ns"></a><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-def"><a name="L1037"></a><tt class="py-lineno">1037</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_attrib_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_attrib_ns">test_iterwalk_attrib_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_attrib_ns-expanded"><a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line">        <tt id="link-1149" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1149', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1150" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1150', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1151" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1151', 'iterwalk', 'link-1077');">iterwalk</a></tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">        <tt id="link-1152" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1152', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1153" class="py-name"><a title="lxml.etree
+<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">        <tt id="link-1152" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1152', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1153" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2885,47 +2887,47 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1154', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1155" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1155', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="ns1"&gt;&lt;b&gt;&lt;c xmlns="ns2"/&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">        <tt class="py-name">attr_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'{testns}bla'</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1156" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1156', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1157" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1157', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
-<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1158" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1158', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
-<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1159" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line">        <tt class="py-name">attr_name</tt> <tt class="py-op">=</tt> <tt class="py-string">'{testns}bla'</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">        <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line">        <tt class="py-name">iterator</tt> <tt class="py-op">=</tt> <tt id="link-1156" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1156', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1157" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1157', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'start'</tt><tt class="py-op">,</tt><tt class="py-string">'end'</tt><tt class="py-op">,</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt><tt class="py-string">'end-ns'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">iterator</tt><tt class="py-op">:</tt> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">.</tt><tt id="link-1158" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1158', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">'start'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1159" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1159', 'tag', 'link-65');">tag</a></tt> <tt class="py-op">!=</tt> <tt class="py-string">'{ns1}a'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">                    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1160" class="py-name"><a title="lxml.etree._Element.set
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">                    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1160" class="py-name"><a title="lxml.etree._Element.set
 lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1160', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line"> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">             <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line"> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">            <tt id="link-1161" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1161', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1162" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> <tt class="py-string">'start-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'start'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">             <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end'</tt><tt class="py-op">,</tt> <tt class="py-string">'end-ns'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">            <tt class="py-name">events</tt><tt class="py-op">)</tt> </tt>
+<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">            <tt id="link-1161" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1161', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1162" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1162', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">            <tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">            <tt id="link-1163" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1163', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1164" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">            <tt class="py-string">'value'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">            <tt id="link-1163" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1163', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1164" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
 lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-1164', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_name</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterwalk_getiterator"></a><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-def"><a name="L1060"></a><tt class="py-lineno">1060</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_getiterator-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-expanded"><a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">        <tt id="link-1165" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1165', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1166" class="py-name"><a title="lxml.etree
+</div><a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterwalk_getiterator"></a><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-def"><a name="L1062"></a><tt class="py-lineno">1062</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterwalk_getiterator-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterwalk_getiterator');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterwalk_getiterator">test_iterwalk_getiterator</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterwalk_getiterator-expanded"><a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line">        <tt id="link-1165" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1165', 'iterwalk', 'link-1077');">iterwalk</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1166" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1166', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1167" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1167', 'iterwalk', 'link-1077');">iterwalk</a></tt> </tt>
-<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">        <tt id="link-1168" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1168', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1169" class="py-name"><a title="lxml.etree
+<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt id="link-1168" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1168', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1169" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -2933,17 +2935,17 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1170', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1171" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1171', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;d/&gt;&lt;/b&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"> </tt>
-<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt class="py-name">counts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-1172" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1172', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1173" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1173', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">.</tt><tt id="link-1174" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1174', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1175" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
+<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line"> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">        <tt class="py-name">counts</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt id="link-1172" class="py-name"><a title="lxml.etree.iterwalk" class="py-name" href="#" onclick="return doclink('link-1172', 'iterwalk', 'link-1077');">iterwalk</a></tt><tt class="py-op">(</tt><tt id="link-1173" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1173', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">.</tt><tt id="link-1174" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1174', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-1175" class="py-name" targets="Method lxml.etree._Element.getiterator()=lxml.etree._Element-class.html#getiterator,Method lxml.etree._ElementTree.getiterator()=lxml.etree._ElementTree-class.html#getiterator"><a title="lxml.etree._Element.getiterator
 lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-1175', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_string_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_string_dtd-def"><a name="L1071"></a><tt class="py-lineno">1071</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_string_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_string_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_string_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_string_dtd-expanded"><a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">        <tt id="link-1176" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">            <tt class="py-name">counts</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_string_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_string_dtd-def"><a name="L1073"></a><tt class="py-lineno">1073</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_string_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_string_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_string_dtd">test_resolve_string_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_string_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_string_dtd-expanded"><a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">        <tt id="link-1176" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -2960,7 +2962,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1178', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">        <tt id="link-1179" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">        <tt id="link-1179" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1179', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1180" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -2968,22 +2970,22 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1180', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1181" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1181', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1182" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1182', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1183" class="py-name" targets="Method lxml.etree.Resolver.resolve_string()=lxml.etree.Resolver-class.html#resolve_string"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-1183', 'resolve_string', 'link-1183');">resolve_string</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">                    <tt id="link-1184" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1184', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line"><tt class="py-string">                        &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line"> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">        <tt id="link-1185" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1182" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1182', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line"> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1183" class="py-name" targets="Method lxml.etree.Resolver.resolve_string()=lxml.etree.Resolver-class.html#resolve_string"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-1183', 'resolve_string', 'link-1183');">resolve_string</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">                    <tt id="link-1184" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1184', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line"><tt class="py-string">                        &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line"> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt id="link-1185" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1185', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-1186" class="py-name" targets="Method lxml.html.CheckboxValues.add()=lxml.html.CheckboxValues-class.html#add,Method lxml.html.MultipleSelectOptions.add()=lxml.html.MultipleSelectOptions-class.html#add"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1186', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line"> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt id="link-1187" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1187', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1188" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1188', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1189" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line"> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt id="link-1187" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1187', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1188" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1188', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1189" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -2991,15 +2993,15 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1189', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1190" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1190', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1191" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1191', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt id="link-1192" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1192', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1193" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1193', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1194" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1194', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">        <tt id="link-1192" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1192', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1193" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1193', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1194" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1194', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1195" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1195', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_bytes_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-def"><a name="L1091"></a><tt class="py-lineno">1091</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_bytes_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_bytes_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-expanded"><a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt id="link-1196" class="py-name"><a title="lxml.etree._ElementTree.parse
+</div><a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_bytes_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-def"><a name="L1093"></a><tt class="py-lineno">1093</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_bytes_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_bytes_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_bytes_dtd">test_resolve_bytes_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_bytes_dtd-expanded"><a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">        <tt id="link-1196" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3016,7 +3018,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1198', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line">        <tt id="link-1199" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">        <tt id="link-1199" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1199', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1200" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3024,23 +3026,23 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1200', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1201" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1201', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1202" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1202', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line"> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1203" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-1203', 'resolve_string', 'link-1183');">resolve_string</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-1204" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1204', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line"><tt class="py-string">                             &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">                    <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt id="link-1205" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1202" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1202', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1203" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-1203', 'resolve_string', 'link-1183');">resolve_string</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-1204" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1204', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"><tt class="py-string">                             &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">                    <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">        <tt id="link-1205" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1205', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-1206" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1206', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line">        <tt id="link-1207" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1207', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1208" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1208', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1209" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">        <tt id="link-1207" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1207', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1208" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1208', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1209" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3048,15 +3050,15 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1209', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1210" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1210', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1211" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1211', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">        <tt id="link-1212" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1212', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1213" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1213', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1214" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1214', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1215" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">        <tt id="link-1212" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1212', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1213" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1213', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1214" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1214', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1215" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1215', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_filelike_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-def"><a name="L1112"></a><tt class="py-lineno">1112</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filelike_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filelike_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-expanded"><a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">        <tt id="link-1216" class="py-name"><a title="lxml.etree._ElementTree.parse
+</div><a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_filelike_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-def"><a name="L1114"></a><tt class="py-lineno">1114</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filelike_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filelike_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filelike_dtd">test_resolve_filelike_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filelike_dtd-expanded"><a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">        <tt id="link-1216" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3073,7 +3075,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1218', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">        <tt id="link-1219" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">        <tt id="link-1219" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1219', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1220" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3081,23 +3083,23 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1220', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1221" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1221', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1222" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1222', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line"> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1223" class="py-name" targets="Method lxml.etree.Resolver.resolve_file()=lxml.etree.Resolver-class.html#resolve_file"><a title="lxml.etree.Resolver.resolve_file" class="py-name" href="#" onclick="return doclink('link-1223', 'resolve_file', 'link-1223');">resolve_file</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">                    <tt id="link-1224" class="py-name"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-1224', 'SillyFileLike', 'link-15');">SillyFileLike</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">                        <tt id="link-1225" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1225', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line"><tt class="py-string">                        &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line"> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">        <tt id="link-1226" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1222" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1222', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line"> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1223" class="py-name" targets="Method lxml.etree.Resolver.resolve_file()=lxml.etree.Resolver-class.html#resolve_file"><a title="lxml.etree.Resolver.resolve_file" class="py-name" href="#" onclick="return doclink('link-1223', 'resolve_file', 'link-1223');">resolve_file</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">                    <tt id="link-1224" class="py-name"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-1224', 'SillyFileLike', 'link-15');">SillyFileLike</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">                        <tt id="link-1225" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1225', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!ENTITY myentity "%s"&gt;</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line"><tt class="py-string">                        &lt;!ELEMENT doc ANY&gt;'''</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">url</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line"> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">        <tt id="link-1226" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1226', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-1227" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1227', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line"> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">        <tt id="link-1228" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1228', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1229" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1229', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1230" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">        <tt id="link-1228" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1228', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1229" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1229', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1230" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3105,15 +3107,15 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1230', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1231" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1231', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1232" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1232', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line">        <tt id="link-1233" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1233', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1234" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1234', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1235" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1235', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1236" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">        <tt id="link-1233" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1233', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1234" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1234', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1235" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1235', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1236" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1236', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_filename_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-def"><a name="L1133"></a><tt class="py-lineno">1133</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filename_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filename_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-expanded"><a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line">        <tt id="link-1237" class="py-name"><a title="lxml.etree._ElementTree.parse
+</div><a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_filename_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-def"><a name="L1135"></a><tt class="py-lineno">1135</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filename_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filename_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd">test_resolve_filename_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd-expanded"><a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">        <tt id="link-1237" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3130,7 +3132,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1239', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line">        <tt id="link-1240" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">        <tt id="link-1240" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1240', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1241" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3138,21 +3140,21 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1241', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1242" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1242', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1243" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1243', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line"> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1244" class="py-name" targets="Method lxml.etree.Resolver.resolve_filename()=lxml.etree.Resolver-class.html#resolve_filename"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-1244', 'resolve_filename', 'link-1244');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">                    <tt id="link-1245" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1245', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line"> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">        <tt id="link-1246" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1243" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1243', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line"> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1244" class="py-name" targets="Method lxml.etree.Resolver.resolve_filename()=lxml.etree.Resolver-class.html#resolve_filename"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-1244', 'resolve_filename', 'link-1244');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">                    <tt id="link-1245" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1245', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">        <tt id="link-1246" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1246', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-1247" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1247', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">        <tt id="link-1248" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1248', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1249" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1249', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1250" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line"> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">        <tt id="link-1248" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1248', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1249" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1249', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1250" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3160,18 +3162,18 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1250', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1251" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1251', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1252" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1252', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">        <tt id="link-1253" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1253', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1254" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1254', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">            <tt id="link-1255" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1255', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1256" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">        <tt id="link-1253" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1253', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1254" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1254', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line">            <tt id="link-1255" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1255', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1256" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1256', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line">            <tt id="link-1257" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1257', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1258" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line">            <tt id="link-1257" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1257', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1258" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1258', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_filename_dtd_relative"></a><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-def"><a name="L1155"></a><tt class="py-lineno">1155</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filename_dtd_relative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-expanded"><a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line">        <tt id="link-1259" class="py-name"><a title="lxml.etree._ElementTree.parse
+</div><a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_filename_dtd_relative"></a><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-def"><a name="L1157"></a><tt class="py-lineno">1157</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_filename_dtd_relative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_filename_dtd_relative">test_resolve_filename_dtd_relative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_filename_dtd_relative-expanded"><a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt id="link-1259" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3188,7 +3190,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1261', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">        <tt id="link-1262" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt id="link-1262" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1262', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1263" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3196,21 +3198,21 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1263', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1264" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1264', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1265" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1265', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt id="link-1266" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1266', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-name">test_url</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1267" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-1267', 'resolve_filename', 'link-1244');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">                    <tt id="link-1268" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1268', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line"> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">        <tt id="link-1269" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1265" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1265', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line"> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt id="link-1266" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1266', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-name">test_url</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1267" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-1267', 'resolve_filename', 'link-1244');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">                    <tt id="link-1268" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1268', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line">        <tt id="link-1269" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1269', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-1270" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1270', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line">        <tt id="link-1271" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1271', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1272" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1272', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1273" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">        <tt id="link-1271" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1271', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1272" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1272', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1273" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3218,19 +3220,19 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1273', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1274" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1274', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1275" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1275', 'parser', 'link-740');">parser</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">                     <tt id="link-1276" class="py-name" targets="Variable lxml.html.HtmlMixin.base_url=lxml.html.HtmlMixin-class.html#base_url"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-1276', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-1277" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1277', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'__test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">        <tt id="link-1278" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1278', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1279" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1279', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">            <tt id="link-1280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1280', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1281" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line">                     <tt id="link-1276" class="py-name" targets="Variable lxml.html.HtmlMixin.base_url=lxml.html.HtmlMixin-class.html#base_url"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-1276', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt id="link-1277" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1277', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'__test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">        <tt id="link-1278" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1278', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1279" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1279', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">            <tt id="link-1280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1280', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1281" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1281', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">            <tt id="link-1282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1282', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1283" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">            <tt id="link-1282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1282', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1283" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1283', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_file_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_file_dtd-def"><a name="L1178"></a><tt class="py-lineno">1178</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_file_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_file_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_file_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_file_dtd-expanded"><a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line">        <tt id="link-1284" class="py-name"><a title="lxml.etree._ElementTree.parse
+</div><a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_file_dtd"></a><div id="ETreeOnlyTestCase.test_resolve_file_dtd-def"><a name="L1180"></a><tt class="py-lineno">1180</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_file_dtd-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_file_dtd');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_file_dtd">test_resolve_file_dtd</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_file_dtd-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_file_dtd-expanded"><a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt id="link-1284" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3247,7 +3249,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1286', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line">        <tt id="link-1287" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">        <tt id="link-1287" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1287', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1288" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3255,21 +3257,21 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1288', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1289" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1289', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">attribute_defaults</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1290" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1290', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line"> </tt>
-<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1291" class="py-name"><a title="lxml.etree.Resolver.resolve_file" class="py-name" href="#" onclick="return doclink('link-1291', 'resolve_file', 'link-1223');">resolve_file</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line">                    <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-1292" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1292', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line"> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">        <tt id="link-1293" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1290" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1290', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1291" class="py-name"><a title="lxml.etree.Resolver.resolve_file" class="py-name" href="#" onclick="return doclink('link-1291', 'resolve_file', 'link-1223');">resolve_file</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">                    <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-1292" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-1292', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"> </tt>
+<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line">        <tt id="link-1293" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1293', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-1294" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1294', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line">        <tt id="link-1295" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1295', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1296" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1296', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1297" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">        <tt id="link-1295" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1295', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1296" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1296', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE a SYSTEM "%s"&gt;&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1297" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3277,18 +3279,18 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1297', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1298" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1298', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1299" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1299', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">        <tt id="link-1300" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1300', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1301" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1301', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">            <tt id="link-1302" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1302', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1303" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line">        <tt id="link-1300" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1300', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1301" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1301', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">            <tt id="link-1302" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1302', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1303" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1303', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">,</tt>    <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueA'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">            <tt id="link-1304" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1304', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1305" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">            <tt id="link-1304" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1304', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1305" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1305', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-string">'default'</tt><tt class="py-op">:</tt> <tt class="py-string">'valueB'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_empty"></a><div id="ETreeOnlyTestCase.test_resolve_empty-def"><a name="L1200"></a><tt class="py-lineno">1200</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_empty-expanded"><a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">        <tt id="link-1306" class="py-name"><a title="lxml.etree._ElementTree.parse
+</div><a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_empty"></a><div id="ETreeOnlyTestCase.test_resolve_empty-def"><a name="L1202"></a><tt class="py-lineno">1202</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_empty">test_resolve_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_empty-expanded"><a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">        <tt id="link-1306" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3305,7 +3307,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1308', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">        <tt id="link-1309" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">        <tt id="link-1309" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1309', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1310" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3313,24 +3315,24 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1310', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1311" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1311', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">load_dtd</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
-<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1312" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1312', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line"> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">check</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">            <tt class="py-name">resolved</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-</div><a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line"> </tt>
-<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">                <tt class="py-name">check</tt><tt class="py-op">.</tt><tt class="py-name">resolved</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1313" class="py-name" targets="Method lxml.etree.Resolver.resolve_empty()=lxml.etree.Resolver-class.html#resolve_empty"><a title="lxml.etree.Resolver.resolve_empty" class="py-name" href="#" onclick="return doclink('link-1313', 'resolve_empty', 'link-1313');">resolve_empty</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line"> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt id="link-1314" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line">        <tt class="py-name">assertEqual</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt class="py-name">test_url</tt> <tt class="py-op">=</tt> <tt id="link-1312" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1312', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"__nosuch.dtd"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line"> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">check</tt><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">            <tt class="py-name">resolved</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+</div><a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line"> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">                <tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">url</tt><tt class="py-op">,</tt> <tt class="py-name">test_url</tt><tt class="py-op">)</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">                <tt class="py-name">check</tt><tt class="py-op">.</tt><tt class="py-name">resolved</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1313" class="py-name" targets="Method lxml.etree.Resolver.resolve_empty()=lxml.etree.Resolver-class.html#resolve_empty"><a title="lxml.etree.Resolver.resolve_empty" class="py-name" href="#" onclick="return doclink('link-1313', 'resolve_empty', 'link-1313');">resolve_empty</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line"> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt id="link-1314" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1314', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-1315" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1315', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line"> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt id="link-1316" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1316', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1317" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1317', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-1318" class="py-name"><a title="lxml.etree
+<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line"> </tt>
+<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">        <tt id="link-1316" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1316', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1317" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1317', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "%s"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> <tt class="py-op">%</tt> <tt class="py-name">test_url</tt> </tt>
+<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-1318" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -3342,10 +3344,10 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1320', 'parse', 'link-749');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">StringIO</tt><tt class="py-op">(</tt><tt id="link-1321" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1321', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1322" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1322', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">check</tt><tt class="py-op">.</tt><tt class="py-name">resolved</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_resolve_error"></a><div id="ETreeOnlyTestCase.test_resolve_error-def"><a name="L1221"></a><tt class="py-lineno">1221</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_resolve_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_error-expanded"><a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">        <tt id="link-1323" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">check</tt><tt class="py-op">.</tt><tt class="py-name">resolved</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_resolve_error"></a><div id="ETreeOnlyTestCase.test_resolve_error-def"><a name="L1223"></a><tt class="py-lineno">1223</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_resolve_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_resolve_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_resolve_error">test_resolve_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_resolve_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_resolve_error-expanded"><a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">        <tt id="link-1323" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3362,7 +3364,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1325', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">        <tt id="link-1326" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">        <tt id="link-1326" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1326', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1327" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3370,20 +3372,20 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1327', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1328" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1328', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">dtd_validation</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line"> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">_LocalException</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line"> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">_LocalException</tt> </tt>
-</div></div><a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line"> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">        <tt id="link-1329" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line"> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">_LocalException</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line"> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">_LocalException</tt> </tt>
+</div></div><a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line"> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">        <tt id="link-1329" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1329', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-1330" class="py-name"><a title="lxml.html.CheckboxValues.add
 lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-1330', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">MyResolver</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line"> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">        <tt id="link-1331" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1331', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "test"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">_LocalException</tt><tt class="py-op">,</tt> <tt id="link-1332" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line"> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">        <tt id="link-1331" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1331', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "test"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">_LocalException</tt><tt class="py-op">,</tt> <tt id="link-1332" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3391,14 +3393,14 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1332', 'parse', 'link-749');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1333" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1333', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1334" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1334', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line"> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1335" class="py-name"><a title="lxml.etree
+</div><a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line"> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1335" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1335', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1336" class="py-name"><a title="lxml.etree.LIBXML_VERSION" class="py-name" href="#" onclick="return doclink('link-1336', 'LIBXML_VERSION', 'link-26');">LIBXML_VERSION</a></tt> <tt class="py-op">&gt;</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">,</tt><tt class="py-number">20</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="ETreeOnlyTestCase.test_entity_parse"></a><div id="ETreeOnlyTestCase.test_entity_parse-def"><a name="L1238"></a><tt class="py-lineno">1238</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_parse');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_entity_parse-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ETreeOnlyTestCase.test_entity_parse-expanded"><a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">            <tt id="link-1337" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="ETreeOnlyTestCase.test_entity_parse"></a><div id="ETreeOnlyTestCase.test_entity_parse-def"><a name="L1240"></a><tt class="py-lineno">1240</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_parse');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_parse">test_entity_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_entity_parse-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ETreeOnlyTestCase.test_entity_parse-expanded"><a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">            <tt id="link-1337" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3415,14 +3417,14 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1339', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">            <tt id="link-1340" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">            <tt id="link-1340" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1340', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1341" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1341', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1342" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1342', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">            <tt id="link-1343" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">            <tt id="link-1343" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1343', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1344" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3430,14 +3432,14 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1344', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1345" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1345', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">            <tt id="link-1346" class="py-name" targets="Function lxml.etree.Entity()=lxml.etree-module.html#Entity"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1346', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1347" class="py-name"><a title="lxml.etree
+<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">            <tt id="link-1346" class="py-name" targets="Function lxml.etree.Entity()=lxml.etree-module.html#Entity"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1346', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1347" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1347', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1348" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1348', 'Entity', 'link-1346');">Entity</a></tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line"> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">            <tt id="link-1349" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1349', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1350" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1350', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "test"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1351" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line"> </tt>
+<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">            <tt id="link-1349" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1349', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1350" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1350', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE doc SYSTEM "test"&gt;&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-1351" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
@@ -3445,38 +3447,38 @@ lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1351', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1352" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1352', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1353" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1353', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">            <tt id="link-1354" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1354', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1355" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1355', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1356" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1356', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1357" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">            <tt id="link-1354" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1354', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1355" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1355', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1356" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1356', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1357" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1357', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1358" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1358', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1359" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1359', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1360" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1359" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1359', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1360" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1360', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;myentity;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1361" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1361', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1362" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1361" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1361', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1362" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1362', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1363" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1363', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1364" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1363" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1363', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1364" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
 lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1364', 'name', 'link-795');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">"myentity"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line"> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1365" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1365', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line">                              <tt id="link-1366" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line"> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1365" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1365', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&amp;myentity;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">                              <tt id="link-1366" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1366', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1367" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1367', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_restructure"></a><div id="ETreeOnlyTestCase.test_entity_restructure-def"><a name="L1255"></a><tt class="py-lineno">1255</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_restructure-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_restructure');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_entity_restructure-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ETreeOnlyTestCase.test_entity_restructure-expanded"><a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">            <tt id="link-1368" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1368', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1369" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1369', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!DOCTYPE root [ &lt;!ENTITY nbsp "&amp;#160;"&gt; ]&gt;</tt> </tt>
-<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line"><tt class="py-string">                &lt;root&gt;</tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line"><tt class="py-string">                  &lt;child1/&gt;</tt> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line"><tt class="py-string">                  &lt;child2/&gt;</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line"><tt class="py-string">                  &lt;child3&gt;&amp;nbsp;&lt;/child3&gt;</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line"><tt class="py-string">                &lt;/root&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line"> </tt>
-<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">            <tt id="link-1370" class="py-name"><a title="lxml.etree._ElementTree.parser
+</div><a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_entity_restructure"></a><div id="ETreeOnlyTestCase.test_entity_restructure-def"><a name="L1257"></a><tt class="py-lineno">1257</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_restructure-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_restructure');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_restructure">test_entity_restructure</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_entity_restructure-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ETreeOnlyTestCase.test_entity_restructure-expanded"><a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line">            <tt id="link-1368" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1368', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1369" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1369', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;!DOCTYPE root [ &lt;!ENTITY nbsp "&amp;#160;"&gt; ]&gt;</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line"><tt class="py-string">                &lt;root&gt;</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line"><tt class="py-string">                  &lt;child1/&gt;</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line"><tt class="py-string">                  &lt;child2/&gt;</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line"><tt class="py-string">                  &lt;child3&gt;&amp;nbsp;&lt;/child3&gt;</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line"><tt class="py-string">                &lt;/root&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line"> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">            <tt id="link-1370" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1370', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1371" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3484,7 +3486,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1371', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1372" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1372', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">resolve_entities</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">            <tt id="link-1373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1373', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1374" class="py-name"><a title="lxml.etree
+<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">            <tt id="link-1373" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1373', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1374" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -3493,39 +3495,39 @@ lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
 lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-1375', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-1376" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1376', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-1377" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1377', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1378" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1378" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1378', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1379" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1379', 'root', 'link-212');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">                              <tt class="py-op">[</tt><tt class="py-string">'child1'</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">,</tt> <tt class="py-string">'child3'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line"> </tt>
-<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">            <tt id="link-1380" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1380', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-1381" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1381', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1382" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">                              <tt class="py-op">[</tt><tt class="py-string">'child1'</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">,</tt> <tt class="py-string">'child3'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line"> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">            <tt id="link-1380" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1380', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-1381" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1381', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1382" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1382', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1383" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1383', 'root', 'link-212');">root</a></tt> <tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">                              <tt class="py-op">[</tt><tt class="py-string">'child3'</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1384', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1385" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">                              <tt class="py-op">[</tt><tt class="py-string">'child3'</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1384" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1384', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1385" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1385', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;nbsp;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1386', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1387" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1386" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1386', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1387" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
 lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1387', 'name', 'link-795');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">'nbsp'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_append"></a><div id="ETreeOnlyTestCase.test_entity_append-def"><a name="L1274"></a><tt class="py-lineno">1274</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_append-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_entity_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_append-expanded"><a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">        <tt id="link-1388" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1388', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1389" class="py-name"><a title="lxml.etree
+</div><a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_entity_append"></a><div id="ETreeOnlyTestCase.test_entity_append-def"><a name="L1276"></a><tt class="py-lineno">1276</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_append-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_append');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_append">test_entity_append</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_entity_append-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_append-expanded"><a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">        <tt id="link-1388" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1388', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1389" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1389', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1390" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1390', 'Entity', 'link-1346');">Entity</a></tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">        <tt id="link-1391" class="py-name"><a title="lxml.etree.Element
+<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">        <tt id="link-1391" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1391', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1392" class="py-name"><a title="lxml.etree
@@ -3536,88 +3538,88 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1393', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">        <tt id="link-1394" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">        <tt id="link-1394" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1394', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1395" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1395', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1396" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1396', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line"> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">        <tt id="link-1397" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1397', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1398" class="py-name"><a title="lxml.etree.Element
+<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line"> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">        <tt id="link-1397" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1397', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1398" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1398', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">        <tt id="link-1399" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1399', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1400" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1400', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt> <tt id="link-1401" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1401', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line"> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1402" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1402', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1403" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">        <tt id="link-1399" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1399', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1400" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1400', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt> <tt id="link-1401" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1401', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1402" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1402', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1403" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1403', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-1404" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1404', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1405" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1405', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1406" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1405" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1405', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1406" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1406', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;test;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1407" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1407', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1408" class="py-name"><a title="lxml.etree._Element.tail
+<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1407" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1407', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1408" class="py-name"><a title="lxml.etree._Element.tail
 xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1408', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1409" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1409', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1410" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1409" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1409', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1410" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
 lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-1410', 'name', 'link-795');">name</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line"> </tt>
-<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1411" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1411', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&amp;test;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">                          <tt id="link-1412" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"> </tt>
+<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1411" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1411', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&amp;test;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line">                          <tt id="link-1412" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1412', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1413" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1413', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_values"></a><div id="ETreeOnlyTestCase.test_entity_values-def"><a name="L1290"></a><tt class="py-lineno">1290</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_values-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_values');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_entity_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_values-expanded"><a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line">        <tt id="link-1414" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1414', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1415" class="py-name"><a title="lxml.etree
+</div><a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_entity_values"></a><div id="ETreeOnlyTestCase.test_entity_values-def"><a name="L1292"></a><tt class="py-lineno">1292</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_values-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_values');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_values">test_entity_values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_entity_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_values-expanded"><a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line">        <tt id="link-1414" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1414', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1415" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1415', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1416" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1416', 'Entity', 'link-1346');">Entity</a></tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1417" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1417', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1418" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1417" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1417', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1418" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1418', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;test;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1419" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1419', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#17683"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1420" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1419" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1419', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#17683"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1420" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1420', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#17683;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1421" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1421', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#x1768"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1422" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1421" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1421', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#x1768"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1422" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1422', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#x1768;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1423" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1423', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#x98AF"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1424" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1423" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1423', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"#x98AF"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-1424" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1424', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&amp;#x98AF;'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_entity_error"></a><div id="ETreeOnlyTestCase.test_entity_error-def"><a name="L1297"></a><tt class="py-lineno">1297</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_entity_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_error-expanded"><a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">        <tt id="link-1425" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1425', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1426" class="py-name"><a title="lxml.etree
+</div><a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_entity_error"></a><div id="ETreeOnlyTestCase.test_entity_error-def"><a name="L1299"></a><tt class="py-lineno">1299</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_entity_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_entity_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_entity_error">test_entity_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_entity_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_entity_error-expanded"><a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">        <tt id="link-1425" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1425', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1426" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1426', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1427" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1427', 'Entity', 'link-1346');">Entity</a></tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1428" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1428', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a b c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1429" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1429', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a,b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1430" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1430', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a\0b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1431" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1431', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'#abc'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1432" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1432', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'#xxyz'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata"></a><div id="ETreeOnlyTestCase.test_cdata-def"><a name="L1305"></a><tt class="py-lineno">1305</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata-expanded"><a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">        <tt id="link-1433" class="py-name" targets="Class lxml.etree.CDATA=lxml.etree.CDATA-class.html"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1433', 'CDATA', 'link-1433');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1434" class="py-name"><a title="lxml.etree
+<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1428" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1428', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a b c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1429" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1429', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a,b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1430" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1430', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a\0b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1431" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1431', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'#abc'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1432" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-1432', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">,</tt> <tt class="py-string">'#xxyz'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata"></a><div id="ETreeOnlyTestCase.test_cdata-def"><a name="L1307"></a><tt class="py-lineno">1307</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata">test_cdata</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata-expanded"><a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line">        <tt id="link-1433" class="py-name" targets="Class lxml.etree.CDATA=lxml.etree.CDATA-class.html"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1433', 'CDATA', 'link-1433');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1434" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1434', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1435" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1435', 'CDATA', 'link-1433');">CDATA</a></tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">        <tt id="link-1436" class="py-name"><a title="lxml.etree.Element
+<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line">        <tt id="link-1436" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1436', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1437" class="py-name"><a title="lxml.etree
@@ -3628,41 +3630,41 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1438', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line">        <tt id="link-1439" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">        <tt id="link-1439" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1439', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1440" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1440', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1441" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1441', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">        <tt id="link-1442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1442', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1443" class="py-name"><a title="lxml.etree.Element
+<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">        <tt id="link-1442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1442', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1443" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1443', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">        <tt id="link-1444" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1444', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1445" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">        <tt id="link-1444" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1444', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1445" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1445', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1446" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1446', 'CDATA', 'link-1433');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line"> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">                          <tt id="link-1447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1447', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1448" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"> </tt>
+<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">                          <tt id="link-1447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1447', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1448" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1448', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1449" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1449', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">                          <tt id="link-1450" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1449" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1449', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line">                          <tt id="link-1450" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1450', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1451" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1451', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata_type"></a><div id="ETreeOnlyTestCase.test_cdata_type-def"><a name="L1318"></a><tt class="py-lineno">1318</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_type-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata_type-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_type-expanded"><a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">        <tt id="link-1452" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1452', 'CDATA', 'link-1433');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1453" class="py-name"><a title="lxml.etree
+</div><a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata_type"></a><div id="ETreeOnlyTestCase.test_cdata_type-def"><a name="L1320"></a><tt class="py-lineno">1320</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_type-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_type');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_type">test_cdata_type</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata_type-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_type-expanded"><a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt id="link-1452" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1452', 'CDATA', 'link-1433');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1453" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1453', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1454" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1454', 'CDATA', 'link-1433');">CDATA</a></tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">        <tt id="link-1455" class="py-name"><a title="lxml.etree.Element
+<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">        <tt id="link-1455" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1455', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1456" class="py-name"><a title="lxml.etree
@@ -3673,42 +3675,42 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1457', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt id="link-1458" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1458', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1459" class="py-name"><a title="lxml.etree.Element
+<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">        <tt id="link-1458" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1458', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1459" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1459', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line"> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">        <tt id="link-1460" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1460', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1461" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"> </tt>
+<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">        <tt id="link-1460" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1460', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1461" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1461', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1462" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1462', 'CDATA', 'link-1433');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-1463" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1463', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1464" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-1463" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1463', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1464" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1464', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line"> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">        <tt id="link-1465" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1465', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1466" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line"> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line">        <tt id="link-1465" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1465', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1466" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1466', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-1467" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1467', 'CDATA', 'link-1433');">CDATA</a></tt><tt class="py-op">(</tt><tt id="link-1468" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-1468', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-1469" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1469', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1470" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-1469" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1469', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1470" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1470', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1471" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1471', 'CDATA', 'link-1433');">CDATA</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata_errors"></a><div id="ETreeOnlyTestCase.test_cdata_errors-def"><a name="L1331"></a><tt class="py-lineno">1331</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_errors-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_errors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata_errors-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_errors-expanded"><a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">        <tt id="link-1472" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1472', 'CDATA', 'link-1433');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1473" class="py-name"><a title="lxml.etree
+<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1471" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1471', 'CDATA', 'link-1433');">CDATA</a></tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata_errors"></a><div id="ETreeOnlyTestCase.test_cdata_errors-def"><a name="L1333"></a><tt class="py-lineno">1333</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_errors-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_errors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_errors">test_cdata_errors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata_errors-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_errors-expanded"><a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">        <tt id="link-1472" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1472', 'CDATA', 'link-1433');">CDATA</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1473" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1473', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1474" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1474', 'CDATA', 'link-1433');">CDATA</a></tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line">        <tt id="link-1475" class="py-name"><a title="lxml.etree.Element
+<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">        <tt id="link-1475" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1475', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1476" class="py-name"><a title="lxml.etree
@@ -3719,32 +3721,32 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1477', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"> </tt>
-<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">        <tt id="link-1478" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1478', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1479" class="py-name"><a title="lxml.etree.Element
+<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"> </tt>
+<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line">        <tt id="link-1478" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1478', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1479" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1479', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line">        <tt class="py-name">cdata</tt> <tt class="py-op">=</tt> <tt id="link-1480" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1480', 'CDATA', 'link-1433');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line">         </tt>
-<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">                          <tt id="link-1481" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-1481', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt id="link-1482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1482', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tail'</tt><tt class="py-op">,</tt> <tt class="py-name">cdata</tt><tt class="py-op">)</tt> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">        <tt class="py-name">cdata</tt> <tt class="py-op">=</tt> <tt id="link-1480" class="py-name"><a title="lxml.etree.CDATA" class="py-name" href="#" onclick="return doclink('link-1480', 'CDATA', 'link-1433');">CDATA</a></tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">         </tt>
 <a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">                          <tt id="link-1483" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1483', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1484" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1484', 'set', 'link-233');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attr'</tt><tt class="py-op">,</tt> <tt class="py-name">cdata</tt><tt class="py-op">)</tt> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">                          <tt id="link-1481" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-1481', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt id="link-1482" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1482', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tail'</tt><tt class="py-op">,</tt> <tt class="py-name">cdata</tt><tt class="py-op">)</tt> </tt>
 <a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line">                          <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt id="link-1485" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1485', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1486" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line">                          <tt id="link-1483" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1483', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1484" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1484', 'set', 'link-233');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attr'</tt><tt class="py-op">,</tt> <tt class="py-name">cdata</tt><tt class="py-op">)</tt> </tt>
+<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line">                          <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt id="link-1485" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1485', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1486" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
 xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-1486', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">,</tt> <tt class="py-string">'attr'</tt><tt class="py-op">,</tt> <tt class="py-name">cdata</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata_parser"></a><div id="ETreeOnlyTestCase.test_cdata_parser-def"><a name="L1345"></a><tt class="py-lineno">1345</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_parser-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_parser');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata_parser-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_parser-expanded"><a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line">        <tt id="link-1487" class="py-name"><a title="lxml.etree.XSLT.tostring
+</div><a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata_parser"></a><div id="ETreeOnlyTestCase.test_cdata_parser-def"><a name="L1347"></a><tt class="py-lineno">1347</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_parser-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_parser');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_parser">test_cdata_parser</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata_parser-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_parser-expanded"><a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">        <tt id="link-1487" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1487', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1488" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1488', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1489" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1489', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">        <tt id="link-1490" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">        <tt id="link-1490" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1490', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1491" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3752,7 +3754,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1491', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1492" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1492', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">        <tt id="link-1493" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1493', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1494" class="py-name"><a title="lxml.etree
+<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">        <tt id="link-1493" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1493', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1494" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -3761,25 +3763,25 @@ lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1495', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1496" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1496', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1497" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1497', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-1498" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1498', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1499" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'test'</tt><tt class="py-op">,</tt> <tt id="link-1498" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1498', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1499" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1499', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1500" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1500', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line">                          <tt id="link-1501" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1500" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1500', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line">                          <tt id="link-1501" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1501', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1502" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1502', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_cdata_xpath"></a><div id="ETreeOnlyTestCase.test_cdata_xpath-def"><a name="L1354"></a><tt class="py-lineno">1354</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_xpath-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_xpath');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_cdata_xpath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_xpath-expanded"><a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line">        <tt id="link-1503" class="py-name"><a title="lxml.etree.XSLT.tostring
+</div><a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_cdata_xpath"></a><div id="ETreeOnlyTestCase.test_cdata_xpath-def"><a name="L1356"></a><tt class="py-lineno">1356</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_cdata_xpath-toggle" onclick="return toggle('ETreeOnlyTestCase.test_cdata_xpath');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_cdata_xpath">test_cdata_xpath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_cdata_xpath-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_cdata_xpath-expanded"><a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">        <tt id="link-1503" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1503', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1504" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1504', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1505" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1505', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">        <tt id="link-1506" class="py-name"><a title="lxml.etree._ElementTree.parser
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">        <tt id="link-1506" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1506', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1507" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -3787,7 +3789,7 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1507', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1508" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
 xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-1508', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">strip_cdata</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">        <tt id="link-1509" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1509', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1510" class="py-name"><a title="lxml.etree
+<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">        <tt id="link-1509" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1509', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1510" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -3796,17 +3798,17 @@ lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1511', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1512" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1512', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-1513" class="py-name"><a title="lxml.etree._ElementTree.parser
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-1513', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1514" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1514', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">                          <tt id="link-1515" class="py-name"><a title="lxml.etree.XSLT.tostring
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1514" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1514', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;![CDATA[test]]&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line">                          <tt id="link-1515" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1515', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-1516" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1516', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1517', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1518" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
+<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'test'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1517" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1517', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1518" class="py-name" targets="Method lxml.etree._Element.xpath()=lxml.etree._Element-class.html#xpath,Method lxml.etree._ElementTree.xpath()=lxml.etree._ElementTree-class.html#xpath,Function lxml.tests.test_xpathevaluator.xpath()=lxml.tests.test_xpathevaluator-module.html#xpath"><a title="lxml.etree._Element.xpath
 lxml.etree._ElementTree.xpath
 lxml.tests.test_xpathevaluator.xpath" class="py-name" href="#" onclick="return doclink('link-1518', 'xpath', 'link-1518');">xpath</a></tt><tt class="py-op">(</tt><tt class="py-string">'//text()'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line"> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">    <tt class="py-comment"># TypeError in etree, AssertionError in ElementTree;</tt> </tt>
-<a name="ETreeOnlyTestCase.test_setitem_assert"></a><div id="ETreeOnlyTestCase.test_setitem_assert-def"><a name="L1364"></a><tt class="py-lineno">1364</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setitem_assert-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setitem_assert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setitem_assert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setitem_assert-expanded"><a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line">        <tt id="link-1519" class="py-name"><a title="lxml.etree.Element
+</div><a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line">    <tt class="py-comment"># TypeError in etree, AssertionError in ElementTree;</tt> </tt>
+<a name="ETreeOnlyTestCase.test_setitem_assert"></a><div id="ETreeOnlyTestCase.test_setitem_assert-def"><a name="L1366"></a><tt class="py-lineno">1366</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setitem_assert-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setitem_assert');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setitem_assert">test_setitem_assert</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setitem_assert-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setitem_assert-expanded"><a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line">        <tt id="link-1519" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1519', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1520" class="py-name"><a title="lxml.etree
@@ -3817,26 +3819,26 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1521', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line">        <tt id="link-1522" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1522', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1523" class="py-name"><a title="lxml.etree
+<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt id="link-1522" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1522', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1523" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1523', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1524" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1524', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1525" class="py-name"><a title="lxml.etree.Element
+<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1525" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1525', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1526" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1526', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">         </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1527" class="py-name" targets="Method lxml.etree._Attrib.__setitem__()=lxml.etree._Attrib-class.html#__setitem__,Method lxml.etree._Element.__setitem__()=lxml.etree._Element-class.html#__setitem__,Method lxml.html.FieldsDict.__setitem__()=lxml.html.FieldsDict-class.html#__setitem__,Method lxml.objectify.ObjectifiedElement.__setitem__()=lxml.objectify.ObjectifiedElement-class.html#__setitem__"><a title="lxml.etree._Attrib.__setitem__
+<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1526" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1526', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">         </tt>
+<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> </tt>
+<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">                          <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1527" class="py-name" targets="Method lxml.etree._Attrib.__setitem__()=lxml.etree._Attrib-class.html#__setitem__,Method lxml.etree._Element.__setitem__()=lxml.etree._Element-class.html#__setitem__,Method lxml.html.FieldsDict.__setitem__()=lxml.html.FieldsDict-class.html#__setitem__,Method lxml.objectify.ObjectifiedElement.__setitem__()=lxml.objectify.ObjectifiedElement-class.html#__setitem__"><a title="lxml.etree._Attrib.__setitem__
 lxml.etree._Element.__setitem__
 lxml.html.FieldsDict.__setitem__
 lxml.objectify.ObjectifiedElement.__setitem__" class="py-name" href="#" onclick="return doclink('link-1527', '__setitem__', 'link-1527');">__setitem__</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_append_error"></a><div id="ETreeOnlyTestCase.test_append_error-def"><a name="L1374"></a><tt class="py-lineno">1374</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_append_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_append_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error">test_append_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_append_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_append_error-expanded"><a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt id="link-1528" class="py-name"><a title="lxml.etree.Element
+</div><a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_append_error"></a><div id="ETreeOnlyTestCase.test_append_error-def"><a name="L1376"></a><tt class="py-lineno">1376</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_append_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_append_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_error">test_append_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_append_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_append_error-expanded"><a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt id="link-1528" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1528', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1529" class="py-name"><a title="lxml.etree
@@ -3847,26 +3849,26 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1530', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">        <tt id="link-1531" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1531', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1532" class="py-name"><a title="lxml.etree.Element
+<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">        <tt id="link-1531" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1531', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1532" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1532', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line">        <tt class="py-comment"># raises AssertionError in ElementTree</tt> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1533" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1533', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1534" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1534', 'append', 'link-613');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1535', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1536" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1536', 'extend', 'link-1536');">extend</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1537" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1537', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1538" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1538', 'extend', 'link-1536');">extend</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-1539" class="py-name"><a title="lxml.etree.Element
+<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line">        <tt class="py-comment"># raises AssertionError in ElementTree</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1533" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1533', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1534" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1534', 'append', 'link-613');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1535" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1535', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1536" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1536', 'extend', 'link-1536');">extend</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt id="link-1537" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1537', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1538" class="py-name"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-1538', 'extend', 'link-1536');">extend</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt id="link-1539" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1539', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-1540" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1540', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1541" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt id="link-1540" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1540', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1541" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1541', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext"></a><div id="ETreeOnlyTestCase.test_addnext-def"><a name="L1383"></a><tt class="py-lineno">1383</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext">test_addnext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext-expanded"><a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">        <tt id="link-1542" class="py-name"><a title="lxml.etree.Element
+</div><a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_append_recursive_error"></a><div id="ETreeOnlyTestCase.test_append_recursive_error-def"><a name="L1385"></a><tt class="py-lineno">1385</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_append_recursive_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_append_recursive_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_append_recursive_error">test_append_recursive_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_append_recursive_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_append_recursive_error-expanded"><a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">        <tt id="link-1542" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1542', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1543" class="py-name"><a title="lxml.etree
@@ -3877,5624 +3879,5787 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1544', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line">        <tt id="link-1545" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1545', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1546" class="py-name"><a title="lxml.etree
+<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">        <tt id="link-1545" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1545', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1546" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1546', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1547" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1547', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">        <tt id="link-1548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1548', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1549" class="py-name"><a title="lxml.etree.Element
+<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">        <tt id="link-1548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1548', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1549" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1549', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">        <tt id="link-1550" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1550', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1551" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1551', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line">        <tt id="link-1552" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1552', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1553" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1553', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line"> </tt>
-<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1554" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-1550" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1550', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1551" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1551', 'append', 'link-613');">append</a></tt><tt class="py-op">,</tt> <tt id="link-1552" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1552', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-1553" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1553', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1554" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1554', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-1555" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1555', 'append', 'link-613');">append</a></tt><tt class="py-op">,</tt> <tt id="link-1556" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1556', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">        <tt class="py-name">child2</tt> <tt class="py-op">=</tt> <tt id="link-1557" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1557', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-string">'child2'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">child2</tt><tt class="py-op">.</tt><tt id="link-1558" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1558', 'append', 'link-613');">append</a></tt><tt class="py-op">,</tt> <tt id="link-1559" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1559', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">child2</tt><tt class="py-op">.</tt><tt id="link-1560" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1560', 'append', 'link-613');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'child2'</tt><tt class="py-op">,</tt> <tt id="link-1561" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1561', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1562" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1554', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1555" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1555', 'root', 'link-212');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">        <tt id="link-1556" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1556', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1557" class="py-name" targets="Method lxml.etree._Element.addnext()=lxml.etree._Element-class.html#addnext"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1557', 'addnext', 'link-1557');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1558" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1558', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1559" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1562', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext"></a><div id="ETreeOnlyTestCase.test_addnext-def"><a name="L1397"></a><tt class="py-lineno">1397</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext">test_addnext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext-expanded"><a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">        <tt id="link-1563" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1563', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1564" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1564', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1565" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1565', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line">        <tt id="link-1566" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1566', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1567" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1567', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1568" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1568', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">        <tt id="link-1569" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1569', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1570" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1570', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">        <tt id="link-1571" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1571', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1572" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1572', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line">        <tt id="link-1573" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1573', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1574" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1574', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1575" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1559', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1560" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1560', 'root', 'link-212');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious"></a><div id="ETreeOnlyTestCase.test_addprevious-def"><a name="L1396"></a><tt class="py-lineno">1396</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious-expanded"><a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">        <tt id="link-1561" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1575', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1576" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1576', 'root', 'link-212');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line">        <tt id="link-1577" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1577', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1578" class="py-name" targets="Method lxml.etree._Element.addnext()=lxml.etree._Element-class.html#addnext"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1578', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1579" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1579', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1580" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1580', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1581" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1581', 'root', 'link-212');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious"></a><div id="ETreeOnlyTestCase.test_addprevious-def"><a name="L1410"></a><tt class="py-lineno">1410</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious">test_addprevious</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious-expanded"><a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">        <tt id="link-1582" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1561', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1562" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1582', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1583" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1562', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1563" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1583', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1584" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1563', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">        <tt id="link-1564" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1564', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1565" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1584', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">        <tt id="link-1585" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1585', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1586" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1565', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1566" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1566', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line">        <tt id="link-1567" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1567', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1568" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1586', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1587" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1587', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">        <tt id="link-1588" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1588', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1589" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1568', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">        <tt id="link-1569" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1569', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1570" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1570', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line">        <tt id="link-1571" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1571', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1572" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1572', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1573" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1589', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line">        <tt id="link-1590" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1590', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1591" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1591', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line">        <tt id="link-1592" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1592', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1593" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1593', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1594" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1573', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1574" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1574', 'root', 'link-212');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line">        <tt id="link-1575" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1575', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1576" class="py-name" targets="Method lxml.etree._Element.addprevious()=lxml.etree._Element-class.html#addprevious"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1576', 'addprevious', 'link-1576');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1577" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1577', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1578" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1594', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1595" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1595', 'root', 'link-212');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">        <tt id="link-1596" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1596', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1597" class="py-name" targets="Method lxml.etree._Element.addprevious()=lxml.etree._Element-class.html#addprevious"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1597', 'addprevious', 'link-1597');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1598" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1598', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">                          <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1599" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1578', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1579" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1579', 'root', 'link-212');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root"></a><div id="ETreeOnlyTestCase.test_addnext_root-def"><a name="L1409"></a><tt class="py-lineno">1409</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root-expanded"><a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">        <tt id="link-1580" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1599', 'tag', 'link-65');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">c</tt> <tt class="py-keyword">in</tt> <tt id="link-1600" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1600', 'root', 'link-212');">root</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_noops"></a><div id="ETreeOnlyTestCase.test_addprevious_noops-def"><a name="L1423"></a><tt class="py-lineno">1423</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_noops-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_noops');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_noops">test_addprevious_noops</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_noops-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_noops-expanded"><a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">        <tt id="link-1601" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1580', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1581" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1601', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1602" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1581', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1582" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1602', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1603" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1582', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1583" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1603', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">        <tt id="link-1604" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1604', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1605" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1605', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1606" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1606', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">        <tt id="link-1607" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1607', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1608" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1583', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1584" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1608', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1609" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1609', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1610" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1610', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1611" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1611', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1612" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1612', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1613" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1613', 'addprevious', 'link-1597');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1614" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1614', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1615" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1615', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1616" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1616', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1617" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1617', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1618" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1618', 'addprevious', 'link-1597');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1619" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1619', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1620" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1620', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1621" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1621', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1622" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1622', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1623" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1623', 'addprevious', 'link-1597');">addprevious</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1624', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1625" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1625', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1626" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1626', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1627" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1627', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_noops"></a><div id="ETreeOnlyTestCase.test_addnext_noops-def"><a name="L1439"></a><tt class="py-lineno">1439</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_noops-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_noops');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_noops">test_addnext_noops</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_noops-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_noops-expanded"><a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt id="link-1628" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1584', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1585" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1585', 'addnext', 'link-1557');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root"></a><div id="ETreeOnlyTestCase.test_addnext_root-def"><a name="L1415"></a><tt class="py-lineno">1415</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root-expanded"><a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">        <tt id="link-1586" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1628', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1629" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1629', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1630" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1630', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt id="link-1631" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1631', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1632" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1632', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1633" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1633', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt id="link-1634" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1634', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1635" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1635', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1636" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1636', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1637" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1637', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1638" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1638', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1639" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1639', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1640" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1640', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1641" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1641', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1642" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1642', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1643" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1643', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1644" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1644', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1645" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1645', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1646" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1646', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1647" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1647', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1648" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1648', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1649" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1649', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1650" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1650', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-1651" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1651', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1652" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1652', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt id="link-1653" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1653', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1654" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1654', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root"></a><div id="ETreeOnlyTestCase.test_addnext_root-def"><a name="L1455"></a><tt class="py-lineno">1455</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root">test_addnext_root</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_root-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root-expanded"><a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line">        <tt id="link-1655" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1586', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1587" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1655', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1656" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1587', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1588" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1656', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1657" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1588', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1589" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1657', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1658" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1589', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1590" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1658', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1659" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1590', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1591" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1591', 'addnext', 'link-1557');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_pi-def"><a name="L1421"></a><tt class="py-lineno">1421</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_pi-expanded"><a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">        <tt id="link-1592" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1659', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1660" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1660', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_pi-def"><a name="L1461"></a><tt class="py-lineno">1461</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_pi">test_addprevious_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_pi-expanded"><a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">        <tt id="link-1661" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1592', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1593" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1661', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1662" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1593', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1594" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1662', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1663" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1594', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">        <tt id="link-1595" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1595', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1596" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1663', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line">        <tt id="link-1664" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1664', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1665" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1596', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1597" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1597', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">        <tt id="link-1598" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1598', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1599" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1665', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1666" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1666', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">        <tt id="link-1667" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1667', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1668" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1599', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1600" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1600', 'PI', 'link-408');">PI</a></tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">        <tt id="link-1601" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1601', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1602" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1668', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1669" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1669', 'PI', 'link-408');">PI</a></tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">        <tt id="link-1670" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1670', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1671" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1602', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">        <tt id="link-1603" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1603', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1604" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1604', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line">        <tt id="link-1605" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1605', 'pi', 'link-1605');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1606" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1606', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line">        <tt id="link-1607" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1607', 'pi', 'link-1605');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1608" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1608', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line"> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1609" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1609', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1610" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1610', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1611" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1611', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line">        <tt id="link-1612" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1612', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1613" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1613', 'addprevious', 'link-1576');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1614" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1614', 'pi', 'link-1605');">pi</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1615" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1615', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;?TARGET TEXT?&gt;TAIL&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1616" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1616', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1617" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1617', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_root_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_root_pi-def"><a name="L1436"></a><tt class="py-lineno">1436</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_root_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_root_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi">test_addprevious_root_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_root_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_root_pi-expanded"><a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">        <tt id="link-1618" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1671', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt id="link-1672" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1672', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1673" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1673', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt id="link-1674" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1674', 'pi', 'link-1674');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1675" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1675', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt id="link-1676" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1676', 'pi', 'link-1674');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1677" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1677', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line"> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1678" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1678', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1679" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1679', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1680" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1680', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt id="link-1681" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1681', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1682" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1682', 'addprevious', 'link-1597');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1683" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1683', 'pi', 'link-1674');">pi</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1684" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1684', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;?TARGET TEXT?&gt;TAIL&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1685" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1685', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1686" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1686', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_root_pi"></a><div id="ETreeOnlyTestCase.test_addprevious_root_pi-def"><a name="L1476"></a><tt class="py-lineno">1476</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_root_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_root_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_pi">test_addprevious_root_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_root_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_root_pi-expanded"><a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">        <tt id="link-1687" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1618', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1619" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1687', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1688" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1619', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1620" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1688', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1689" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1620', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">        <tt id="link-1621" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1621', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1622" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1689', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt id="link-1690" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1690', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1691" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1622', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1623" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1623', 'PI', 'link-408');">PI</a></tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt id="link-1624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1624', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1625" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1691', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1692" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1692', 'PI', 'link-408');">PI</a></tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt id="link-1693" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1693', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1694" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1625', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt id="link-1626" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1626', 'pi', 'link-1605');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1627" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1627', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line">        <tt id="link-1628" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1628', 'pi', 'link-1605');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1629" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1629', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1630" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1630', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1631" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1631', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1632" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1632', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">        <tt id="link-1633" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1633', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1634" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1634', 'addprevious', 'link-1576');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1635" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1635', 'pi', 'link-1605');">pi</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1636" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1636', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?TARGET TEXT?&gt;\n&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1637" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1637', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1638', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_pi"></a><div id="ETreeOnlyTestCase.test_addnext_pi-def"><a name="L1449"></a><tt class="py-lineno">1449</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_pi-expanded"><a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line">        <tt id="link-1639" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1694', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt id="link-1695" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1695', 'pi', 'link-1674');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1696" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1696', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt id="link-1697" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1697', 'pi', 'link-1674');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1698" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1698', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1699" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1699', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1700" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1700', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1701" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1701', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">        <tt id="link-1702" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1702', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1703" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1703', 'addprevious', 'link-1597');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1704" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1704', 'pi', 'link-1674');">pi</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1705" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1705', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?TARGET TEXT?&gt;\n&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1706" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1706', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1707" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1707', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_pi"></a><div id="ETreeOnlyTestCase.test_addnext_pi-def"><a name="L1489"></a><tt class="py-lineno">1489</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_pi">test_addnext_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_pi-expanded"><a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">        <tt id="link-1708" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1639', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1640" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1708', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1709" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1640', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1641" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1709', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1710" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1641', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line">        <tt id="link-1642" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1642', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1643" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1710', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">        <tt id="link-1711" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1711', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1712" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1643', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1644" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1644', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line">        <tt id="link-1645" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1645', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1646" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1712', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1713" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1713', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">        <tt id="link-1714" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1714', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1715" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1646', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1647" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1647', 'PI', 'link-408');">PI</a></tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">        <tt id="link-1648" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1648', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1649" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1715', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1716" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1716', 'PI', 'link-408');">PI</a></tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt id="link-1717" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1717', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1718" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1649', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">        <tt id="link-1650" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1650', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1651" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1651', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line">        <tt id="link-1652" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1652', 'pi', 'link-1605');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1653" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1653', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line">        <tt id="link-1654" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1654', 'pi', 'link-1605');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1655" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1655', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1656" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1656', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1657" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1657', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1658', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt id="link-1659" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1659', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1660" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1660', 'addnext', 'link-1557');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1661" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1661', 'pi', 'link-1605');">pi</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1662" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1662', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;?TARGET TEXT?&gt;TAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1663" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1663', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1664" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1664', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root_pi"></a><div id="ETreeOnlyTestCase.test_addnext_root_pi-def"><a name="L1464"></a><tt class="py-lineno">1464</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_root_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root_pi-expanded"><a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">        <tt id="link-1665" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1718', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt id="link-1719" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1719', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1720" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1720', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt id="link-1721" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1721', 'pi', 'link-1674');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1722" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1722', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt id="link-1723" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1723', 'pi', 'link-1674');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1724" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1724', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line"> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1725" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1725', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1726" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1726', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1727" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1727', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">        <tt id="link-1728" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1728', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1729" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1729', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1730" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1730', 'pi', 'link-1674');">pi</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1731" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1731', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;?TARGET TEXT?&gt;TAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1732" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1732', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1733" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1733', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root_pi"></a><div id="ETreeOnlyTestCase.test_addnext_root_pi-def"><a name="L1504"></a><tt class="py-lineno">1504</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_pi">test_addnext_root_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_root_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root_pi-expanded"><a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt id="link-1734" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1665', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1666" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1734', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1735" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1666', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1667" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1735', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1736" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1667', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt id="link-1668" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1668', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1669" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1736', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt id="link-1737" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1737', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1738" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1669', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1670" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1670', 'PI', 'link-408');">PI</a></tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt id="link-1671" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1671', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1672" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1738', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1739" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1739', 'PI', 'link-408');">PI</a></tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">        <tt id="link-1740" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1740', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1741" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1672', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt id="link-1673" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1673', 'pi', 'link-1605');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1674" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1674', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">        <tt id="link-1675" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1675', 'pi', 'link-1605');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1676" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1676', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line"> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1677" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1677', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1678" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1678', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1679" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1679', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt id="link-1680" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1680', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1681" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1681', 'addnext', 'link-1557');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1682" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1682', 'pi', 'link-1605');">pi</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1683" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1683', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;\n&lt;?TARGET TEXT?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1684" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1684', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1685" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1685', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_comment"></a><div id="ETreeOnlyTestCase.test_addnext_comment-def"><a name="L1477"></a><tt class="py-lineno">1477</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment">test_addnext_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_comment-expanded"><a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt id="link-1686" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1741', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">        <tt id="link-1742" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1742', 'pi', 'link-1674');">pi</a></tt> <tt class="py-op">=</tt> <tt id="link-1743" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-1743', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">'TARGET'</tt><tt class="py-op">,</tt> <tt class="py-string">'TEXT'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt id="link-1744" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1744', 'pi', 'link-1674');">pi</a></tt><tt class="py-op">.</tt><tt id="link-1745" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1745', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1746" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1746', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1747" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1747', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1748" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1748', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">        <tt id="link-1749" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1749', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1750" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1750', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1751" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-1751', 'pi', 'link-1674');">pi</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1752" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1752', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;\n&lt;?TARGET TEXT?&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1753" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1753', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1754" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1754', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_comment"></a><div id="ETreeOnlyTestCase.test_addnext_comment-def"><a name="L1517"></a><tt class="py-lineno">1517</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_comment">test_addnext_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_comment-expanded"><a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">        <tt id="link-1755" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1686', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1687" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1755', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1756" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1687', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1688" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1756', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1757" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1688', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt id="link-1689" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1689', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1690" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1757', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt id="link-1758" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1758', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1759" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1690', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1691" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1691', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt id="link-1692" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1692', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1693" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1759', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1760" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1760', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">        <tt id="link-1761" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1761', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1762" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1693', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1694" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1694', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt id="link-1695" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1695', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1696" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1762', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1763', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt id="link-1764" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1764', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1765" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1696', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt id="link-1697" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1697', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1698" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1698', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt id="link-1699" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1699', 'comment', 'link-1699');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1700" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1700', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">        <tt id="link-1701" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1701', 'comment', 'link-1699');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1702" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1702', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line"> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1703" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1703', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1704" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1704', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1705" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1705', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">        <tt id="link-1706" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1706', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1707" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1707', 'addnext', 'link-1557');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1708" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1708', 'comment', 'link-1699');">comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1709" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1709', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;!--TEXT --&gt;TAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1710" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1710', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1711" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1711', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addnext_root_comment"></a><div id="ETreeOnlyTestCase.test_addnext_root_comment-def"><a name="L1492"></a><tt class="py-lineno">1492</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addnext_root_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root_comment-expanded"><a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt id="link-1712" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1765', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt id="link-1766" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1766', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1767" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1767', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt id="link-1768" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1768', 'comment', 'link-1768');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1769" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1769', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt id="link-1770" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1770', 'comment', 'link-1768');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1771" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1771', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1772" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1772', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1773" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1773', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1774" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1774', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt id="link-1775" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1775', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1776" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1776', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1777" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1777', 'comment', 'link-1768');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1778" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1778', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;!--TEXT --&gt;TAIL&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1779" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1779', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1780" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1780', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addnext_root_comment"></a><div id="ETreeOnlyTestCase.test_addnext_root_comment-def"><a name="L1532"></a><tt class="py-lineno">1532</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addnext_root_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addnext_root_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addnext_root_comment">test_addnext_root_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addnext_root_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addnext_root_comment-expanded"><a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt id="link-1781" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1712', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1713" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1781', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1782" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1713', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1714" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1782', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1783" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1714', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt id="link-1715" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1715', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1716" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1783', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line">        <tt id="link-1784" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1784', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1785" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1716', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1717" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1717', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt id="link-1718" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1718', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1719" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1785', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1786" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1786', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">        <tt id="link-1787" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1787', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1788" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1719', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt id="link-1720" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1720', 'comment', 'link-1699');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1721" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1721', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt id="link-1722" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1722', 'comment', 'link-1699');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1723" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1723', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line"> </tt>
-<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1724" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1724', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1725" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1725', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1726" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1726', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt id="link-1727" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1727', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1728" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1728', 'addnext', 'link-1557');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1729" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1729', 'comment', 'link-1699');">comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1730" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1730', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;\n&lt;!--TEXT --&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1731" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1731', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1732" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1732', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_comment-def"><a name="L1505"></a><tt class="py-lineno">1505</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_comment-expanded"><a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt id="link-1733" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1788', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt id="link-1789" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1789', 'comment', 'link-1768');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1790" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1790', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt id="link-1791" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1791', 'comment', 'link-1768');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1792" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1792', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1793" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1793', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1794" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1794', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1795" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1795', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">        <tt id="link-1796" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1796', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1797" class="py-name"><a title="lxml.etree._Element.addnext" class="py-name" href="#" onclick="return doclink('link-1797', 'addnext', 'link-1578');">addnext</a></tt><tt class="py-op">(</tt><tt id="link-1798" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1798', 'comment', 'link-1768');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1799" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1799', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;\n&lt;!--TEXT --&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1800" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1800', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1801', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_comment-def"><a name="L1545"></a><tt class="py-lineno">1545</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_comment">test_addprevious_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_comment-expanded"><a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt id="link-1802" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1733', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1734" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1802', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1803" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1734', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1735" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1803', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1804" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1735', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">        <tt id="link-1736" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1736', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1737" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1804', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt id="link-1805" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1805', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1806" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1737', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1738" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1738', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line">        <tt id="link-1739" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1739', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1740" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1806', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1807" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1807', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt id="link-1808" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1808', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1809" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1740', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1741" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1741', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt id="link-1742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1742', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1743" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1809', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1810" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1810', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt id="link-1811" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1811', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1812" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1743', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt id="link-1744" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1744', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1745" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1745', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">        <tt id="link-1746" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1746', 'comment', 'link-1699');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1747" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1747', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt id="link-1748" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1748', 'comment', 'link-1699');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1749" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1749', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line"> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1750" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1750', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1751" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1751', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1752" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1752', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt id="link-1753" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1753', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1754" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1754', 'addprevious', 'link-1576');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1755" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1755', 'comment', 'link-1699');">comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1756" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1756', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;!--TEXT --&gt;TAIL&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1757" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1757', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1758" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1758', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_addprevious_root_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_root_comment-def"><a name="L1520"></a><tt class="py-lineno">1520</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_root_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_root_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_root_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_addprevious_root_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_root_comment-expanded"><a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">        <tt id="link-1759" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1812', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">        <tt id="link-1813" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1813', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-1814" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1814', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">        <tt id="link-1815" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1815', 'comment', 'link-1768');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1816" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1816', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt id="link-1817" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1817', 'comment', 'link-1768');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1818" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1818', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line"> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1819" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1819', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1820" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1820', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1821" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1821', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt id="link-1822" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1822', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1823" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1823', 'addprevious', 'link-1597');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1824" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1824', 'comment', 'link-1768');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1825" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1825', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;!--TEXT --&gt;TAIL&lt;a&gt;&lt;/a&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1826" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1826', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1827" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1827', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_addprevious_root_comment"></a><div id="ETreeOnlyTestCase.test_addprevious_root_comment-def"><a name="L1560"></a><tt class="py-lineno">1560</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_addprevious_root_comment-toggle" onclick="return toggle('ETreeOnlyTestCase.test_addprevious_root_comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_addprevious_root_comment">test_addprevious_root_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_addprevious_root_comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_addprevious_root_comment-expanded"><a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">        <tt id="link-1828" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1759', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1760" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1828', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1829" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1760', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1761" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1829', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1830" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1761', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt id="link-1762" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1762', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1763" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1830', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt id="link-1831" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1831', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1832" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1763', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1764" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1764', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt id="link-1765" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1765', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1766" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1832', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1833" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1833', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt id="link-1834" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1834', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1835" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1766', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt id="link-1767" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1767', 'comment', 'link-1699');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1768" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1768', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt id="link-1769" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1769', 'comment', 'link-1699');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1770" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1770', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line"> </tt>
-<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1771" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1771', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1772" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1772', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1773" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1773', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-1774" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1774', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1775" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1775', 'addprevious', 'link-1576');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1776" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1776', 'comment', 'link-1699');">comment</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1777" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1777', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--TEXT --&gt;\n&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1778" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1778', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1779" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1779', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">    <tt class="py-comment"># ET's Elements have items() and key(), but not values()</tt> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_values"></a><div id="ETreeOnlyTestCase.test_attribute_values-def"><a name="L1534"></a><tt class="py-lineno">1534</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_values-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_values');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_values-expanded"><a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">        <tt id="link-1780" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1835', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt id="link-1836" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1836', 'comment', 'link-1768');">comment</a></tt> <tt class="py-op">=</tt> <tt id="link-1837" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1837', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">'TEXT '</tt><tt class="py-op">)</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt id="link-1838" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1838', 'comment', 'link-1768');">comment</a></tt><tt class="py-op">.</tt><tt id="link-1839" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-1839', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TAIL"</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1840" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1840', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1841" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1841', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1842" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1842', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">        <tt id="link-1843" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1843', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1844" class="py-name"><a title="lxml.etree._Element.addprevious" class="py-name" href="#" onclick="return doclink('link-1844', 'addprevious', 'link-1597');">addprevious</a></tt><tt class="py-op">(</tt><tt id="link-1845" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-1845', 'comment', 'link-1768');">comment</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1846" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1846', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--TEXT --&gt;\n&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1847" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1847', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-1848" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1848', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">    <tt class="py-comment"># ET's Elements have items() and key(), but not values()</tt> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_values"></a><div id="ETreeOnlyTestCase.test_attribute_values-def"><a name="L1574"></a><tt class="py-lineno">1574</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_values-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_values');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_values">test_attribute_values</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_values-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_values-expanded"><a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">        <tt id="link-1849" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1780', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1781" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1849', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1850" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1781', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1782" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1850', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1851" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1782', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">         </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt id="link-1783" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1783', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1784" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1851', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">         </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">        <tt id="link-1852" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1852', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1853" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1784', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1785" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1785', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt id="link-1786" class="py-name" targets="Method lxml.etree._Attrib.values()=lxml.etree._Attrib-class.html#values,Method lxml.etree._Element.values()=lxml.etree._Element-class.html#values,Method lxml.etree._IDDict.values()=lxml.etree._IDDict-class.html#values"><a title="lxml.etree._Attrib.values
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1853', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1854" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1854', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc alpha="Alpha" beta="Beta" gamma="Gamma"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">        <tt id="link-1855" class="py-name" targets="Method lxml.etree._Attrib.values()=lxml.etree._Attrib-class.html#values,Method lxml.etree._Element.values()=lxml.etree._Element-class.html#values,Method lxml.etree._IDDict.values()=lxml.etree._IDDict-class.html#values"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1786', 'values', 'link-1786');">values</a></tt> <tt class="py-op">=</tt> <tt id="link-1787" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1787', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1788" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1855', 'values', 'link-1855');">values</a></tt> <tt class="py-op">=</tt> <tt id="link-1856" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1856', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1857" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1788', 'values', 'link-1786');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-1789" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1857', 'values', 'link-1855');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">        <tt id="link-1858" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1789', 'values', 'link-1786');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1790" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1858', 'values', 'link-1855');">values</a></tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Alpha'</tt><tt class="py-op">,</tt> <tt class="py-string">'Beta'</tt><tt class="py-op">,</tt> <tt class="py-string">'Gamma'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-1859" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1790', 'values', 'link-1786');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line"> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">    <tt class="py-comment"># gives error in ElementTree</tt> </tt>
-<a name="ETreeOnlyTestCase.test_comment_empty"></a><div id="ETreeOnlyTestCase.test_comment_empty-def"><a name="L1543"></a><tt class="py-lineno">1543</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty">test_comment_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_empty-expanded"><a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">        <tt id="link-1791" class="py-name"><a title="lxml.etree.Element
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-1859', 'values', 'link-1855');">values</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line"> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">    <tt class="py-comment"># gives error in ElementTree</tt> </tt>
+<a name="ETreeOnlyTestCase.test_comment_empty"></a><div id="ETreeOnlyTestCase.test_comment_empty-def"><a name="L1583"></a><tt class="py-lineno">1583</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_empty">test_comment_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_empty-expanded"><a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt id="link-1860" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1791', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1792" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1860', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1861" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1792', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1793" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1861', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1862" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1793', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">        <tt id="link-1794" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1794', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1795" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1862', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt id="link-1863" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1863', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1864" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1795', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1796" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1796', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line"> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1797" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1864', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1865" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1865', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line"> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1866" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1797', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1798" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1798', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-1799" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1799', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">            <tt id="link-1800" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1800', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!----&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1801" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1801', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line"> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree ignores comments</tt> </tt>
-<a name="ETreeOnlyTestCase.test_comment_parse_empty"></a><div id="ETreeOnlyTestCase.test_comment_parse_empty-def"><a name="L1554"></a><tt class="py-lineno">1554</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_parse_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_parse_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty">test_comment_parse_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_parse_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_parse_empty-expanded"><a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">        <tt id="link-1802" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1866', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1867" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1867', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-1868" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1868', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">            <tt id="link-1869" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1869', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!----&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1870" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-1870', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree ignores comments</tt> </tt>
+<a name="ETreeOnlyTestCase.test_comment_parse_empty"></a><div id="ETreeOnlyTestCase.test_comment_parse_empty-def"><a name="L1594"></a><tt class="py-lineno">1594</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_parse_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_parse_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_parse_empty">test_comment_parse_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_parse_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_parse_empty-expanded"><a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">        <tt id="link-1871" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1802', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1803" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1871', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1872" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1803', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1804" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1872', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1873" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1804', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt id="link-1805" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1805', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1806" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1873', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">        <tt id="link-1874" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1874', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1875" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1806', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1807" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1807', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">        <tt id="link-1808" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1808', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1809" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1809', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;!----&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1810" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1810', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1811" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1875', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1876" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1876', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line"> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">        <tt id="link-1877" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1877', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-1878" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1878', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;!----&gt;&lt;c/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-1879" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1879', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1880" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1811', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1812" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1812', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">            <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1813" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1880', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1881" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1881', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">            <tt class="py-string">''</tt><tt class="py-op">,</tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1882" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1813', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line">            <tt id="link-1814" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1814', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">            <tt id="link-1815" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1815', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line"> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree ignores comments</tt> </tt>
-<a name="ETreeOnlyTestCase.test_comment_no_proxy_yet"></a><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-def"><a name="L1570"></a><tt class="py-lineno">1570</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_no_proxy_yet-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_no_proxy_yet');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet">test_comment_no_proxy_yet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-expanded"><a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">        <tt id="link-1816" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1882', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">            <tt id="link-1883" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-1883', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">            <tt id="link-1884" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1884', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">    <tt class="py-comment"># ElementTree ignores comments</tt> </tt>
+<a name="ETreeOnlyTestCase.test_comment_no_proxy_yet"></a><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-def"><a name="L1610"></a><tt class="py-lineno">1610</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_no_proxy_yet-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_no_proxy_yet');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_no_proxy_yet">test_comment_no_proxy_yet</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_no_proxy_yet-expanded"><a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt id="link-1885" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1816', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1817" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1885', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1886" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1817', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1818" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1886', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1818', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">         </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;!-- hoi --&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1819" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1887', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">         </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;!-- hoi --&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1888" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1819', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1820" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1820', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">            <tt class="py-string">' hoi '</tt><tt class="py-op">,</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1821" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1888', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1889" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1889', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">            <tt class="py-string">' hoi '</tt><tt class="py-op">,</tt> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1890" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1821', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line"> </tt>
-<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">    <tt class="py-comment"># does not raise an exception in ElementTree</tt> </tt>
-<a name="ETreeOnlyTestCase.test_comment_immutable"></a><div id="ETreeOnlyTestCase.test_comment_immutable-def"><a name="L1581"></a><tt class="py-lineno">1581</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_immutable-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_immutable');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable">test_comment_immutable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_comment_immutable-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_immutable-expanded"><a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">        <tt id="link-1822" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1890', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">    <tt class="py-comment"># does not raise an exception in ElementTree</tt> </tt>
+<a name="ETreeOnlyTestCase.test_comment_immutable"></a><div id="ETreeOnlyTestCase.test_comment_immutable-def"><a name="L1621"></a><tt class="py-lineno">1621</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_comment_immutable-toggle" onclick="return toggle('ETreeOnlyTestCase.test_comment_immutable');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_comment_immutable">test_comment_immutable</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_comment_immutable-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_comment_immutable-expanded"><a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line">        <tt id="link-1891" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1822', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1823" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1891', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1892" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1823', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1824" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1892', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1893" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1824', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">        <tt id="link-1825" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1825', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1826" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1893', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt id="link-1894" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1894', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1895" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1826', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1827" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1827', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1828" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1828', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1829" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1895', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1896" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1896', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line"> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1897" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-1897', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1898" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1829', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'myel'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line"> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1830" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1830', 'append', 'link-613');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1831" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1831', 'insert', 'link-7');">insert</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1832" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1832', 'set', 'link-233');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"myattr"</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">    <tt class="py-comment"># test passing 'None' to dump</tt> </tt>
-<a name="ETreeOnlyTestCase.test_dump_none"></a><div id="ETreeOnlyTestCase.test_dump_none-def"><a name="L1593"></a><tt class="py-lineno">1593</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dump_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dump_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_dump_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dump_none-expanded"><a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1833" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1898', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'myel'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1899" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1899', 'append', 'link-613');">append</a></tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1900" class="py-name"><a title="lxml.etree._Element.insert" class="py-name" href="#" onclick="return doclink('link-1900', 'insert', 'link-7');">insert</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1901" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-1901', 'set', 'link-233');">set</a></tt><tt class="py-op">,</tt> <tt class="py-string">"myattr"</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line"> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">    <tt class="py-comment"># test passing 'None' to dump</tt> </tt>
+<a name="ETreeOnlyTestCase.test_dump_none"></a><div id="ETreeOnlyTestCase.test_dump_none-def"><a name="L1633"></a><tt class="py-lineno">1633</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dump_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dump_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dump_none">test_dump_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_dump_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dump_none-expanded"><a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1902" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1833', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1834" class="py-name" targets="Function lxml.etree.dump()=lxml.etree-module.html#dump,Function lxml.objectify.dump()=lxml.objectify-module.html#dump"><a title="lxml.etree.dump
-lxml.objectify.dump" class="py-name" href="#" onclick="return doclink('link-1834', 'dump', 'link-1834');">dump</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_prefix"></a><div id="ETreeOnlyTestCase.test_prefix-def"><a name="L1596"></a><tt class="py-lineno">1596</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_prefix-toggle" onclick="return toggle('ETreeOnlyTestCase.test_prefix');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_prefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_prefix-expanded"><a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">        <tt id="link-1835" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1902', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1903" class="py-name" targets="Function lxml.etree.dump()=lxml.etree-module.html#dump,Function lxml.objectify.dump()=lxml.objectify-module.html#dump"><a title="lxml.etree.dump
+lxml.objectify.dump" class="py-name" href="#" onclick="return doclink('link-1903', 'dump', 'link-1903');">dump</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_prefix"></a><div id="ETreeOnlyTestCase.test_prefix-def"><a name="L1636"></a><tt class="py-lineno">1636</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_prefix-toggle" onclick="return toggle('ETreeOnlyTestCase.test_prefix');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix">test_prefix</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_prefix-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_prefix-expanded"><a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">        <tt id="link-1904" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1835', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1836" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1904', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1905" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1836', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1837" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1905', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1906" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1837', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">         </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:foo="http://www.infrae.com/ns/1"&gt;&lt;foo:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1838" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1906', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">         </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:foo="http://www.infrae.com/ns/1"&gt;&lt;foo:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1907" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1838', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1839" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1839', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1840" class="py-name" targets="Variable lxml.etree._Element.prefix=lxml.etree._Element-class.html#prefix"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-1840', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1841" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-1841', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_prefix_default_ns"></a><div id="ETreeOnlyTestCase.test_prefix_default_ns-def"><a name="L1609"></a><tt class="py-lineno">1609</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_prefix_default_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_prefix_default_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_prefix_default_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_prefix_default_ns-expanded"><a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt id="link-1842" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1907', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1908" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1908', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1909" class="py-name" targets="Variable lxml.etree._Element.prefix=lxml.etree._Element-class.html#prefix"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-1909', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1910" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-1910', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_prefix_default_ns"></a><div id="ETreeOnlyTestCase.test_prefix_default_ns-def"><a name="L1649"></a><tt class="py-lineno">1649</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_prefix_default_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_prefix_default_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_prefix_default_ns">test_prefix_default_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_prefix_default_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_prefix_default_ns-expanded"><a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">        <tt id="link-1911" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1842', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1843" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1911', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1912" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1843', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1844" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1912', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1913" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1844', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">         </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://www.infrae.com/ns/1"&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1845" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1913', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">         </tt>
+<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://www.infrae.com/ns/1"&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt class="py-name">doc</tt> <tt class="py-op">=</tt> <tt id="link-1914" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1845', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1846" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1846', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1847" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-1847', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1848" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-1848', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getparent"></a><div id="ETreeOnlyTestCase.test_getparent-def"><a name="L1622"></a><tt class="py-lineno">1622</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getparent-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getparent');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getparent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getparent-expanded"><a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt id="link-1849" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-1914', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt class="py-name">doc</tt><tt class="py-op">.</tt><tt id="link-1915" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-1915', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1916" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-1916', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1917" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-1917', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getparent"></a><div id="ETreeOnlyTestCase.test_getparent-def"><a name="L1662"></a><tt class="py-lineno">1662</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getparent-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getparent');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getparent">test_getparent</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getparent-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getparent-expanded"><a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">        <tt id="link-1918" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1849', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1850" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1918', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1919" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1850', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1851" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1919', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1920" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1851', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt id="link-1852" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1852', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1853" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1920', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt id="link-1921" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1921', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1922" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1853', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1854" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1854', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1855" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1922', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1923" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1923', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line"> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1924" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1855', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1856" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1856', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1857" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1857', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1858" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1858', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1859" class="py-name" targets="Method lxml.etree._Element.getparent()=lxml.etree._Element-class.html#getparent,Method lxml.etree._ElementStringResult.getparent()=lxml.etree._ElementStringResult-class.html#getparent,Method lxml.etree._ElementUnicodeResult.getparent()=lxml.etree._ElementUnicodeResult-class.html#getparent"><a title="lxml.etree._Element.getparent
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1924', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1925" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1925', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1926" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1926', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1927" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1927', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1928" class="py-name" targets="Method lxml.etree._Element.getparent()=lxml.etree._Element-class.html#getparent,Method lxml.etree._ElementStringResult.getparent()=lxml.etree._ElementStringResult-class.html#getparent,Method lxml.etree._ElementUnicodeResult.getparent()=lxml.etree._ElementUnicodeResult-class.html#getparent"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1859', 'getparent', 'link-1859');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1860" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1928', 'getparent', 'link-1928');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1929" class="py-name"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1860', 'getparent', 'link-1859');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1861" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1929', 'getparent', 'link-1928');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1930" class="py-name"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1861', 'getparent', 'link-1859');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1862" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1930', 'getparent', 'link-1928');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1931" class="py-name"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1862', 'getparent', 'link-1859');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1863" class="py-name"><a title="lxml.etree._Element.getparent
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1931', 'getparent', 'link-1928');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1932" class="py-name"><a title="lxml.etree._Element.getparent
 lxml.etree._ElementStringResult.getparent
-lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1863', 'getparent', 'link-1859');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren"></a><div id="ETreeOnlyTestCase.test_iterchildren-def"><a name="L1643"></a><tt class="py-lineno">1643</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren-expanded"><a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">        <tt id="link-1864" class="py-name"><a title="lxml.etree.XML
+lxml.etree._ElementUnicodeResult.getparent" class="py-name" href="#" onclick="return doclink('link-1932', 'getparent', 'link-1928');">getparent</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren"></a><div id="ETreeOnlyTestCase.test_iterchildren-def"><a name="L1683"></a><tt class="py-lineno">1683</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren">test_iterchildren</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren-expanded"><a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">        <tt id="link-1933" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1864', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1865" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1933', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1934" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1865', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1866" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1934', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1866', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">         </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt id="link-1867" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1867', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1868" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1935', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">         </tt>
+<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">        <tt id="link-1936" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1936', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1937" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1868', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1869" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1869', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1870" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1870', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1871" class="py-name" targets="Method lxml.etree._Element.iterchildren()=lxml.etree._Element-class.html#iterchildren"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1871', 'iterchildren', 'link-1871');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1872" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1872', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1873" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1937', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1938" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1938', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1939" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1939', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1940" class="py-name" targets="Method lxml.etree._Element.iterchildren()=lxml.etree._Element-class.html#iterchildren"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1940', 'iterchildren', 'link-1940');">iterchildren</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1941" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1941', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1942" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1873', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_reversed-def"><a name="L1652"></a><tt class="py-lineno">1652</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_reversed-expanded"><a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt id="link-1874" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1942', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'one'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_reversed-def"><a name="L1692"></a><tt class="py-lineno">1692</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_reversed">test_iterchildren_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_reversed-expanded"><a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt id="link-1943" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1874', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1875" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1943', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1944" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1875', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1876" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1944', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1945" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1876', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">         </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt id="link-1877" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1877', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1878" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1945', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">         </tt>
+<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">        <tt id="link-1946" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1946', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1947" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1878', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1879" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1879', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1880" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1880', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1881" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1881', 'iterchildren', 'link-1871');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1882" class="py-name" targets="Function lxml.tests.test_elementtree.reversed()=lxml.tests.test_elementtree-module.html#reversed"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-1882', 'reversed', 'link-1882');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1883" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1883', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1884" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1947', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1948" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1948', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1949" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1949', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1950" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1950', 'iterchildren', 'link-1940');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1951" class="py-name" targets="Function lxml.tests.test_elementtree.reversed()=lxml.tests.test_elementtree-module.html#reversed"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-1951', 'reversed', 'link-1951');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1952" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1952', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1953" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1884', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag-def"><a name="L1661"></a><tt class="py-lineno">1661</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag-expanded"><a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line">        <tt id="link-1885" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1953', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'three'</tt><tt class="py-op">,</tt> <tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'one'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag-def"><a name="L1701"></a><tt class="py-lineno">1701</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag">test_iterchildren_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag-expanded"><a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line">        <tt id="link-1954" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1885', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1886" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1954', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1955" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1886', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1887" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1955', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1956" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1887', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line">         </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt id="link-1888" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1888', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1889" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1956', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">         </tt>
+<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">        <tt id="link-1957" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1957', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1958" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1889', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1890" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1890', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1891" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1891', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1892" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1892', 'iterchildren', 'link-1871');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1893" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1958', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1959" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1959', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1960" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1960', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1961" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1961', 'iterchildren', 'link-1940');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1962" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1893', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1894" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1894', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1895" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1962', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1963" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1963', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1964" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1895', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-def"><a name="L1670"></a><tt class="py-lineno">1670</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-expanded"><a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line">        <tt id="link-1896" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1964', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-def"><a name="L1710"></a><tt class="py-lineno">1710</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_reversed">test_iterchildren_tag_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_reversed-expanded"><a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line">        <tt id="link-1965" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1896', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1897" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1965', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1966" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1897', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1898" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1966', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1967" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1898', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line">         </tt>
-<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt id="link-1899" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1899', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1900" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1967', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">         </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line">        <tt id="link-1968" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1968', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1969" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1900', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1901" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1901', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1902" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1902', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1903" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1903', 'iterchildren', 'link-1871');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1904" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-1904', 'reversed', 'link-1882');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-1905" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1969', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1970" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1970', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1971" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1971', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1972" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1972', 'iterchildren', 'link-1940');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1973" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-1973', 'reversed', 'link-1951');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-1974" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1905', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1906" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1906', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1907" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1974', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'two'</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1975" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1975', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1976" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1907', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-string">'Two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-def"><a name="L1679"></a><tt class="py-lineno">1679</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-expanded"><a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">        <tt id="link-1908" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1976', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-string">'Two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-def"><a name="L1719"></a><tt class="py-lineno">1719</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple">test_iterchildren_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple-expanded"><a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">        <tt id="link-1977" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1908', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1909" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1977', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1978" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1909', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1910" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1978', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1979" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1910', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"> </tt>
-<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line">        <tt id="link-1911" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1911', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1912" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1979', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"> </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">        <tt id="link-1980" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1980', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1981" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1912', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1913" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1913', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1914" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1914', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1915" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1915', 'iterchildren', 'link-1871');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1916" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1981', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1982" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1982', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1983" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1983', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1984', 'iterchildren', 'link-1940');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1985" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1916', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1917" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1917', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1918" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1985', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1986" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1986', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1987" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1918', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-def"><a name="L1688"></a><tt class="py-lineno">1688</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-expanded"><a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">        <tt id="link-1919" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1987', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-string">'Two'</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed"></a><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-def"><a name="L1728"></a><tt class="py-lineno">1728</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterchildren_tag_multiple_reversed">test_iterchildren_tag_multiple_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterchildren_tag_multiple_reversed-expanded"><a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">        <tt id="link-1988" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1919', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1920" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1988', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1989" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1920', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1921" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1989', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1990" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1921', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line"> </tt>
-<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line">        <tt id="link-1922" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1922', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1923" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1990', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line"> </tt>
+<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">        <tt id="link-1991" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1991', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-1992" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1923', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1924" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1924', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1925" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1925', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1926" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1926', 'iterchildren', 'link-1871');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1927" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-1927', 'reversed', 'link-1882');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-1928" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-1992', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-1993" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1993', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;doc&gt;&lt;one/&gt;&lt;two&gt;Two&lt;/two&gt;Hm&lt;two&gt;Bla&lt;/two&gt;&lt;three/&gt;&lt;/doc&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-1994" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-1994', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-1995" class="py-name"><a title="lxml.etree._Element.iterchildren" class="py-name" href="#" onclick="return doclink('link-1995', 'iterchildren', 'link-1940');">iterchildren</a></tt><tt class="py-op">(</tt><tt id="link-1996" class="py-name"><a title="lxml.tests.test_elementtree.reversed" class="py-name" href="#" onclick="return doclink('link-1996', 'reversed', 'link-1951');">reversed</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-1997" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1928', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1929" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1929', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1930" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1997', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'two'</tt><tt class="py-op">,</tt> <tt class="py-string">'three'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">            <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-1998" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1998', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-1999" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1930', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-string">'Two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors"></a><div id="ETreeOnlyTestCase.test_iterancestors-def"><a name="L1697"></a><tt class="py-lineno">1697</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterancestors-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors-expanded"><a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt id="link-1931" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-1999', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">'Bla'</tt><tt class="py-op">,</tt> <tt class="py-string">'Two'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors"></a><div id="ETreeOnlyTestCase.test_iterancestors-def"><a name="L1737"></a><tt class="py-lineno">1737</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors">test_iterancestors</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterancestors-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors-expanded"><a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">        <tt id="link-2000" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1931', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1932" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2000', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2001" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1932', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1933" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2001', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2002" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1933', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">        <tt id="link-1934" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1934', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1935" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2002', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line">        <tt id="link-2003" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2003', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2004" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1935', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1936" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1936', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1937" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2004', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2005" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2005', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line"> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2006" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1937', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1938" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1938', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1939" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1939', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1940" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1940', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1941" class="py-name" targets="Method lxml.etree._Element.iterancestors()=lxml.etree._Element-class.html#iterancestors"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1941', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-1942" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1942', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-1943" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1943', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1944" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1944', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors_tag"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag-def"><a name="L1718"></a><tt class="py-lineno">1718</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterancestors_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors_tag-expanded"><a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line">        <tt id="link-1945" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2006', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2007" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2007', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2008" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2008', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2009" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2009', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2010" class="py-name" targets="Method lxml.etree._Element.iterancestors()=lxml.etree._Element-class.html#iterancestors"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2010', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2011" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2011', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2012" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2012', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2013" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2013', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors_tag"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag-def"><a name="L1758"></a><tt class="py-lineno">1758</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag">test_iterancestors_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterancestors_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors_tag-expanded"><a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line">        <tt id="link-2014" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1945', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1946" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2014', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2015" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1946', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1947" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2015', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2016" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1947', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">        <tt id="link-1948" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1948', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1949" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2016', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">        <tt id="link-2017" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2017', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2018" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1949', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1950" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1950', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line"> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1951" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2018', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2019" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2019', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"> </tt>
+<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2020" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1951', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1952" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1952', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1953" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1953', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1954" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1954', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1955" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1955', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-1956" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2020', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2021" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2021', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2022" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2022', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2023" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2023', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2024" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2024', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2025" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1956', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1957" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1957', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-1958" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2025', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2026" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2026', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2027" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1958', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterancestors_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-def"><a name="L1733"></a><tt class="py-lineno">1733</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-expanded"><a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt id="link-1959" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2027', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterancestors_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-def"><a name="L1773"></a><tt class="py-lineno">1773</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterancestors_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterancestors_tag_multiple">test_iterancestors_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterancestors_tag_multiple-expanded"><a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt id="link-2028" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1959', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1960" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2028', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2029" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1960', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1961" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2029', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2030" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1961', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">        <tt id="link-1962" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1962', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1963" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2030', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">        <tt id="link-2031" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2031', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2032" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1963', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1964" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1964', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1965" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2032', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2033" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2033', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line"> </tt>
+<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2034" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1965', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1966" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1966', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1967" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1967', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1968" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1968', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1969" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1969', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-1970" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2034', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2035" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2035', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2036" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2036', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2037" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2037', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2038" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2038', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2039" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1970', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1971" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1971', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-1972" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2039', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2040" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2040', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2041" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1972', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1973" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1973', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-1974" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2041', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'w'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2042" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2042', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2043" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1974', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1975" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1975', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-1976" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2043', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'x'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2044" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2044', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2045" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1976', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1977" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-1977', 'iterancestors', 'link-1941');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-1978" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2045', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2046" class="py-name"><a title="lxml.etree._Element.iterancestors" class="py-name" href="#" onclick="return doclink('link-2046', 'iterancestors', 'link-2010');">iterancestors</a></tt><tt class="py-op">(</tt><tt id="link-2047" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-1978', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants"></a><div id="ETreeOnlyTestCase.test_iterdescendants-def"><a name="L1757"></a><tt class="py-lineno">1757</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterdescendants-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants-expanded"><a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line">        <tt id="link-1979" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2047', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants"></a><div id="ETreeOnlyTestCase.test_iterdescendants-def"><a name="L1797"></a><tt class="py-lineno">1797</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants">test_iterdescendants</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterdescendants-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants-expanded"><a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">        <tt id="link-2048" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1979', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1980" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2048', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2049" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1980', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1981" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2049', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2050" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1981', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line">        <tt id="link-1982" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1982', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1983" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2050', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line">        <tt id="link-2051" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2051', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2052" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1983', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1984" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1984', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line"> </tt>
-<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1985" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2052', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2053" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2053', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line"> </tt>
+<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2054" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1985', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1986" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1986', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-1987" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1987', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-1988" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1988', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-1989" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1989', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line"> </tt>
-<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-1990" class="py-name" targets="Method lxml.etree._Element.iterdescendants()=lxml.etree._Element-class.html#iterdescendants"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-1990', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-1991" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-1991', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants_tag"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag-def"><a name="L1774"></a><tt class="py-lineno">1774</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterdescendants_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants_tag-expanded"><a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">        <tt id="link-1992" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2054', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2055" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2055', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2056" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2056', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2057" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2057', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2058" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2058', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line"> </tt>
+<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2059" class="py-name" targets="Method lxml.etree._Element.iterdescendants()=lxml.etree._Element-class.html#iterdescendants"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2059', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2060" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2060', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants_tag"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag-def"><a name="L1814"></a><tt class="py-lineno">1814</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag">test_iterdescendants_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterdescendants_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants_tag-expanded"><a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt id="link-2061" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1992', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1993" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2061', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2062" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1993', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1994" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2062', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2063" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1994', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line">        <tt id="link-1995" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1995', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1996" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2063', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">        <tt id="link-2064" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2064', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2065" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1996', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1997" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1997', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line"> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-1998" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2065', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2066" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2066', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line"> </tt>
+<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2067" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1998', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-1999" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-1999', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2000" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2000', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2001" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2001', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2002" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2002', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line"> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2003" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2003', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2004" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2004', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2005" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2005', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2006" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2006', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_iterdescendants_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-def"><a name="L1795"></a><tt class="py-lineno">1795</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-expanded"><a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line">        <tt id="link-2007" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2067', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2068" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2068', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2069" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2069', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2070" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2070', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2071" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2071', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line"> </tt>
+<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2072" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2072', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2073" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2073', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2074" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2074', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2075" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2075', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_iterdescendants_tag_multiple"></a><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-def"><a name="L1835"></a><tt class="py-lineno">1835</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_iterdescendants_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_iterdescendants_tag_multiple">test_iterdescendants_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_iterdescendants_tag_multiple-expanded"><a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line">        <tt id="link-2076" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2007', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2008" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2076', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2077" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2008', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2009" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2077', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2078" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2009', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line">        <tt id="link-2010" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2010', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2011" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2078', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1837"></a><tt class="py-lineno">1837</tt>  <tt class="py-line">        <tt id="link-2079" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2079', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2080" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2011', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2012" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2012', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line"> </tt>
-<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2013" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2080', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2081', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line"> </tt>
+<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2082" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2013', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2014" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2014', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2015" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2015', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2016" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2016', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2017" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2017', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line"> </tt>
-<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2018" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2018', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2019" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2082', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2083" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2083', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2084', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2085" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2085', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2086', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line"> </tt>
+<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2087" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2087', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2088" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2019', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2020" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2020', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2021" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2021', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2022" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2088', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line">        <tt class="py-name">a2</tt> <tt class="py-op">=</tt> <tt id="link-2089" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2089', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2090" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2090', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2091" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2022', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2023" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2023', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2024" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2091', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1854"></a><tt class="py-lineno">1854</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2092" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2092', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2093" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2024', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2025" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2025', 'iterdescendants', 'link-1990');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2026" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2093', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">a2</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2094" class="py-name"><a title="lxml.etree._Element.iterdescendants" class="py-name" href="#" onclick="return doclink('link-2094', 'iterdescendants', 'link-2059');">iterdescendants</a></tt><tt class="py-op">(</tt><tt id="link-2095" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2026', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getroottree"></a><div id="ETreeOnlyTestCase.test_getroottree-def"><a name="L1819"></a><tt class="py-lineno">1819</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getroottree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getroottree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getroottree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getroottree-expanded"><a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt id="link-2027" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2095', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getroottree"></a><div id="ETreeOnlyTestCase.test_getroottree-def"><a name="L1859"></a><tt class="py-lineno">1859</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getroottree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getroottree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getroottree">test_getroottree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getroottree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getroottree-expanded"><a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line">        <tt id="link-2096" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2027', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2028" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2096', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2097" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2028', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2029" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2097', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2098" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2029', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">        <tt id="link-2030" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2030', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2031" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2098', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">        <tt id="link-2099" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2099', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2100" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2031', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2032" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2032', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line"> </tt>
-<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2033" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2100', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2101" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2101', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line"> </tt>
+<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2102" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2033', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2034" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2034', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2035" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2035', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2036" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2036', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2037" class="py-name" targets="Method lxml.etree._Element.getroottree()=lxml.etree._Element-class.html#getroottree"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2037', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2038" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2038', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2039" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2039', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2040" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2040', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
-<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2041" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2041', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2042" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2042', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getnext"></a><div id="ETreeOnlyTestCase.test_getnext-def"><a name="L1837"></a><tt class="py-lineno">1837</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getnext-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getnext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getnext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getnext-expanded"><a name="L1838"></a><tt class="py-lineno">1838</tt>  <tt class="py-line">        <tt id="link-2043" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2102', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2103" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2103', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2104" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2104', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2105" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2105', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2106" class="py-name" targets="Method lxml.etree._Element.getroottree()=lxml.etree._Element-class.html#getroottree"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2106', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2107" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2107', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L1872"></a><tt class="py-lineno">1872</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2108" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2108', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2109" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2109', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">,</tt> </tt>
+<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line">            <tt class="py-name">d</tt><tt class="py-op">.</tt><tt id="link-2110" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2110', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2111" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2111', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getnext"></a><div id="ETreeOnlyTestCase.test_getnext-def"><a name="L1877"></a><tt class="py-lineno">1877</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getnext-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getnext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getnext">test_getnext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getnext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getnext-expanded"><a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line">        <tt id="link-2112" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2043', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2044" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2112', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2113" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2044', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2045" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2113', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2114" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2045', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1839"></a><tt class="py-lineno">1839</tt>  <tt class="py-line">        <tt id="link-2046" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2046', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2047" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2114', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line">        <tt id="link-2115" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2115', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2116" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2047', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2048" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2048', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1840"></a><tt class="py-lineno">1840</tt>  <tt class="py-line"> </tt>
-<a name="L1841"></a><tt class="py-lineno">1841</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2049" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2116', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2117" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2117', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line"> </tt>
+<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2118" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2049', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1842"></a><tt class="py-lineno">1842</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2050" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2050', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1843"></a><tt class="py-lineno">1843</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2051" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2051', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1844"></a><tt class="py-lineno">1844</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1845"></a><tt class="py-lineno">1845</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1846"></a><tt class="py-lineno">1846</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2052" class="py-name" targets="Method lxml.etree._Element.getnext()=lxml.etree._Element-class.html#getnext"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2052', 'getnext', 'link-2052');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1847"></a><tt class="py-lineno">1847</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1848"></a><tt class="py-lineno">1848</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
-<a name="L1849"></a><tt class="py-lineno">1849</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2053" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2053', 'getnext', 'link-2052');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1850"></a><tt class="py-lineno">1850</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1851"></a><tt class="py-lineno">1851</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1852"></a><tt class="py-lineno">1852</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2054" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2054', 'getnext', 'link-2052');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1853"></a><tt class="py-lineno">1853</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getprevious"></a><div id="ETreeOnlyTestCase.test_getprevious-def"><a name="L1854"></a><tt class="py-lineno">1854</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getprevious-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getprevious');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getprevious-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getprevious-expanded"><a name="L1855"></a><tt class="py-lineno">1855</tt>  <tt class="py-line">        <tt id="link-2055" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2118', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2119" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2119', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2120" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2120', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2121" class="py-name" targets="Method lxml.etree._Element.getnext()=lxml.etree._Element-class.html#getnext"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2121', 'getnext', 'link-2121');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">,</tt> </tt>
+<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2122" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2122', 'getnext', 'link-2121');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2123" class="py-name"><a title="lxml.etree._Element.getnext" class="py-name" href="#" onclick="return doclink('link-2123', 'getnext', 'link-2121');">getnext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getprevious"></a><div id="ETreeOnlyTestCase.test_getprevious-def"><a name="L1894"></a><tt class="py-lineno">1894</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getprevious-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getprevious');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getprevious">test_getprevious</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getprevious-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getprevious-expanded"><a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line">        <tt id="link-2124" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2055', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2056" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2124', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2125" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2056', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2057" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2125', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2126" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2057', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1856"></a><tt class="py-lineno">1856</tt>  <tt class="py-line">        <tt id="link-2058" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2058', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2059" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2126', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1896"></a><tt class="py-lineno">1896</tt>  <tt class="py-line">        <tt id="link-2127" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2127', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2128" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2059', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2060" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2060', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1857"></a><tt class="py-lineno">1857</tt>  <tt class="py-line"> </tt>
-<a name="L1858"></a><tt class="py-lineno">1858</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2061" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2128', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2129" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2129', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line"> </tt>
+<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2130" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2061', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1859"></a><tt class="py-lineno">1859</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2062" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2062', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1860"></a><tt class="py-lineno">1860</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2063" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2063', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1861"></a><tt class="py-lineno">1861</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2064" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2064', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1862"></a><tt class="py-lineno">1862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1863"></a><tt class="py-lineno">1863</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1864"></a><tt class="py-lineno">1864</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2065" class="py-name" targets="Method lxml.etree._Element.getprevious()=lxml.etree._Element-class.html#getprevious"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2065', 'getprevious', 'link-2065');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1865"></a><tt class="py-lineno">1865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1866"></a><tt class="py-lineno">1866</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
-<a name="L1867"></a><tt class="py-lineno">1867</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2066" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2066', 'getprevious', 'link-2065');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1868"></a><tt class="py-lineno">1868</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1869"></a><tt class="py-lineno">1869</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L1870"></a><tt class="py-lineno">1870</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2067" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2067', 'getprevious', 'link-2065');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1871"></a><tt class="py-lineno">1871</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_itersiblings"></a><div id="ETreeOnlyTestCase.test_itersiblings-def"><a name="L1872"></a><tt class="py-lineno">1872</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_itersiblings-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings-expanded"><a name="L1873"></a><tt class="py-lineno">1873</tt>  <tt class="py-line">        <tt id="link-2068" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2130', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2131" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2131', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2132" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2132', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2133" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2133', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line">            <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2134" class="py-name" targets="Method lxml.etree._Element.getprevious()=lxml.etree._Element-class.html#getprevious"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2134', 'getprevious', 'link-2134');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">,</tt> </tt>
+<a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line">            <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2135" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2135', 'getprevious', 'link-2134');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">            <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2136" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-2136', 'getprevious', 'link-2134');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings"></a><div id="ETreeOnlyTestCase.test_itersiblings-def"><a name="L1912"></a><tt class="py-lineno">1912</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings">test_itersiblings</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_itersiblings-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings-expanded"><a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">        <tt id="link-2137" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2068', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2069" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2137', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2138" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2069', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2070" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2138', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2139" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2070', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1874"></a><tt class="py-lineno">1874</tt>  <tt class="py-line">        <tt id="link-2071" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2071', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2072" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2139', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">        <tt id="link-2140" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2140', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2141" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2072', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2073" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2073', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1875"></a><tt class="py-lineno">1875</tt>  <tt class="py-line"> </tt>
-<a name="L1876"></a><tt class="py-lineno">1876</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2074" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2141', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2142" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2142', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line"> </tt>
+<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2143" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2074', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1877"></a><tt class="py-lineno">1877</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2075" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2075', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1878"></a><tt class="py-lineno">1878</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2076" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2076', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1879"></a><tt class="py-lineno">1879</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2077" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2077', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1880"></a><tt class="py-lineno">1880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1881"></a><tt class="py-lineno">1881</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1882"></a><tt class="py-lineno">1882</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2078" class="py-name" targets="Method lxml.etree._Element.itersiblings()=lxml.etree._Element-class.html#itersiblings"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2078', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1883"></a><tt class="py-lineno">1883</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1884"></a><tt class="py-lineno">1884</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1885"></a><tt class="py-lineno">1885</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2079" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2079', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1886"></a><tt class="py-lineno">1886</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1887"></a><tt class="py-lineno">1887</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1888"></a><tt class="py-lineno">1888</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2080" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2080', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1889"></a><tt class="py-lineno">1889</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1890"></a><tt class="py-lineno">1890</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1891"></a><tt class="py-lineno">1891</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2081" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2081', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1892"></a><tt class="py-lineno">1892</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1893"></a><tt class="py-lineno">1893</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1894"></a><tt class="py-lineno">1894</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2082" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2082', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1895"></a><tt class="py-lineno">1895</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_itersiblings_tag"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag-def"><a name="L1896"></a><tt class="py-lineno">1896</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_itersiblings_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings_tag-expanded"><a name="L1897"></a><tt class="py-lineno">1897</tt>  <tt class="py-line">        <tt id="link-2083" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2143', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2144" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2144', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2145" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2145', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2146" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2146', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1920"></a><tt class="py-lineno">1920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2147" class="py-name" targets="Method lxml.etree._Element.itersiblings()=lxml.etree._Element-class.html#itersiblings"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2147', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2148" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2148', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2149" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2149', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2150" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2150', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2151" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2151', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings_tag"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag-def"><a name="L1936"></a><tt class="py-lineno">1936</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag">test_itersiblings_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_itersiblings_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings_tag-expanded"><a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line">        <tt id="link-2152" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2083', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2084" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2152', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2153" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2084', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2085" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2153', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2154" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2085', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1898"></a><tt class="py-lineno">1898</tt>  <tt class="py-line">        <tt id="link-2086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2086', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2087" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2154', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">        <tt id="link-2155" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2155', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2156" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2087', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2088" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2088', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1899"></a><tt class="py-lineno">1899</tt>  <tt class="py-line"> </tt>
-<a name="L1900"></a><tt class="py-lineno">1900</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2089" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2156', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2157" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2157', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line"> </tt>
+<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2158" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2089', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1901"></a><tt class="py-lineno">1901</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2090" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2090', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1902"></a><tt class="py-lineno">1902</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2091" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2091', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1903"></a><tt class="py-lineno">1903</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2092" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2092', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1904"></a><tt class="py-lineno">1904</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1905"></a><tt class="py-lineno">1905</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1906"></a><tt class="py-lineno">1906</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2093" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2093', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2094" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2158', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2159" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2159', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1942"></a><tt class="py-lineno">1942</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2160" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2160', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2161" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2161', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2162" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2162', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2163" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2094', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'XXX'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1907"></a><tt class="py-lineno">1907</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1908"></a><tt class="py-lineno">1908</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1909"></a><tt class="py-lineno">1909</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2095" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2095', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2096" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2163', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'XXX'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2164" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2164', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2165" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2096', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1910"></a><tt class="py-lineno">1910</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1911"></a><tt class="py-lineno">1911</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1912"></a><tt class="py-lineno">1912</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2097" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2097', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2098" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2165', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2166" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2166', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2167" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2098', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1913"></a><tt class="py-lineno">1913</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1914"></a><tt class="py-lineno">1914</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1915"></a><tt class="py-lineno">1915</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2099" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2099', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2100" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2167', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2168" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2168', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2169" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2100', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1916"></a><tt class="py-lineno">1916</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1917"></a><tt class="py-lineno">1917</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1918"></a><tt class="py-lineno">1918</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2101" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2101', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2102" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2169', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2170" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2170', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2171" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2102', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1919"></a><tt class="py-lineno">1919</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_itersiblings_tag_multiple"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-def"><a name="L1920"></a><tt class="py-lineno">1920</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-expanded"><a name="L1921"></a><tt class="py-lineno">1921</tt>  <tt class="py-line">        <tt id="link-2103" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2171', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-string">'c'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_itersiblings_tag_multiple"></a><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-def"><a name="L1960"></a><tt class="py-lineno">1960</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_itersiblings_tag_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_itersiblings_tag_multiple">test_itersiblings_tag_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_itersiblings_tag_multiple-expanded"><a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line">        <tt id="link-2172" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2103', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2104" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2172', 'Element', 'link-61');">Element</a></tt>    <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2173" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2104', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2105" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2173', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2174" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2105', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L1922"></a><tt class="py-lineno">1922</tt>  <tt class="py-line">        <tt id="link-2106" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2106', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2107" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2174', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">        <tt id="link-2175" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2175', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2176" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2107', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2108" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2108', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L1923"></a><tt class="py-lineno">1923</tt>  <tt class="py-line"> </tt>
-<a name="L1924"></a><tt class="py-lineno">1924</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2109" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2176', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2177" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2177', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line"> </tt>
+<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2178" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2109', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1925"></a><tt class="py-lineno">1925</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2110" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2110', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1926"></a><tt class="py-lineno">1926</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2111" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2111', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1927"></a><tt class="py-lineno">1927</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2112" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2112', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1928"></a><tt class="py-lineno">1928</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2113" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2113', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1929"></a><tt class="py-lineno">1929</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1930"></a><tt class="py-lineno">1930</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1931"></a><tt class="py-lineno">1931</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2114" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2114', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2115" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2178', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2179" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2179', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2180" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2180', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2181" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2181', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2182" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2182', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2183" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2183', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2184" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2115', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'XXX'</tt><tt class="py-op">,</tt> <tt class="py-string">'YYY'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1932"></a><tt class="py-lineno">1932</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1933"></a><tt class="py-lineno">1933</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1934"></a><tt class="py-lineno">1934</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2116" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2116', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2117" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2184', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'XXX'</tt><tt class="py-op">,</tt> <tt class="py-string">'YYY'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1972"></a><tt class="py-lineno">1972</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2185" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2185', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt id="link-2186" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2117', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1935"></a><tt class="py-lineno">1935</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1936"></a><tt class="py-lineno">1936</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1937"></a><tt class="py-lineno">1937</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2118" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2118', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2119" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2186', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1977"></a><tt class="py-lineno">1977</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2187" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2187', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2188" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2119', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1938"></a><tt class="py-lineno">1938</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1939"></a><tt class="py-lineno">1939</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1940"></a><tt class="py-lineno">1940</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2120" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2120', 'itersiblings', 'link-2078');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2121" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2188', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2189" class="py-name"><a title="lxml.etree._Element.itersiblings" class="py-name" href="#" onclick="return doclink('link-2189', 'itersiblings', 'link-2147');">itersiblings</a></tt><tt class="py-op">(</tt><tt class="py-name">preceding</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-2190" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2121', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1941"></a><tt class="py-lineno">1941</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parseid"></a><div id="ETreeOnlyTestCase.test_parseid-def"><a name="L1942"></a><tt class="py-lineno">1942</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parseid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parseid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid">test_parseid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parseid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parseid-expanded"><a name="L1943"></a><tt class="py-lineno">1943</tt>  <tt class="py-line">        <tt id="link-2122" class="py-name" targets="Function lxml.etree.parseid()=lxml.etree-module.html#parseid"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2122', 'parseid', 'link-2122');">parseid</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2123" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2123', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2124" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2124', 'parseid', 'link-2122');">parseid</a></tt> </tt>
-<a name="L1944"></a><tt class="py-lineno">1944</tt>  <tt class="py-line">        <tt id="link-2125" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2125', 'XML', 'link-209');">XML</a></tt>     <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2126" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2126', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2127" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2190', 'tag', 'link-65');">tag</a></tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parseid"></a><div id="ETreeOnlyTestCase.test_parseid-def"><a name="L1982"></a><tt class="py-lineno">1982</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parseid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parseid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parseid">test_parseid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parseid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parseid-expanded"><a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line">        <tt id="link-2191" class="py-name" targets="Function lxml.etree.parseid()=lxml.etree-module.html#parseid"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2191', 'parseid', 'link-2191');">parseid</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2192" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2192', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2193" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2193', 'parseid', 'link-2191');">parseid</a></tt> </tt>
+<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line">        <tt id="link-2194" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2194', 'XML', 'link-209');">XML</a></tt>     <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2195" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2195', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2196" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2127', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1945"></a><tt class="py-lineno">1945</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2128" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2128', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L1946"></a><tt class="py-lineno">1946</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
-<a name="L1947"></a><tt class="py-lineno">1947</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
-<a name="L1948"></a><tt class="py-lineno">1948</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
-<a name="L1949"></a><tt class="py-lineno">1949</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
-<a name="L1950"></a><tt class="py-lineno">1950</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
-<a name="L1951"></a><tt class="py-lineno">1951</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
-<a name="L1952"></a><tt class="py-lineno">1952</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L1953"></a><tt class="py-lineno">1953</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L1954"></a><tt class="py-lineno">1954</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L1955"></a><tt class="py-lineno">1955</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L1956"></a><tt class="py-lineno">1956</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L1957"></a><tt class="py-lineno">1957</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L1958"></a><tt class="py-lineno">1958</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L1959"></a><tt class="py-lineno">1959</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L1960"></a><tt class="py-lineno">1960</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1961"></a><tt class="py-lineno">1961</tt>  <tt class="py-line"> </tt>
-<a name="L1962"></a><tt class="py-lineno">1962</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2129" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2129', 'parseid', 'link-2122');">parseid</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1963"></a><tt class="py-lineno">1963</tt>  <tt class="py-line">        <tt id="link-2130" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2130', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2131" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2131', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1964"></a><tt class="py-lineno">1964</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2132" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2196', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2197" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2197', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
+<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
+<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
+<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
+<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
+<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
+<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line"> </tt>
+<a name="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2198" class="py-name"><a title="lxml.etree.parseid" class="py-name" href="#" onclick="return doclink('link-2198', 'parseid', 'link-2191');">parseid</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">        <tt id="link-2199" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2199', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2200" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2200', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2201" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2132', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L1965"></a><tt class="py-lineno">1965</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2133" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2133', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2134" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2134', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1966"></a><tt class="py-lineno">1966</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2135" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2135', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1967"></a><tt class="py-lineno">1967</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L1968"></a><tt class="py-lineno">1968</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2136" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2136', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1969"></a><tt class="py-lineno">1969</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2137" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2137', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L1970"></a><tt class="py-lineno">1970</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2138" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2138', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
-<a name="L1971"></a><tt class="py-lineno">1971</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
-<a name="L1972"></a><tt class="py-lineno">1972</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"chapter1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L1973"></a><tt class="py-lineno">1973</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"warn1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L1974"></a><tt class="py-lineno">1974</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"xmlid"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L1975"></a><tt class="py-lineno">1975</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2139" class="py-name" targets="Method lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2139', '_checkIDDict', 'link-2139');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1976"></a><tt class="py-lineno">1976</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XMLDTDID"></a><div id="ETreeOnlyTestCase.test_XMLDTDID-def"><a name="L1977"></a><tt class="py-lineno">1977</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XMLDTDID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID-expanded"><a name="L1978"></a><tt class="py-lineno">1978</tt>  <tt class="py-line">        <tt id="link-2140" class="py-name" targets="Function lxml.etree.XMLDTDID()=lxml.etree-module.html#XMLDTDID"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2140', 'XMLDTDID', 'link-2140');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2141" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2141', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2142" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2142', 'XMLDTDID', 'link-2140');">XMLDTDID</a></tt> </tt>
-<a name="L1979"></a><tt class="py-lineno">1979</tt>  <tt class="py-line">        <tt id="link-2143" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2143', 'XML', 'link-209');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2144" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2144', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2145" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2145', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L1980"></a><tt class="py-lineno">1980</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2146" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2146', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L1981"></a><tt class="py-lineno">1981</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
-<a name="L1982"></a><tt class="py-lineno">1982</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
-<a name="L1983"></a><tt class="py-lineno">1983</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
-<a name="L1984"></a><tt class="py-lineno">1984</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
-<a name="L1985"></a><tt class="py-lineno">1985</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
-<a name="L1986"></a><tt class="py-lineno">1986</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
-<a name="L1987"></a><tt class="py-lineno">1987</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L1988"></a><tt class="py-lineno">1988</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L1989"></a><tt class="py-lineno">1989</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L1990"></a><tt class="py-lineno">1990</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L1991"></a><tt class="py-lineno">1991</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L1992"></a><tt class="py-lineno">1992</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L1993"></a><tt class="py-lineno">1993</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L1994"></a><tt class="py-lineno">1994</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L1995"></a><tt class="py-lineno">1995</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1996"></a><tt class="py-lineno">1996</tt>  <tt class="py-line"> </tt>
-<a name="L1997"></a><tt class="py-lineno">1997</tt>  <tt class="py-line">        <tt id="link-2147" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2147', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2148" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2148', 'XMLDTDID', 'link-2140');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L1998"></a><tt class="py-lineno">1998</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2149" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2149', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L1999"></a><tt class="py-lineno">1999</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2150" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2150', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2151" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2151', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2000"></a><tt class="py-lineno">2000</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2152" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2152', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2001"></a><tt class="py-lineno">2001</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
-<a name="L2002"></a><tt class="py-lineno">2002</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2153" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2153', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2003"></a><tt class="py-lineno">2003</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2154" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2154', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2004"></a><tt class="py-lineno">2004</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2155" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2155', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
-<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
-<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"chapter1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"warn1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"xmlid"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
-<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2156" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2156', '_checkIDDict', 'link-2139');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XMLDTDID_empty"></a><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-def"><a name="L2011"></a><tt class="py-lineno">2011</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-expanded"><a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">        <tt id="link-2157" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2157', 'XMLDTDID', 'link-2140');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2158" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2158', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2159" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2159', 'XMLDTDID', 'link-2140');">XMLDTDID</a></tt> </tt>
-<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line">        <tt id="link-2160" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2160', 'XML', 'link-209');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2161" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2161', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2162" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2162', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2163" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2163', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
-<a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
-<a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
-<a name="L2017"></a><tt class="py-lineno">2017</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
-<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
-<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
-<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line"> </tt>
-<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line">        <tt id="link-2164" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2164', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2165" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2165', 'XMLDTDID', 'link-2140');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2166" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2166', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
-<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2167" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2167', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2168" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2168', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2169" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2169', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2170" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2170', '_checkIDDict', 'link-2139');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2029"></a><tt class="py-lineno">2029</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase._checkIDDict"></a><div id="ETreeOnlyTestCase._checkIDDict-def"><a name="L2030"></a><tt class="py-lineno">2030</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._checkIDDict-toggle" onclick="return toggle('ETreeOnlyTestCase._checkIDDict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict">_checkIDDict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">dic</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase._checkIDDict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._checkIDDict-expanded"><a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2171" class="py-name" targets="Method lxml.etree._Attrib.items()=lxml.etree._Attrib-class.html#items,Method lxml.etree._Element.items()=lxml.etree._Element-class.html#items,Method lxml.etree._IDDict.items()=lxml.etree._IDDict-class.html#items"><a title="lxml.etree._Attrib.items
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2201', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2005"></a><tt class="py-lineno">2005</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2202" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2202', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2203" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2203', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2006"></a><tt class="py-lineno">2006</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2204" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2204', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2007"></a><tt class="py-lineno">2007</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L2008"></a><tt class="py-lineno">2008</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2205" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2205', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2009"></a><tt class="py-lineno">2009</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2206" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2206', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2010"></a><tt class="py-lineno">2010</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2207" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2207', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
+<a name="L2011"></a><tt class="py-lineno">2011</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
+<a name="L2012"></a><tt class="py-lineno">2012</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"chapter1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2013"></a><tt class="py-lineno">2013</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"warn1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2014"></a><tt class="py-lineno">2014</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"xmlid"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2015"></a><tt class="py-lineno">2015</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2208" class="py-name" targets="Method lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict()=lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2208', '_checkIDDict', 'link-2208');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2016"></a><tt class="py-lineno">2016</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XMLDTDID"></a><div id="ETreeOnlyTestCase.test_XMLDTDID-def"><a name="L2017"></a><tt class="py-lineno">2017</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID">test_XMLDTDID</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XMLDTDID-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID-expanded"><a name="L2018"></a><tt class="py-lineno">2018</tt>  <tt class="py-line">        <tt id="link-2209" class="py-name" targets="Function lxml.etree.XMLDTDID()=lxml.etree-module.html#XMLDTDID"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2209', 'XMLDTDID', 'link-2209');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2210" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2210', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2211" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2211', 'XMLDTDID', 'link-2209');">XMLDTDID</a></tt> </tt>
+<a name="L2019"></a><tt class="py-lineno">2019</tt>  <tt class="py-line">        <tt id="link-2212" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2212', 'XML', 'link-209');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2213" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2213', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2214" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2214', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2020"></a><tt class="py-lineno">2020</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2215" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2215', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2021"></a><tt class="py-lineno">2021</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE document [</tt> </tt>
+<a name="L2022"></a><tt class="py-lineno">2022</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT document (h1,p)*&gt;</tt> </tt>
+<a name="L2023"></a><tt class="py-lineno">2023</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT h1 (#PCDATA)&gt;</tt> </tt>
+<a name="L2024"></a><tt class="py-lineno">2024</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST h1 myid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2025"></a><tt class="py-lineno">2025</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ELEMENT p  (#PCDATA)&gt;</tt> </tt>
+<a name="L2026"></a><tt class="py-lineno">2026</tt>  <tt class="py-line"><tt class="py-string">        &lt;!ATTLIST p  someid ID #REQUIRED&gt;</tt> </tt>
+<a name="L2027"></a><tt class="py-lineno">2027</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L2028"></a><tt class="py-lineno">2028</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2029"></a><tt class="py-lineno">2029</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2030"></a><tt class="py-lineno">2030</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2031"></a><tt class="py-lineno">2031</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2032"></a><tt class="py-lineno">2032</tt>  <tt class="py-line"><tt class="py-string">          &lt;p xml:id="xmlid"&gt;XML:ID paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2033"></a><tt class="py-lineno">2033</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line"> </tt>
+<a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">        <tt id="link-2216" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2216', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2217" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2217', 'XMLDTDID', 'link-2209');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2218" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2218', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2219" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2219', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2220" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2220', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2221" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2221', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2041"></a><tt class="py-lineno">2041</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line">            <tt class="py-string">"chapter1"</tt> <tt class="py-op">:</tt> <tt id="link-2222" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2222', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line">            <tt class="py-string">"xmlid"</tt>    <tt class="py-op">:</tt> <tt id="link-2223" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2223', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line">            <tt class="py-string">"warn1"</tt>    <tt class="py-op">:</tt> <tt id="link-2224" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2224', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt> </tt>
+<a name="L2045"></a><tt class="py-lineno">2045</tt>  <tt class="py-line">            <tt class="py-op">}</tt> </tt>
+<a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"chapter1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"warn1"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-string">"xmlid"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dic</tt><tt class="py-op">)</tt> </tt>
+<a name="L2049"></a><tt class="py-lineno">2049</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2225" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2225', '_checkIDDict', 'link-2208');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XMLDTDID_empty"></a><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-def"><a name="L2051"></a><tt class="py-lineno">2051</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XMLDTDID_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XMLDTDID_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XMLDTDID_empty">test_XMLDTDID_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XMLDTDID_empty-expanded"><a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line">        <tt id="link-2226" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2226', 'XMLDTDID', 'link-2209');">XMLDTDID</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2227" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2227', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2228" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2228', 'XMLDTDID', 'link-2209');">XMLDTDID</a></tt> </tt>
+<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line">        <tt id="link-2229" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2229', 'XML', 'link-209');">XML</a></tt>      <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2230" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2230', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2231" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2231', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line">        <tt class="py-name">xml_text</tt> <tt class="py-op">=</tt> <tt id="link-2232" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2232', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''</tt> </tt>
+<a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line"><tt class="py-string">        &lt;document&gt;</tt> </tt>
+<a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line"><tt class="py-string">          &lt;h1 myid="chapter1"&gt;...&lt;/h1&gt;</tt> </tt>
+<a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line"><tt class="py-string">          &lt;p id="note1" class="note"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line"><tt class="py-string">          &lt;p&gt;Regular paragraph.&lt;/p&gt;</tt> </tt>
+<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line"><tt class="py-string">          &lt;p someid="warn1" class="warning"&gt;...&lt;/p&gt;</tt> </tt>
+<a name="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line"><tt class="py-string">        &lt;/document&gt;</tt> </tt>
+<a name="L2061"></a><tt class="py-lineno">2061</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line"> </tt>
+<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line">        <tt id="link-2233" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2233', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">dic</tt> <tt class="py-op">=</tt> <tt id="link-2234" class="py-name"><a title="lxml.etree.XMLDTDID" class="py-name" href="#" onclick="return doclink('link-2234', 'XMLDTDID', 'link-2209');">XMLDTDID</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2064"></a><tt class="py-lineno">2064</tt>  <tt class="py-line">        <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt id="link-2235" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2235', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_text</tt><tt class="py-op">)</tt> </tt>
+<a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2236" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2236', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt id="link-2237" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2237', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2238" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2238', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">root2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line">        <tt class="py-name">expected</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2239" class="py-name"><a title="lxml.tests.test_etree.ETreeOnlyTestCase._checkIDDict" class="py-name" href="#" onclick="return doclink('link-2239', '_checkIDDict', 'link-2208');">_checkIDDict</a></tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">,</tt> <tt class="py-name">expected</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase._checkIDDict"></a><div id="ETreeOnlyTestCase._checkIDDict-def"><a name="L2070"></a><tt class="py-lineno">2070</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._checkIDDict-toggle" onclick="return toggle('ETreeOnlyTestCase._checkIDDict');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_checkIDDict">_checkIDDict</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">dic</tt><tt class="py-op">,</tt> <tt class="py-param">expected</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase._checkIDDict-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._checkIDDict-expanded"><a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">                          <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2240" class="py-name" targets="Method lxml.etree._Attrib.items()=lxml.etree._Attrib-class.html#items,Method lxml.etree._Element.items()=lxml.etree._Element-class.html#items,Method lxml.etree._IDDict.items()=lxml.etree._IDDict-class.html#items"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2171', 'items', 'link-2171');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2034"></a><tt class="py-lineno">2034</tt>  <tt class="py-line">                          <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2172" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2240', 'items', 'link-2240');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2074"></a><tt class="py-lineno">2074</tt>  <tt class="py-line">                          <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2241" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2172', 'items', 'link-2171');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2035"></a><tt class="py-lineno">2035</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2036"></a><tt class="py-lineno">2036</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2173" class="py-name" targets="Method lxml.etree._Attrib.iteritems()=lxml.etree._Attrib-class.html#iteritems,Method lxml.etree._IDDict.iteritems()=lxml.etree._IDDict-class.html#iteritems"><a title="lxml.etree._Attrib.iteritems
-lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2173', 'iteritems', 'link-2173');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2037"></a><tt class="py-lineno">2037</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2174" class="py-name"><a title="lxml.etree._Attrib.iteritems
-lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2174', 'iteritems', 'link-2173');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2038"></a><tt class="py-lineno">2038</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2175" class="py-name" targets="Method lxml.etree._Attrib.keys()=lxml.etree._Attrib-class.html#keys,Method lxml.etree._Element.keys()=lxml.etree._Element-class.html#keys,Method lxml.etree._IDDict.keys()=lxml.etree._IDDict-class.html#keys,Method lxml.html.FieldsDict.keys()=lxml.html.FieldsDict-class.html#keys,Method lxml.html.InputGetter.keys()=lxml.html.InputGetter-class.html#keys"><a title="lxml.etree._Attrib.keys
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-2241', 'items', 'link-2240');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2076"></a><tt class="py-lineno">2076</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2242" class="py-name" targets="Method lxml.etree._Attrib.iteritems()=lxml.etree._Attrib-class.html#iteritems,Method lxml.etree._IDDict.iteritems()=lxml.etree._IDDict-class.html#iteritems"><a title="lxml.etree._Attrib.iteritems
+lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2242', 'iteritems', 'link-2242');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2243" class="py-name"><a title="lxml.etree._Attrib.iteritems
+lxml.etree._IDDict.iteritems" class="py-name" href="#" onclick="return doclink('link-2243', 'iteritems', 'link-2242');">iteritems</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2244" class="py-name" targets="Method lxml.etree._Attrib.keys()=lxml.etree._Attrib-class.html#keys,Method lxml.etree._Element.keys()=lxml.etree._Element-class.html#keys,Method lxml.etree._IDDict.keys()=lxml.etree._IDDict-class.html#keys,Method lxml.html.FieldsDict.keys()=lxml.html.FieldsDict-class.html#keys,Method lxml.html.InputGetter.keys()=lxml.html.InputGetter-class.html#keys"><a title="lxml.etree._Attrib.keys
 lxml.etree._Element.keys
 lxml.etree._IDDict.keys
 lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2175', 'keys', 'link-2175');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2039"></a><tt class="py-lineno">2039</tt>  <tt class="py-line">                          <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2176" class="py-name"><a title="lxml.etree._Attrib.keys
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2244', 'keys', 'link-2244');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line">                          <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2245" class="py-name"><a title="lxml.etree._Attrib.keys
 lxml.etree._Element.keys
 lxml.etree._IDDict.keys
 lxml.html.FieldsDict.keys
-lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2176', 'keys', 'link-2175');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2040"></a><tt class="py-lineno">2040</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2041"></a><tt class="py-lineno">2041</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2177" class="py-name" targets="Method lxml.etree._Attrib.iterkeys()=lxml.etree._Attrib-class.html#iterkeys,Method lxml.etree._IDDict.iterkeys()=lxml.etree._IDDict-class.html#iterkeys"><a title="lxml.etree._Attrib.iterkeys
-lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2177', 'iterkeys', 'link-2177');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2042"></a><tt class="py-lineno">2042</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2178" class="py-name"><a title="lxml.etree._Attrib.iterkeys
-lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2178', 'iterkeys', 'link-2177');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2043"></a><tt class="py-lineno">2043</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2044"></a><tt class="py-lineno">2044</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2179" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.html.InputGetter.keys" class="py-name" href="#" onclick="return doclink('link-2245', 'keys', 'link-2244');">keys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2246" class="py-name" targets="Method lxml.etree._Attrib.iterkeys()=lxml.etree._Attrib-class.html#iterkeys,Method lxml.etree._IDDict.iterkeys()=lxml.etree._IDDict-class.html#iterkeys"><a title="lxml.etree._Attrib.iterkeys
+lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2246', 'iterkeys', 'link-2246');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2247" class="py-name"><a title="lxml.etree._Attrib.iterkeys
+lxml.etree._IDDict.iterkeys" class="py-name" href="#" onclick="return doclink('link-2247', 'iterkeys', 'link-2246');">iterkeys</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&lt;</tt> <tt class="py-op">(</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2248" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2179', 'values', 'link-1786');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2045"></a><tt class="py-lineno">2045</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2180" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2248', 'values', 'link-1855');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2249" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2180', 'values', 'link-1786');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2046"></a><tt class="py-lineno">2046</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2181" class="py-name" targets="Method lxml.etree._Attrib.itervalues()=lxml.etree._Attrib-class.html#itervalues,Method lxml.etree._IDDict.itervalues()=lxml.etree._IDDict-class.html#itervalues"><a title="lxml.etree._Attrib.itervalues
-lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2181', 'itervalues', 'link-2181');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2047"></a><tt class="py-lineno">2047</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2182" class="py-name"><a title="lxml.etree._Attrib.itervalues
-lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2182', 'itervalues', 'link-2181');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2048"></a><tt class="py-lineno">2048</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces"></a><div id="ETreeOnlyTestCase.test_namespaces-def"><a name="L2049"></a><tt class="py-lineno">2049</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces-expanded"><a name="L2050"></a><tt class="py-lineno">2050</tt>  <tt class="py-line">        <tt id="link-2183" class="py-name"><a title="lxml.etree
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-2249', 'values', 'link-1855');">values</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">dic</tt><tt class="py-op">.</tt><tt id="link-2250" class="py-name" targets="Method lxml.etree._Attrib.itervalues()=lxml.etree._Attrib-class.html#itervalues,Method lxml.etree._IDDict.itervalues()=lxml.etree._IDDict-class.html#itervalues"><a title="lxml.etree._Attrib.itervalues
+lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2250', 'itervalues', 'link-2250');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2087"></a><tt class="py-lineno">2087</tt>  <tt class="py-line">                              <tt class="py-name">sorted</tt><tt class="py-op">(</tt><tt class="py-name">expected</tt><tt class="py-op">.</tt><tt id="link-2251" class="py-name"><a title="lxml.etree._Attrib.itervalues
+lxml.etree._IDDict.itervalues" class="py-name" href="#" onclick="return doclink('link-2251', 'itervalues', 'link-2250');">itervalues</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces"></a><div id="ETreeOnlyTestCase.test_namespaces-def"><a name="L2089"></a><tt class="py-lineno">2089</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces">test_namespaces</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces-expanded"><a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">        <tt id="link-2252" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2183', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2184" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2252', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2253" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2184', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2051"></a><tt class="py-lineno">2051</tt>  <tt class="py-line"> </tt>
-<a name="L2052"></a><tt class="py-lineno">2052</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2053"></a><tt class="py-lineno">2053</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2185" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2253', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line"> </tt>
+<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'foo'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2254" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2185', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2186" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2254', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2186', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2187" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2187', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2054"></a><tt class="py-lineno">2054</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2055"></a><tt class="py-lineno">2055</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2056"></a><tt class="py-lineno">2056</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2188" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2188', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2057"></a><tt class="py-lineno">2057</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2058"></a><tt class="py-lineno">2058</tt>  <tt class="py-line">            <tt id="link-2189" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2189', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo:bar xmlns:foo="http://ns.infrae.com/foo"&gt;&lt;/foo:bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2059"></a><tt class="py-lineno">2059</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2190" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2190', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2060"></a><tt class="py-lineno">2060</tt>  <tt class="py-line">         </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default"></a><div id="ETreeOnlyTestCase.test_namespaces_default-def"><a name="L2061"></a><tt class="py-lineno">2061</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default-expanded"><a name="L2062"></a><tt class="py-lineno">2062</tt>  <tt class="py-line">        <tt id="link-2191" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2255', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2256" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2256', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line">            <tt class="py-string">'foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2257" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2257', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line">            <tt id="link-2258" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2258', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo:bar xmlns:foo="http://ns.infrae.com/foo"&gt;&lt;/foo:bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2259" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2259', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line">         </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default"></a><div id="ETreeOnlyTestCase.test_namespaces_default-def"><a name="L2101"></a><tt class="py-lineno">2101</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default">test_namespaces_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default-expanded"><a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">        <tt id="link-2260" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2191', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2192" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2260', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2261" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2192', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2063"></a><tt class="py-lineno">2063</tt>  <tt class="py-line"> </tt>
-<a name="L2064"></a><tt class="py-lineno">2064</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2065"></a><tt class="py-lineno">2065</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2193" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2261', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line"> </tt>
+<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2262" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2193', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2194" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2262', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2263" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2194', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2195" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2195', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2066"></a><tt class="py-lineno">2066</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2067"></a><tt class="py-lineno">2067</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2068"></a><tt class="py-lineno">2068</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2196" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2196', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2069"></a><tt class="py-lineno">2069</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2070"></a><tt class="py-lineno">2070</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2071"></a><tt class="py-lineno">2071</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2197" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2263', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2264" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2264', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2108"></a><tt class="py-lineno">2108</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2265" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2265', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2266" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2197', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2072"></a><tt class="py-lineno">2072</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2073"></a><tt class="py-lineno">2073</tt>  <tt class="py-line">            <tt id="link-2198" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2198', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2074"></a><tt class="py-lineno">2074</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2199" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2199', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2075"></a><tt class="py-lineno">2075</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default_and_attr"></a><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-def"><a name="L2076"></a><tt class="py-lineno">2076</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_and_attr-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_and_attr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-expanded"><a name="L2077"></a><tt class="py-lineno">2077</tt>  <tt class="py-line">        <tt id="link-2200" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2266', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">            <tt id="link-2267" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2267', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2268" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2268', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default_and_attr"></a><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-def"><a name="L2116"></a><tt class="py-lineno">2116</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_and_attr-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_and_attr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_and_attr">test_namespaces_default_and_attr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_and_attr-expanded"><a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">        <tt id="link-2269" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2200', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2201" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2269', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2201', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2078"></a><tt class="py-lineno">2078</tt>  <tt class="py-line"> </tt>
-<a name="L2079"></a><tt class="py-lineno">2079</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2080"></a><tt class="py-lineno">2080</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2081"></a><tt class="py-lineno">2081</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2202" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2270', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line"> </tt>
+<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2271" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2202', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2203" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2271', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2272" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2203', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2204" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2204', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2082"></a><tt class="py-lineno">2082</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2205" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2205', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/hoi}test'</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2083"></a><tt class="py-lineno">2083</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2084"></a><tt class="py-lineno">2084</tt>  <tt class="py-line">            <tt id="link-2206" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2206', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi" hoi:test="value"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2085"></a><tt class="py-lineno">2085</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2207" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2207', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2086"></a><tt class="py-lineno">2086</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-def"><a name="L2087"></a><tt class="py-lineno">2087</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-expanded"><a name="L2088"></a><tt class="py-lineno">2088</tt>  <tt class="py-line">        <tt id="link-2208" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2272', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2273" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2273', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2274" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2274', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/hoi}test'</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">            <tt id="link-2275" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2275', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;bar xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi" hoi:test="value"&gt;&lt;/bar&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2276', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-def"><a name="L2127"></a><tt class="py-lineno">2127</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge">test_attribute_keeps_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge-expanded"><a name="L2128"></a><tt class="py-lineno">2128</tt>  <tt class="py-line">        <tt id="link-2277" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2208', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2209" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2277', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2278" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2209', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2089"></a><tt class="py-lineno">2089</tt>  <tt class="py-line"> </tt>
-<a name="L2090"></a><tt class="py-lineno">2090</tt>  <tt class="py-line">        <tt id="link-2210" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2210', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2211" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2278', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line"> </tt>
+<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line">        <tt id="link-2279" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2279', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2280" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2211', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2212" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2280', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2281" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2212', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2091"></a><tt class="py-lineno">2091</tt>  <tt class="py-line">                             <tt id="link-2213" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2213', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2092"></a><tt class="py-lineno">2092</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2214" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2281', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">                             <tt id="link-2282" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2282', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2283" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2214', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2215" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2283', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2284" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2215', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2093"></a><tt class="py-lineno">2093</tt>  <tt class="py-line">                            <tt id="link-2216" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2216', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2094"></a><tt class="py-lineno">2094</tt>  <tt class="py-line"> </tt>
-<a name="L2095"></a><tt class="py-lineno">2095</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2217" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2284', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">                            <tt id="link-2285" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2285', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line"> </tt>
+<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2286" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2217', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L2096"></a><tt class="py-lineno">2096</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2218" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2286', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2287" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2218', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2097"></a><tt class="py-lineno">2097</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2098"></a><tt class="py-lineno">2098</tt>  <tt class="py-line">            <tt id="link-2219" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2219', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2099"></a><tt class="py-lineno">2099</tt>  <tt class="py-line">            <tt id="link-2220" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2287', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">            <tt id="link-2288" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2288', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">            <tt id="link-2289" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2220', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2221" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2221', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2100"></a><tt class="py-lineno">2100</tt>  <tt class="py-line"> </tt>
-<a name="L2101"></a><tt class="py-lineno">2101</tt>  <tt class="py-line">        <tt id="link-2222" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2222', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2223" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2223', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2102"></a><tt class="py-lineno">2102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2103"></a><tt class="py-lineno">2103</tt>  <tt class="py-line">            <tt id="link-2224" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2224', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="http://test/ns"&gt;'</tt> </tt>
-<a name="L2104"></a><tt class="py-lineno">2104</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
-<a name="L2105"></a><tt class="py-lineno">2105</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2106"></a><tt class="py-lineno">2106</tt>  <tt class="py-line">            <tt id="link-2225" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2289', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2290" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2290', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line"> </tt>
+<a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line">        <tt id="link-2291" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2291', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2292" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2292', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">            <tt id="link-2293" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2293', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns="http://test/ns"&gt;'</tt> </tt>
+<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
+<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">            <tt id="link-2294" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2225', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2226" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2226', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2227" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2227', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2107"></a><tt class="py-lineno">2107</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-def"><a name="L2108"></a><tt class="py-lineno">2108</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-expanded"><a name="L2109"></a><tt class="py-lineno">2109</tt>  <tt class="py-line">        <tt id="link-2228" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2294', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2295" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2295', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2296" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2296', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-def"><a name="L2148"></a><tt class="py-lineno">2148</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_keeps_namespace_prefix_on_merge_with_nons">test_attribute_keeps_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_keeps_namespace_prefix_on_merge_with_nons-expanded"><a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line">        <tt id="link-2297" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2228', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2229" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2297', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2229', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2110"></a><tt class="py-lineno">2110</tt>  <tt class="py-line"> </tt>
-<a name="L2111"></a><tt class="py-lineno">2111</tt>  <tt class="py-line">        <tt id="link-2230" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2230', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2231" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2298', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2150"></a><tt class="py-lineno">2150</tt>  <tt class="py-line"> </tt>
+<a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt id="link-2299" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2299', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2300" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2231', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2232" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2300', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2301" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2232', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2112"></a><tt class="py-lineno">2112</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2233" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2301', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2302" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2233', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2234" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2302', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2303" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2234', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2113"></a><tt class="py-lineno">2113</tt>  <tt class="py-line">                            <tt id="link-2235" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2235', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2114"></a><tt class="py-lineno">2114</tt>  <tt class="py-line"> </tt>
-<a name="L2115"></a><tt class="py-lineno">2115</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2236" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2303', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line">                            <tt id="link-2304" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2304', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line"> </tt>
+<a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2305" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2236', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L2116"></a><tt class="py-lineno">2116</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2237" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2305', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2306" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2237', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2117"></a><tt class="py-lineno">2117</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2118"></a><tt class="py-lineno">2118</tt>  <tt class="py-line">            <tt id="link-2238" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2238', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2119"></a><tt class="py-lineno">2119</tt>  <tt class="py-line">            <tt id="link-2239" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2306', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line">            <tt id="link-2307" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2307', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line">            <tt id="link-2308" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2239', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2240" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2240', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2120"></a><tt class="py-lineno">2120</tt>  <tt class="py-line"> </tt>
-<a name="L2121"></a><tt class="py-lineno">2121</tt>  <tt class="py-line">        <tt id="link-2241" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2241', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2242" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2242', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2122"></a><tt class="py-lineno">2122</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2123"></a><tt class="py-lineno">2123</tt>  <tt class="py-line">            <tt id="link-2243" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2243', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
-<a name="L2124"></a><tt class="py-lineno">2124</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
-<a name="L2125"></a><tt class="py-lineno">2125</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2126"></a><tt class="py-lineno">2126</tt>  <tt class="py-line">            <tt id="link-2244" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2308', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2309" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2309', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line"> </tt>
+<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">        <tt id="link-2310" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2310', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2311" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2311', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line">            <tt id="link-2312" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2312', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
+<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub xmlns:test="http://test/ns" test:attr="value"/&gt;'</tt> </tt>
+<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line">            <tt id="link-2313" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2244', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2245" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2245', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2246" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2246', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2127"></a><tt class="py-lineno">2127</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-def"><a name="L2128"></a><tt class="py-lineno">2128</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-expanded"><a name="L2129"></a><tt class="py-lineno">2129</tt>  <tt class="py-line">        <tt id="link-2247" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2313', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2314" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2314', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2315" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2315', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-def"><a name="L2168"></a><tt class="py-lineno">2168</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge_with_nons">test_attribute_gets_namespace_prefix_on_merge_with_nons</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge_with_nons-expanded"><a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">        <tt id="link-2316" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2247', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2248" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2316', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2317" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2248', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2130"></a><tt class="py-lineno">2130</tt>  <tt class="py-line"> </tt>
-<a name="L2131"></a><tt class="py-lineno">2131</tt>  <tt class="py-line">        <tt id="link-2249" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2249', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2250" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2317', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line"> </tt>
+<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">        <tt id="link-2318" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2318', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2319" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2250', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2251" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2319', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2320" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2251', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2132"></a><tt class="py-lineno">2132</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2252" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2320', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2321" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2252', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2253" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2321', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2322" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2253', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2133"></a><tt class="py-lineno">2133</tt>  <tt class="py-line">                            <tt id="link-2254" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2254', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2134"></a><tt class="py-lineno">2134</tt>  <tt class="py-line"> </tt>
-<a name="L2135"></a><tt class="py-lineno">2135</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2255" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2322', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2173"></a><tt class="py-lineno">2173</tt>  <tt class="py-line">                            <tt id="link-2323" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2323', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line"> </tt>
+<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2324" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2255', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L2136"></a><tt class="py-lineno">2136</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2256" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2324', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2325" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2256', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2137"></a><tt class="py-lineno">2137</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2138"></a><tt class="py-lineno">2138</tt>  <tt class="py-line">            <tt id="link-2257" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2257', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
-<a name="L2139"></a><tt class="py-lineno">2139</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2140"></a><tt class="py-lineno">2140</tt>  <tt class="py-line">            <tt id="link-2258" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2325', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">            <tt id="link-2326" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2326', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
+<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">            <tt id="link-2327" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2258', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2259" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2259', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2141"></a><tt class="py-lineno">2141</tt>  <tt class="py-line"> </tt>
-<a name="L2142"></a><tt class="py-lineno">2142</tt>  <tt class="py-line">        <tt id="link-2260" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2260', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2261" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2261', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2143"></a><tt class="py-lineno">2143</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2144"></a><tt class="py-lineno">2144</tt>  <tt class="py-line">            <tt id="link-2262" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2262', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
-<a name="L2145"></a><tt class="py-lineno">2145</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns="http://test/ns"'</tt> </tt>
-<a name="L2146"></a><tt class="py-lineno">2146</tt>  <tt class="py-line">                   <tt class="py-string">' xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt> </tt>
-<a name="L2147"></a><tt class="py-lineno">2147</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2148"></a><tt class="py-lineno">2148</tt>  <tt class="py-line">            <tt id="link-2263" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2327', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2328" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2328', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line"> </tt>
+<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">        <tt id="link-2329" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2329', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2330" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2330', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2184"></a><tt class="py-lineno">2184</tt>  <tt class="py-line">            <tt id="link-2331" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2331', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root&gt;'</tt> </tt>
+<a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;sub xmlns="http://test/ns"'</tt> </tt>
+<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line">                   <tt class="py-string">' xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt> </tt>
+<a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">            <tt id="link-2332" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2263', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2264" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2264', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2265" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2265', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2149"></a><tt class="py-lineno">2149</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-def"><a name="L2150"></a><tt class="py-lineno">2150</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-expanded"><a name="L2151"></a><tt class="py-lineno">2151</tt>  <tt class="py-line">        <tt id="link-2266" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2332', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2333" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2333', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2334" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2334', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge"></a><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-def"><a name="L2190"></a><tt class="py-lineno">2190</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-toggle" onclick="return toggle('ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_attribute_gets_namespace_prefix_on_merge">test_attribute_gets_namespace_prefix_on_merge</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_attribute_gets_namespace_prefix_on_merge-expanded"><a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line">        <tt id="link-2335" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2266', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2267" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2335', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2336" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2267', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2152"></a><tt class="py-lineno">2152</tt>  <tt class="py-line"> </tt>
-<a name="L2153"></a><tt class="py-lineno">2153</tt>  <tt class="py-line">        <tt id="link-2268" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2268', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2269" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2336', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line"> </tt>
+<a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line">        <tt id="link-2337" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2337', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2338" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2269', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2270" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2338', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2339" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2270', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2154"></a><tt class="py-lineno">2154</tt>  <tt class="py-line">                             <tt id="link-2271" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2271', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2155"></a><tt class="py-lineno">2155</tt>  <tt class="py-line">                                    <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2156"></a><tt class="py-lineno">2156</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2272" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2339', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}root'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">                             <tt id="link-2340" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2340', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'test'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">                                    <tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line">        <tt class="py-name">sub</tt> <tt class="py-op">=</tt> <tt id="link-2341" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2272', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2273" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2341', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2342" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2273', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2157"></a><tt class="py-lineno">2157</tt>  <tt class="py-line">                            <tt id="link-2274" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2274', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L2158"></a><tt class="py-lineno">2158</tt>  <tt class="py-line"> </tt>
-<a name="L2159"></a><tt class="py-lineno">2159</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2275" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2342', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://test/ns}sub'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line">                            <tt id="link-2343" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2343', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://test/ns'</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line"> </tt>
+<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line">        <tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2344" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2275', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
-<a name="L2160"></a><tt class="py-lineno">2160</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2276" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2344', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">'value'</tt> </tt>
+<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">.</tt><tt id="link-2345" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2276', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2161"></a><tt class="py-lineno">2161</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2162"></a><tt class="py-lineno">2162</tt>  <tt class="py-line">            <tt id="link-2277" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2277', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
-<a name="L2163"></a><tt class="py-lineno">2163</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2164"></a><tt class="py-lineno">2164</tt>  <tt class="py-line">            <tt id="link-2278" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-2345', 'attrib', 'link-216');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-string">'{http://test/ns}attr'</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-string">'value'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">            <tt id="link-2346" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2346', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;sub xmlns="http://test/ns" '</tt> </tt>
+<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line">                   <tt class="py-string">'xmlns:ns0="http://test/ns" ns0:attr="value"/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">            <tt id="link-2347" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2278', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2279" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2279', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2165"></a><tt class="py-lineno">2165</tt>  <tt class="py-line"> </tt>
-<a name="L2166"></a><tt class="py-lineno">2166</tt>  <tt class="py-line">        <tt id="link-2280" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2280', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2281" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2281', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
-<a name="L2167"></a><tt class="py-lineno">2167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2168"></a><tt class="py-lineno">2168</tt>  <tt class="py-line">            <tt id="link-2282" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2282', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:root xmlns:test="http://test/ns" xmlns="http://test/ns"&gt;'</tt> </tt>
-<a name="L2169"></a><tt class="py-lineno">2169</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub test:attr="value"/&gt;'</tt> </tt>
-<a name="L2170"></a><tt class="py-lineno">2170</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/test:root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2171"></a><tt class="py-lineno">2171</tt>  <tt class="py-line">            <tt id="link-2283" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2347', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2348" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2348', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line"> </tt>
+<a name="L2206"></a><tt class="py-lineno">2206</tt>  <tt class="py-line">        <tt id="link-2349" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2349', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2350" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2350', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">sub</tt><tt class="py-op">)</tt> </tt>
+<a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line">            <tt id="link-2351" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2351', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;test:root xmlns:test="http://test/ns" xmlns="http://test/ns"&gt;'</tt> </tt>
+<a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;test:sub test:attr="value"/&gt;'</tt> </tt>
+<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">                   <tt class="py-string">'&lt;/test:root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">            <tt id="link-2352" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2283', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2284" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2284', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2285" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2285', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2172"></a><tt class="py-lineno">2172</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_elementtree"></a><div id="ETreeOnlyTestCase.test_namespaces_elementtree-def"><a name="L2173"></a><tt class="py-lineno">2173</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_elementtree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-expanded"><a name="L2174"></a><tt class="py-lineno">2174</tt>  <tt class="py-line">        <tt id="link-2286" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2352', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2353" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2353', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2354" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2354', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_elementtree"></a><div id="ETreeOnlyTestCase.test_namespaces_elementtree-def"><a name="L2213"></a><tt class="py-lineno">2213</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_elementtree-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_elementtree');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_elementtree">test_namespaces_elementtree</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_elementtree-expanded"><a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line">        <tt id="link-2355" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2286', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2287" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2355', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2356" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2287', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2175"></a><tt class="py-lineno">2175</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2176"></a><tt class="py-lineno">2176</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt>  </tt>
-<a name="L2177"></a><tt class="py-lineno">2177</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2288" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2356', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt>  </tt>
+<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2357" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2288', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2289" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2357', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2289', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}z'</tt><tt class="py-op">,</tt> <tt id="link-2290" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2290', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2178"></a><tt class="py-lineno">2178</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2291" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2358', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}z'</tt><tt class="py-op">,</tt> <tt id="link-2359" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2359', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2360" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2291', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2292" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2360', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2361" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2292', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
-<a name="L2179"></a><tt class="py-lineno">2179</tt>  <tt class="py-line">        <tt id="link-2293" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2361', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">e</tt><tt class="py-op">)</tt> </tt>
+<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">        <tt id="link-2362" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2293', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2294" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2294', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/hoi}x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2180"></a><tt class="py-lineno">2180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2181"></a><tt class="py-lineno">2181</tt>  <tt class="py-line">            <tt id="link-2295" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2295', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi"&gt;&lt;hoi:x&gt;&lt;/hoi:x&gt;&lt;/z&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2182"></a><tt class="py-lineno">2182</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2296" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
-lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2296', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2183"></a><tt class="py-lineno">2183</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_default_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-def"><a name="L2184"></a><tt class="py-lineno">2184</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-expanded"><a name="L2185"></a><tt class="py-lineno">2185</tt>  <tt class="py-line">        <tt id="link-2297" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2362', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2363" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2363', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/hoi}x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line">            <tt id="link-2364" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2364', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z xmlns="http://ns.infrae.com/foo" xmlns:hoi="http://ns.infrae.com/hoi"&gt;&lt;hoi:x&gt;&lt;/hoi:x&gt;&lt;/z&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2365" class="py-name"><a title="lxml.tests.test_elementtree._ETreeTestCaseBase._writeElement
+lxml.tests.test_etree.ETreeOnlyTestCase._writeElement" class="py-name" href="#" onclick="return doclink('link-2365', '_writeElement', 'link-257');">_writeElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_default_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-def"><a name="L2224"></a><tt class="py-lineno">2224</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_default_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_default_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_default_copy_element">test_namespaces_default_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_default_copy_element-expanded"><a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line">        <tt id="link-2366" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2297', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2298" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2366', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2367" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2298', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2186"></a><tt class="py-lineno">2186</tt>  <tt class="py-line"> </tt>
-<a name="L2187"></a><tt class="py-lineno">2187</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2188"></a><tt class="py-lineno">2188</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2299" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2367', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line"> </tt>
+<a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2228"></a><tt class="py-lineno">2228</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2368" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2299', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2300" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2368', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2369" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2300', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2301" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2301', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2189"></a><tt class="py-lineno">2189</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2302" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2369', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2370" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2370', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2371" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2302', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2303" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2371', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2372" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2303', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2304" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2304', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2190"></a><tt class="py-lineno">2190</tt>  <tt class="py-line"> </tt>
-<a name="L2191"></a><tt class="py-lineno">2191</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2305" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2305', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2192"></a><tt class="py-lineno">2192</tt>  <tt class="py-line"> </tt>
-<a name="L2193"></a><tt class="py-lineno">2193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2194"></a><tt class="py-lineno">2194</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2195"></a><tt class="py-lineno">2195</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2306" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2306', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2196"></a><tt class="py-lineno">2196</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2197"></a><tt class="py-lineno">2197</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2198"></a><tt class="py-lineno">2198</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2307" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2307', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2199"></a><tt class="py-lineno">2199</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2200"></a><tt class="py-lineno">2200</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2201"></a><tt class="py-lineno">2201</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2308" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2372', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2373" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2373', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line"> </tt>
+<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2374" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2374', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line"> </tt>
+<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2375" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2375', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2376" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2376', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2377" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2308', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2202"></a><tt class="py-lineno">2202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2203"></a><tt class="py-lineno">2203</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2204"></a><tt class="py-lineno">2204</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2309" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2377', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2244"></a><tt class="py-lineno">2244</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2378" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2309', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2205"></a><tt class="py-lineno">2205</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_copy_element-def"><a name="L2206"></a><tt class="py-lineno">2206</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-expanded"><a name="L2207"></a><tt class="py-lineno">2207</tt>  <tt class="py-line">        <tt id="link-2310" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2378', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_copy_element"></a><div id="ETreeOnlyTestCase.test_namespaces_copy_element-def"><a name="L2246"></a><tt class="py-lineno">2246</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_copy_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_copy_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_copy_element">test_namespaces_copy_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_copy_element-expanded"><a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">        <tt id="link-2379" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2310', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2311" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2379', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2311', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2208"></a><tt class="py-lineno">2208</tt>  <tt class="py-line"> </tt>
-<a name="L2209"></a><tt class="py-lineno">2209</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/BAR'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2210"></a><tt class="py-lineno">2210</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2312" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2380', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line"> </tt>
+<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/BAR'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">        <tt class="py-name">e1</tt> <tt class="py-op">=</tt> <tt id="link-2381" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2312', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2313" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2381', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2382" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2313', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> <tt id="link-2314" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2314', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2211"></a><tt class="py-lineno">2211</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2315" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2382', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> <tt id="link-2383" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2383', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">        <tt class="py-name">e2</tt> <tt class="py-op">=</tt> <tt id="link-2384" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2315', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2316" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2384', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2385" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2316', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2317" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2317', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2212"></a><tt class="py-lineno">2212</tt>  <tt class="py-line"> </tt>
-<a name="L2213"></a><tt class="py-lineno">2213</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2318" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2318', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2214"></a><tt class="py-lineno">2214</tt>  <tt class="py-line"> </tt>
-<a name="L2215"></a><tt class="py-lineno">2215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2216"></a><tt class="py-lineno">2216</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2217"></a><tt class="py-lineno">2217</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2319" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2319', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2218"></a><tt class="py-lineno">2218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2219"></a><tt class="py-lineno">2219</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
-<a name="L2220"></a><tt class="py-lineno">2220</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2320" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2320', 'prefix', 'link-1840');">prefix</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2221"></a><tt class="py-lineno">2221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2222"></a><tt class="py-lineno">2222</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2223"></a><tt class="py-lineno">2223</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2321" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2385', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2386" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2386', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2252"></a><tt class="py-lineno">2252</tt>  <tt class="py-line"> </tt>
+<a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line">        <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2387" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2387', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">e2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2254"></a><tt class="py-lineno">2254</tt>  <tt class="py-line"> </tt>
+<a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2388" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2388', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2258"></a><tt class="py-lineno">2258</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line">            <tt class="py-name">None</tt><tt class="py-op">,</tt> </tt>
+<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2389" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-2389', 'prefix', 'link-1909');">prefix</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/BAR}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line">            <tt class="py-name">e1</tt><tt class="py-op">.</tt><tt id="link-2390" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2321', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2224"></a><tt class="py-lineno">2224</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2225"></a><tt class="py-lineno">2225</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2226"></a><tt class="py-lineno">2226</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2322" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2390', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2264"></a><tt class="py-lineno">2264</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">            <tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line">            <tt class="py-name">e2</tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2322', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2227"></a><tt class="py-lineno">2227</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespaces_reuse_after_move"></a><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-def"><a name="L2228"></a><tt class="py-lineno">2228</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_reuse_after_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-expanded"><a name="L2229"></a><tt class="py-lineno">2229</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
-<a name="L2230"></a><tt class="py-lineno">2230</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2323" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2391', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespaces_reuse_after_move"></a><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-def"><a name="L2268"></a><tt class="py-lineno">2268</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespaces_reuse_after_move');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespaces_reuse_after_move">test_namespaces_reuse_after_move</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespaces_reuse_after_move-expanded"><a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line">        <tt class="py-name">ns_href</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://a.b.c"</tt> </tt>
+<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line">        <tt class="py-name">one</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2392" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2323', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2324" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2392', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2393" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2324', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2231"></a><tt class="py-lineno">2231</tt>  <tt class="py-line">            <tt id="link-2325" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2325', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2232"></a><tt class="py-lineno">2232</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2233"></a><tt class="py-lineno">2233</tt>  <tt class="py-line"> </tt>
-<a name="L2234"></a><tt class="py-lineno">2234</tt>  <tt class="py-line">        <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2326" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2393', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">            <tt id="link-2394" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2394', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo&gt;&lt;bar xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">        <tt class="py-name">baz</tt> <tt class="py-op">=</tt> <tt class="py-name">one</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line"> </tt>
+<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line">        <tt class="py-name">two</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2395" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2326', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2327" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2395', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2396" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2327', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2235"></a><tt class="py-lineno">2235</tt>  <tt class="py-line">            <tt id="link-2328" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2328', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"/&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2236"></a><tt class="py-lineno">2236</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2329" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2329', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
-<a name="L2237"></a><tt class="py-lineno">2237</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">one</tt> <tt class="py-comment"># make sure the source document is deallocated</tt> </tt>
-<a name="L2238"></a><tt class="py-lineno">2238</tt>  <tt class="py-line"> </tt>
-<a name="L2239"></a><tt class="py-lineno">2239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">.</tt><tt id="link-2330" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2396', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line">            <tt id="link-2397" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2397', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"/&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">        <tt class="py-name">two</tt><tt class="py-op">.</tt><tt id="link-2398" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2398', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">baz</tt><tt class="py-op">)</tt> </tt>
+<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">one</tt> <tt class="py-comment"># make sure the source document is deallocated</tt> </tt>
+<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line"> </tt>
+<a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'{%s}baz'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">,</tt> <tt class="py-name">baz</tt><tt class="py-op">.</tt><tt id="link-2399" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2330', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2240"></a><tt class="py-lineno">2240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2241"></a><tt class="py-lineno">2241</tt>  <tt class="py-line">            <tt id="link-2331" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2331', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2242"></a><tt class="py-lineno">2242</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2332" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-2399', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2280"></a><tt class="py-lineno">2280</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line">            <tt id="link-2400" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2400', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;root xmlns:ns="%s"&gt;&lt;ns:baz/&gt;&lt;/root&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">ns_href</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2401" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2332', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2333" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2333', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">two</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2243"></a><tt class="py-lineno">2243</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_namespace_cleanup"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup-def"><a name="L2244"></a><tt class="py-lineno">2244</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_namespace_cleanup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup-expanded"><a name="L2245"></a><tt class="py-lineno">2245</tt>  <tt class="py-line">        <tt id="link-2334" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2334', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2335" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2335', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F" xmlns:x="x"&gt;&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2246"></a><tt class="py-lineno">2246</tt>  <tt class="py-line">        <tt id="link-2336" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2336', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2337" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2401', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2402" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2402', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">two</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_namespace_cleanup"></a><div id="ETreeOnlyTestCase.test_namespace_cleanup-def"><a name="L2284"></a><tt class="py-lineno">2284</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_namespace_cleanup-toggle" onclick="return toggle('ETreeOnlyTestCase.test_namespace_cleanup');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_namespace_cleanup">test_namespace_cleanup</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_namespace_cleanup-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_namespace_cleanup-expanded"><a name="L2285"></a><tt class="py-lineno">2285</tt>  <tt class="py-line">        <tt id="link-2403" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2403', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2404" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2404', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F" xmlns:x="x"&gt;&lt;bar xmlns:ns="NS" xmlns:b="b" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt id="link-2405" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2405', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2337', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2338" class="py-name"><a title="lxml.etree.fromstring
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2406', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2407" class="py-name"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2338', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2339" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2339', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2247"></a><tt class="py-lineno">2247</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2340" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2340', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2248"></a><tt class="py-lineno">2248</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2341" class="py-name"><a title="lxml.etree
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-2407', 'fromstring', 'link-729');">fromstring</a></tt><tt class="py-op">(</tt><tt id="link-2408" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2408', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2409" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2409', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line">                          <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2410" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2341', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2342" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2342', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2343" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2343', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2249"></a><tt class="py-lineno">2249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2344" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2410', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2411', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2412" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2412', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2413" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2344', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2345" class="py-name" targets="Function lxml.etree.cleanup_namespaces()=lxml.etree-module.html#cleanup_namespaces"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-2345', 'cleanup_namespaces', 'link-2345');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-2346" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2346', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2250"></a><tt class="py-lineno">2250</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2251"></a><tt class="py-lineno">2251</tt>  <tt class="py-line">            <tt id="link-2347" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2347', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F"&gt;&lt;bar xmlns:ns="NS" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2252"></a><tt class="py-lineno">2252</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2348" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2413', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2414" class="py-name" targets="Function lxml.etree.cleanup_namespaces()=lxml.etree-module.html#cleanup_namespaces"><a title="lxml.etree.cleanup_namespaces" class="py-name" href="#" onclick="return doclink('link-2414', 'cleanup_namespaces', 'link-2414');">cleanup_namespaces</a></tt><tt class="py-op">(</tt><tt id="link-2415" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2415', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">            <tt id="link-2416" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2416', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;foo xmlns="F"&gt;&lt;bar xmlns:ns="NS" xmlns="B"&gt;&lt;ns:baz/&gt;&lt;/bar&gt;&lt;/foo&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2417" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2348', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2349" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2349', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2350" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2350', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2253"></a><tt class="py-lineno">2253</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_element_nsmap"></a><div id="ETreeOnlyTestCase.test_element_nsmap-def"><a name="L2254"></a><tt class="py-lineno">2254</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_element_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_nsmap-expanded"><a name="L2255"></a><tt class="py-lineno">2255</tt>  <tt class="py-line">        <tt id="link-2351" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2417', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2418" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2418', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-2419" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2419', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_nsmap"></a><div id="ETreeOnlyTestCase.test_element_nsmap-def"><a name="L2294"></a><tt class="py-lineno">2294</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_nsmap">test_element_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_nsmap-expanded"><a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line">        <tt id="link-2420" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2351', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2352" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2420', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2421" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2352', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2256"></a><tt class="py-lineno">2256</tt>  <tt class="py-line"> </tt>
-<a name="L2257"></a><tt class="py-lineno">2257</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2258"></a><tt class="py-lineno">2258</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2259"></a><tt class="py-lineno">2259</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2353" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2421', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line"> </tt>
+<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2422" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2353', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2354" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2422', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2423" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2354', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2355" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2355', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
-<a name="L2260"></a><tt class="py-lineno">2260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2261"></a><tt class="py-lineno">2261</tt>  <tt class="py-line">            <tt class="py-name">r</tt><tt class="py-op">,</tt> </tt>
-<a name="L2262"></a><tt class="py-lineno">2262</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2356" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2356', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2263"></a><tt class="py-lineno">2263</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_subelement_nsmap"></a><div id="ETreeOnlyTestCase.test_subelement_nsmap-def"><a name="L2264"></a><tt class="py-lineno">2264</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_subelement_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_nsmap-expanded"><a name="L2265"></a><tt class="py-lineno">2265</tt>  <tt class="py-line">        <tt id="link-2357" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2423', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2424" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2424', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">r</tt><tt class="py-op">)</tt> </tt>
+<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">            <tt class="py-name">r</tt><tt class="py-op">,</tt> </tt>
+<a name="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2425" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2425', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_subelement_nsmap"></a><div id="ETreeOnlyTestCase.test_subelement_nsmap-def"><a name="L2304"></a><tt class="py-lineno">2304</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_subelement_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_subelement_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_subelement_nsmap">test_subelement_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_subelement_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_subelement_nsmap-expanded"><a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line">        <tt id="link-2426" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2357', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2358" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2426', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2427" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2358', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2266"></a><tt class="py-lineno">2266</tt>  <tt class="py-line"> </tt>
-<a name="L2267"></a><tt class="py-lineno">2267</tt>  <tt class="py-line">        <tt class="py-name">re</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2268"></a><tt class="py-lineno">2268</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2269"></a><tt class="py-lineno">2269</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2359" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2427', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line"> </tt>
+<a name="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line">        <tt class="py-name">re</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/foo'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">             <tt class="py-string">'hoi'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/hoi'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2428" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2359', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2360" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2428', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2429" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2360', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2361" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2361', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">)</tt> </tt>
-<a name="L2270"></a><tt class="py-lineno">2270</tt>  <tt class="py-line"> </tt>
-<a name="L2271"></a><tt class="py-lineno">2271</tt>  <tt class="py-line">        <tt class="py-name">rs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/honk'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2272"></a><tt class="py-lineno">2272</tt>  <tt class="py-line">             <tt class="py-string">'top'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/top'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2273"></a><tt class="py-lineno">2273</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-2362" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2429', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://ns.infrae.com/foo}bar'</tt><tt class="py-op">,</tt> <tt id="link-2430" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2430', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">re</tt><tt class="py-op">)</tt> </tt>
+<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line"> </tt>
+<a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line">        <tt class="py-name">rs</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-name">None</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/honk'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2312"></a><tt class="py-lineno">2312</tt>  <tt class="py-line">             <tt class="py-string">'top'</tt><tt class="py-op">:</tt> <tt class="py-string">'http://ns.infrae.com/top'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-2431" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2362', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2363" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2363', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/honk}bar'</tt><tt class="py-op">,</tt> <tt id="link-2364" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2364', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
-<a name="L2274"></a><tt class="py-lineno">2274</tt>  <tt class="py-line"> </tt>
-<a name="L2275"></a><tt class="py-lineno">2275</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2365" class="py-name"><a title="lxml.etree.PyErrorLog.copy
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2431', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2432" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2432', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{http://ns.infrae.com/honk}bar'</tt><tt class="py-op">,</tt> <tt id="link-2433" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2433', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">=</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
+<a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line"> </tt>
+<a name="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line">        <tt class="py-name">r</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt id="link-2434" class="py-name"><a title="lxml.etree.PyErrorLog.copy
 lxml.etree._BaseErrorLog.copy
 lxml.etree._ErrorLog.copy
 lxml.etree._IDDict.copy
 lxml.etree._ListErrorLog.copy
-lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-2365', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2276"></a><tt class="py-lineno">2276</tt>  <tt class="py-line">        <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-2366" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-2366', 'update', 'link-2366');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
-<a name="L2277"></a><tt class="py-lineno">2277</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2367" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2367', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2278"></a><tt class="py-lineno">2278</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt>  <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-2368" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2368', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2279"></a><tt class="py-lineno">2279</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_prefix_nsmap"></a><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-def"><a name="L2280"></a><tt class="py-lineno">2280</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_prefix_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_prefix_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-expanded"><a name="L2281"></a><tt class="py-lineno">2281</tt>  <tt class="py-line">        <tt id="link-2369" class="py-name"><a title="lxml.etree
+lxml.etree.iterparse.copy" class="py-name" href="#" onclick="return doclink('link-2434', 'copy', 'link-1');">copy</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt class="py-name">r</tt><tt class="py-op">.</tt><tt id="link-2435" class="py-name" targets="Method lxml.etree._Attrib.update()=lxml.etree._Attrib-class.html#update"><a title="lxml.etree._Attrib.update" class="py-name" href="#" onclick="return doclink('link-2435', 'update', 'link-2435');">update</a></tt><tt class="py-op">(</tt><tt class="py-name">rs</tt><tt class="py-op">)</tt> </tt>
+<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2436" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2436', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">r</tt><tt class="py-op">,</tt>  <tt class="py-name">s</tt><tt class="py-op">.</tt><tt id="link-2437" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2437', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_prefix_nsmap"></a><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-def"><a name="L2320"></a><tt class="py-lineno">2320</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_prefix_nsmap-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_prefix_nsmap');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_prefix_nsmap">test_html_prefix_nsmap</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_prefix_nsmap-expanded"><a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">        <tt id="link-2438" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2369', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2370" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2438', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2439" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2370', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2282"></a><tt class="py-lineno">2282</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2371" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2439', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2440" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2371', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2372" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2440', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2441" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2372', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;hha:page-description&gt;aa&lt;/hha:page-description&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2373" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2441', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;hha:page-description&gt;aa&lt;/hha:page-description&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2442" class="py-name" targets="Method lxml.etree._Element.find()=lxml.etree._Element-class.html#find,Method lxml.etree._ElementTree.find()=lxml.etree._ElementTree-class.html#find,Variable lxml.objectify.ObjectPath.find=lxml.objectify.ObjectPath-class.html#find"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2373', 'find', 'link-2373');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//page-description'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2283"></a><tt class="py-lineno">2283</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'hha'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2374" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2374', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2284"></a><tt class="py-lineno">2284</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-def"><a name="L2285"></a><tt class="py-lineno">2285</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-expanded"><a name="L2286"></a><tt class="py-lineno">2286</tt>  <tt class="py-line">        <tt id="link-2375" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2442', 'find', 'link-2442');">find</a></tt><tt class="py-op">(</tt><tt class="py-string">'.//page-description'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-op">{</tt><tt class="py-string">'hha'</tt><tt class="py-op">:</tt> <tt class="py-name">None</tt><tt class="py-op">}</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2443" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2443', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-def"><a name="L2325"></a><tt class="py-lineno">2325</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple">test_getiterator_filter_multiple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple-expanded"><a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">        <tt id="link-2444" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2375', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2376" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2444', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2445" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2376', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2377" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2445', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2377', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2287"></a><tt class="py-lineno">2287</tt>  <tt class="py-line">        <tt id="link-2378" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2378', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2379" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2446', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">        <tt id="link-2447" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2447', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2448" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2379', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2380" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2380', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2288"></a><tt class="py-lineno">2288</tt>  <tt class="py-line"> </tt>
-<a name="L2289"></a><tt class="py-lineno">2289</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2381" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2448', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2449" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2449', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line"> </tt>
+<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2450" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2381', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2290"></a><tt class="py-lineno">2290</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2382" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2382', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2291"></a><tt class="py-lineno">2291</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2383" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2383', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2292"></a><tt class="py-lineno">2292</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2384" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2384', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2293"></a><tt class="py-lineno">2293</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2385" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2385', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2294"></a><tt class="py-lineno">2294</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2386" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2386', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2295"></a><tt class="py-lineno">2295</tt>  <tt class="py-line"> </tt>
-<a name="L2296"></a><tt class="py-lineno">2296</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2297"></a><tt class="py-lineno">2297</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2298"></a><tt class="py-lineno">2298</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2387" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2387', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2299"></a><tt class="py-lineno">2299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2300"></a><tt class="py-lineno">2300</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2301"></a><tt class="py-lineno">2301</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2388" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2388', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2302"></a><tt class="py-lineno">2302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2303"></a><tt class="py-lineno">2303</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2304"></a><tt class="py-lineno">2304</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2389" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2389', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2305"></a><tt class="py-lineno">2305</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2306"></a><tt class="py-lineno">2306</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2307"></a><tt class="py-lineno">2307</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2390" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2390', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2308"></a><tt class="py-lineno">2308</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2309"></a><tt class="py-lineno">2309</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2310"></a><tt class="py-lineno">2310</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2391" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2391', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2311"></a><tt class="py-lineno">2311</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-def"><a name="L2312"></a><tt class="py-lineno">2312</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-expanded"><a name="L2313"></a><tt class="py-lineno">2313</tt>  <tt class="py-line">        <tt id="link-2392" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2450', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2451" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2451', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2452" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2452', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2453" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2453', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2454" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2454', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2455" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2455', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line"> </tt>
+<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2456" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2456', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2339"></a><tt class="py-lineno">2339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2457" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2457', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2458" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2458', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line">               <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2459" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2459', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2460" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2460', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-def"><a name="L2352"></a><tt class="py-lineno">2352</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_multiple_tuple">test_getiterator_filter_multiple_tuple</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_multiple_tuple-expanded"><a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line">        <tt id="link-2461" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2392', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2393" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2461', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2462" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2393', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2394" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2462', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2463" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2394', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2314"></a><tt class="py-lineno">2314</tt>  <tt class="py-line">        <tt id="link-2395" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2395', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2396" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2463', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2354"></a><tt class="py-lineno">2354</tt>  <tt class="py-line">        <tt id="link-2464" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2464', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2465" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2396', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2397" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2397', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2315"></a><tt class="py-lineno">2315</tt>  <tt class="py-line"> </tt>
-<a name="L2316"></a><tt class="py-lineno">2316</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2398" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2398', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2317"></a><tt class="py-lineno">2317</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2399" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2399', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2318"></a><tt class="py-lineno">2318</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2400" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2400', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2319"></a><tt class="py-lineno">2319</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2401" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2401', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2320"></a><tt class="py-lineno">2320</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2402" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2402', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2321"></a><tt class="py-lineno">2321</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2403" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2403', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2322"></a><tt class="py-lineno">2322</tt>  <tt class="py-line"> </tt>
-<a name="L2323"></a><tt class="py-lineno">2323</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2324"></a><tt class="py-lineno">2324</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2325"></a><tt class="py-lineno">2325</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2404" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2404', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2326"></a><tt class="py-lineno">2326</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2327"></a><tt class="py-lineno">2327</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2328"></a><tt class="py-lineno">2328</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2405" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2405', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2329"></a><tt class="py-lineno">2329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2330"></a><tt class="py-lineno">2330</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2331"></a><tt class="py-lineno">2331</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2406" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2406', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2332"></a><tt class="py-lineno">2332</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2333"></a><tt class="py-lineno">2333</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2334"></a><tt class="py-lineno">2334</tt>  <tt class="py-line">                     <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2407" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2407', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2335"></a><tt class="py-lineno">2335</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2336"></a><tt class="py-lineno">2336</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2337"></a><tt class="py-lineno">2337</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2408" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2408', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2338"></a><tt class="py-lineno">2338</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_namespace"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-def"><a name="L2339"></a><tt class="py-lineno">2339</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_namespace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_namespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-expanded"><a name="L2340"></a><tt class="py-lineno">2340</tt>  <tt class="py-line">        <tt id="link-2409" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2465', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2466" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2466', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line"> </tt>
+<a name="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2467" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2409', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2410" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2410', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2411" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2411', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2341"></a><tt class="py-lineno">2341</tt>  <tt class="py-line">        <tt id="link-2412" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2412', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2413" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2413', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2414" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2414', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2342"></a><tt class="py-lineno">2342</tt>  <tt class="py-line"> </tt>
-<a name="L2343"></a><tt class="py-lineno">2343</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2415" class="py-name"><a title="lxml.etree.Element
-lxml.objectify.Element
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2415', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2344"></a><tt class="py-lineno">2344</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2416" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2416', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2345"></a><tt class="py-lineno">2345</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2417" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2417', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2346"></a><tt class="py-lineno">2346</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2418" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2418', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2347"></a><tt class="py-lineno">2347</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2419" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2419', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2348"></a><tt class="py-lineno">2348</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2420" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2420', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2349"></a><tt class="py-lineno">2349</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2421" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2421', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2350"></a><tt class="py-lineno">2350</tt>  <tt class="py-line"> </tt>
-<a name="L2351"></a><tt class="py-lineno">2351</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2352"></a><tt class="py-lineno">2352</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2353"></a><tt class="py-lineno">2353</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2422" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2422', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2354"></a><tt class="py-lineno">2354</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2355"></a><tt class="py-lineno">2355</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2356"></a><tt class="py-lineno">2356</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2423" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2423', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2424" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2424', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2425" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2425', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2467', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2357"></a><tt class="py-lineno">2357</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2468" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2468', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2358"></a><tt class="py-lineno">2358</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2469" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2469', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2359"></a><tt class="py-lineno">2359</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2470" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2470', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2360"></a><tt class="py-lineno">2360</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2471" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2471', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2361"></a><tt class="py-lineno">2361</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2472" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2472', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2362"></a><tt class="py-lineno">2362</tt>  <tt class="py-line"> </tt>
 <a name="L2363"></a><tt class="py-lineno">2363</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2364"></a><tt class="py-lineno">2364</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2426" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2426', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2364"></a><tt class="py-lineno">2364</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2365"></a><tt class="py-lineno">2365</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2473" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2473', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L2366"></a><tt class="py-lineno">2366</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2427" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2427', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2367"></a><tt class="py-lineno">2367</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2368"></a><tt class="py-lineno">2368</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2474" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2474', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L2369"></a><tt class="py-lineno">2369</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2428" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2428', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2370"></a><tt class="py-lineno">2370</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2371"></a><tt class="py-lineno">2371</tt>  <tt class="py-line">                  <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2475" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2475', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L2372"></a><tt class="py-lineno">2372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2373"></a><tt class="py-lineno">2373</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2429" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2429', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2373"></a><tt class="py-lineno">2373</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2374"></a><tt class="py-lineno">2374</tt>  <tt class="py-line">                     <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2476" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2476', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-string">'c'</tt><tt class="py-op">,</tt> <tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'a'</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L2375"></a><tt class="py-lineno">2375</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2430" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2430', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2376"></a><tt class="py-lineno">2376</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2377"></a><tt class="py-lineno">2377</tt>  <tt class="py-line">              <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2477" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2477', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt> <tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L2378"></a><tt class="py-lineno">2378</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_local_name"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-def"><a name="L2379"></a><tt class="py-lineno">2379</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_local_name-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_local_name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-expanded"><a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line">        <tt id="link-2431" class="py-name"><a title="lxml.etree.Element
+<a name="ETreeOnlyTestCase.test_getiterator_filter_namespace"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-def"><a name="L2379"></a><tt class="py-lineno">2379</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_namespace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_namespace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_namespace">test_getiterator_filter_namespace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_namespace-expanded"><a name="L2380"></a><tt class="py-lineno">2380</tt>  <tt class="py-line">        <tt id="link-2478" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2431', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2432" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2478', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2479" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2432', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2433" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2479', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2480" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2433', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2381"></a><tt class="py-lineno">2381</tt>  <tt class="py-line">        <tt id="link-2434" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2434', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2435" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2480', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2381"></a><tt class="py-lineno">2381</tt>  <tt class="py-line">        <tt id="link-2481" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2481', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2482" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2435', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2436" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2436', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2482', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2483" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2483', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
 <a name="L2382"></a><tt class="py-lineno">2382</tt>  <tt class="py-line"> </tt>
-<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2437" class="py-name"><a title="lxml.etree.Element
+<a name="L2383"></a><tt class="py-lineno">2383</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2484" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2437', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2438" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2438', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2439" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2439', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2440" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2440', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2441" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2441', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2388"></a><tt class="py-lineno">2388</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2442" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2442', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2443" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2443', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2484', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2384"></a><tt class="py-lineno">2384</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2485" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2485', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2385"></a><tt class="py-lineno">2385</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2486" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2486', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2386"></a><tt class="py-lineno">2386</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2487" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2487', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2387"></a><tt class="py-lineno">2387</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2488" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2488', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{a}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2388"></a><tt class="py-lineno">2388</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2489" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2489', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'{b}f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2389"></a><tt class="py-lineno">2389</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2490" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2490', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
 <a name="L2390"></a><tt class="py-lineno">2390</tt>  <tt class="py-line"> </tt>
 <a name="L2391"></a><tt class="py-lineno">2391</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2444" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2444', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2392"></a><tt class="py-lineno">2392</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2393"></a><tt class="py-lineno">2393</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2491" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2491', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L2394"></a><tt class="py-lineno">2394</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2396"></a><tt class="py-lineno">2396</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2445" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2445', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2395"></a><tt class="py-lineno">2395</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2396"></a><tt class="py-lineno">2396</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2492" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2492', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L2397"></a><tt class="py-lineno">2397</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2446" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2446', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_entities"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-def"><a name="L2401"></a><tt class="py-lineno">2401</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_entities-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_entities');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-expanded"><a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">        <tt id="link-2447" class="py-name"><a title="lxml.etree.Element
+<a name="L2398"></a><tt class="py-lineno">2398</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2399"></a><tt class="py-lineno">2399</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2493" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2493', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2400"></a><tt class="py-lineno">2400</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2401"></a><tt class="py-lineno">2401</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt><tt class="py-name">b</tt><tt class="py-op">,</tt><tt class="py-name">d</tt><tt class="py-op">,</tt><tt class="py-name">c</tt><tt class="py-op">,</tt><tt class="py-name">e</tt><tt class="py-op">,</tt><tt class="py-name">f</tt><tt class="py-op">,</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2402"></a><tt class="py-lineno">2402</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2494" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2494', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2405"></a><tt class="py-lineno">2405</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-2495" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2495', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2496" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2496', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{b}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2497" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2497', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2498" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2498', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}g'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2415"></a><tt class="py-lineno">2415</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2499" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2499', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_local_name"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-def"><a name="L2419"></a><tt class="py-lineno">2419</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_local_name-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_local_name');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_local_name">test_getiterator_filter_local_name</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_local_name-expanded"><a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">        <tt id="link-2500" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2447', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2448" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2500', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2501" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2448', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2449" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2501', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2502" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2449', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2403"></a><tt class="py-lineno">2403</tt>  <tt class="py-line">        <tt id="link-2450" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2450', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2451" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2502', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line">        <tt id="link-2503" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2503', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2504" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2451', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2452" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2452', 'Entity', 'link-1346');">Entity</a></tt> </tt>
-<a name="L2404"></a><tt class="py-lineno">2404</tt>  <tt class="py-line">        <tt id="link-2453" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2453', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2454" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2504', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2505" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2505', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line"> </tt>
+<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2506" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2506', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'{a}a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2507" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2507', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2508" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2508', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2426"></a><tt class="py-lineno">2426</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2509" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2509', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2427"></a><tt class="py-lineno">2427</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2510" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2510', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsA}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2511" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2511', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'{nsB}e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2512" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2512', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2430"></a><tt class="py-lineno">2430</tt>  <tt class="py-line"> </tt>
+<a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2513" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2513', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}b'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2514" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2514', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}e'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2515" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2515', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'{*}*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_entities"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-def"><a name="L2441"></a><tt class="py-lineno">2441</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_entities-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_entities');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_entities">test_getiterator_filter_entities</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_entities-expanded"><a name="L2442"></a><tt class="py-lineno">2442</tt>  <tt class="py-line">        <tt id="link-2516" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2516', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2517" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2454', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2455" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2455', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2405"></a><tt class="py-lineno">2405</tt>  <tt class="py-line"> </tt>
-<a name="L2406"></a><tt class="py-lineno">2406</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2456" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2517', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2518" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2456', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2407"></a><tt class="py-lineno">2407</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2457" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2457', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2408"></a><tt class="py-lineno">2408</tt>  <tt class="py-line">        <tt class="py-name">entity_b</tt> <tt class="py-op">=</tt> <tt id="link-2458" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2458', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2409"></a><tt class="py-lineno">2409</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2459" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2459', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_b</tt><tt class="py-op">)</tt> </tt>
-<a name="L2410"></a><tt class="py-lineno">2410</tt>  <tt class="py-line"> </tt>
-<a name="L2411"></a><tt class="py-lineno">2411</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2412"></a><tt class="py-lineno">2412</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2413"></a><tt class="py-lineno">2413</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2460" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2460', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2461" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2461', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2414"></a><tt class="py-lineno">2414</tt>  <tt class="py-line"> </tt>
-<a name="L2415"></a><tt class="py-lineno">2415</tt>  <tt class="py-line">        <tt class="py-name">entity_a</tt> <tt class="py-op">=</tt> <tt id="link-2462" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2462', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2416"></a><tt class="py-lineno">2416</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2463" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2463', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_a</tt><tt class="py-op">)</tt> </tt>
-<a name="L2417"></a><tt class="py-lineno">2417</tt>  <tt class="py-line"> </tt>
-<a name="L2418"></a><tt class="py-lineno">2418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2419"></a><tt class="py-lineno">2419</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">,</tt> <tt class="py-name">entity_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2420"></a><tt class="py-lineno">2420</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2464" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2464', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2465" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2465', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2421"></a><tt class="py-lineno">2421</tt>  <tt class="py-line"> </tt>
-<a name="L2422"></a><tt class="py-lineno">2422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2423"></a><tt class="py-lineno">2423</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2424"></a><tt class="py-lineno">2424</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2466" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2466', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2467" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2467', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2425"></a><tt class="py-lineno">2425</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_element"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_element-def"><a name="L2426"></a><tt class="py-lineno">2426</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-expanded"><a name="L2427"></a><tt class="py-lineno">2427</tt>  <tt class="py-line">        <tt id="link-2468" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2518', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2443"></a><tt class="py-lineno">2443</tt>  <tt class="py-line">        <tt id="link-2519" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2519', 'Entity', 'link-1346');">Entity</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2520" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2520', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2521" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2521', 'Entity', 'link-1346');">Entity</a></tt> </tt>
+<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">        <tt id="link-2522" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2522', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2523" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2523', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2524" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2524', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2445"></a><tt class="py-lineno">2445</tt>  <tt class="py-line"> </tt>
+<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2525" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2525', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2526" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2526', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2448"></a><tt class="py-lineno">2448</tt>  <tt class="py-line">        <tt class="py-name">entity_b</tt> <tt class="py-op">=</tt> <tt id="link-2527" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2527', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-b"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2528', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_b</tt><tt class="py-op">)</tt> </tt>
+<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line"> </tt>
+<a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2529" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2529', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2530" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2530', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line"> </tt>
+<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">        <tt class="py-name">entity_a</tt> <tt class="py-op">=</tt> <tt id="link-2531" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2531', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">(</tt><tt class="py-string">"TEST-a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2532" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2532', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">entity_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line"> </tt>
+<a name="L2458"></a><tt class="py-lineno">2458</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2459"></a><tt class="py-lineno">2459</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">,</tt> <tt class="py-name">entity_a</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2533" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2533', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2534" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2534', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line"> </tt>
+<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">entity_b</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-2535" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2535', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2536" class="py-name"><a title="lxml.etree.Entity" class="py-name" href="#" onclick="return doclink('link-2536', 'Entity', 'link-1346');">Entity</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2465"></a><tt class="py-lineno">2465</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_element"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_element-def"><a name="L2466"></a><tt class="py-lineno">2466</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_element">test_getiterator_filter_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_element-expanded"><a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">        <tt id="link-2537" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2468', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2469" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2537', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2538" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2469', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2470" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2538', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2539" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2470', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2428"></a><tt class="py-lineno">2428</tt>  <tt class="py-line">        <tt id="link-2471" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2471', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2472" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2539', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line">        <tt id="link-2540" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2540', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2541" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2472', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2473" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2473', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L2429"></a><tt class="py-lineno">2429</tt>  <tt class="py-line">        <tt id="link-2474" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2474', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2475" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2541', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2542" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2542', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">        <tt id="link-2543" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2543', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2544" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2475', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2476" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2476', 'PI', 'link-408');">PI</a></tt> </tt>
-<a name="L2430"></a><tt class="py-lineno">2430</tt>  <tt class="py-line">        <tt id="link-2477" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2477', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2478" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2544', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2545" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2545', 'PI', 'link-408');">PI</a></tt> </tt>
+<a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt id="link-2546" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2546', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2547" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2478', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2479" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2479', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2431"></a><tt class="py-lineno">2431</tt>  <tt class="py-line"> </tt>
-<a name="L2432"></a><tt class="py-lineno">2432</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2480" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2547', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2548" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2548', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line"> </tt>
+<a name="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2549" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2480', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2433"></a><tt class="py-lineno">2433</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2481" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2481', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2434"></a><tt class="py-lineno">2434</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2482" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2482', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2483" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2483', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2435"></a><tt class="py-lineno">2435</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2484" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2484', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2485" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2485', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2436"></a><tt class="py-lineno">2436</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2486" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2486', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2437"></a><tt class="py-lineno">2437</tt>  <tt class="py-line"> </tt>
-<a name="L2438"></a><tt class="py-lineno">2438</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2439"></a><tt class="py-lineno">2439</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2440"></a><tt class="py-lineno">2440</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2487" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2487', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2488" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2549', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2473"></a><tt class="py-lineno">2473</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2550" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2550', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2474"></a><tt class="py-lineno">2474</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2551" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2551', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2552" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2552', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2553" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2553', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2554" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2554', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2555" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2555', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line"> </tt>
+<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2556" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2556', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt id="link-2557" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2488', 'Element', 'link-61');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2441"></a><tt class="py-lineno">2441</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-def"><a name="L2442"></a><tt class="py-lineno">2442</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-expanded"><a name="L2443"></a><tt class="py-lineno">2443</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree iterates over everything here</tt> </tt>
-<a name="L2444"></a><tt class="py-lineno">2444</tt>  <tt class="py-line">        <tt id="link-2489" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2557', 'Element', 'link-61');">Element</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi"></a><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-def"><a name="L2482"></a><tt class="py-lineno">2482</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-toggle" onclick="return toggle('ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_getiterator_filter_all_comment_pi">test_getiterator_filter_all_comment_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_getiterator_filter_all_comment_pi-expanded"><a name="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree iterates over everything here</tt> </tt>
+<a name="L2484"></a><tt class="py-lineno">2484</tt>  <tt class="py-line">        <tt id="link-2558" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2489', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2490" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2558', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2559" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2490', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2491" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2559', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2560" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2491', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2445"></a><tt class="py-lineno">2445</tt>  <tt class="py-line">        <tt id="link-2492" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2492', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2493" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2560', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">        <tt id="link-2561" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2561', 'Comment', 'link-410');">Comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2562" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2493', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2494" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2494', 'Comment', 'link-410');">Comment</a></tt> </tt>
-<a name="L2446"></a><tt class="py-lineno">2446</tt>  <tt class="py-line">        <tt id="link-2495" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2495', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2496" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2562', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2563" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2563', 'Comment', 'link-410');">Comment</a></tt> </tt>
+<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt id="link-2564" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2564', 'PI', 'link-408');">PI</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2565" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2496', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2497" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2497', 'PI', 'link-408');">PI</a></tt> </tt>
-<a name="L2447"></a><tt class="py-lineno">2447</tt>  <tt class="py-line">        <tt id="link-2498" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2498', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2499" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2565', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2566" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2566', 'PI', 'link-408');">PI</a></tt> </tt>
+<a name="L2487"></a><tt class="py-lineno">2487</tt>  <tt class="py-line">        <tt id="link-2567" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2567', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2568" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2499', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2500" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2500', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2448"></a><tt class="py-lineno">2448</tt>  <tt class="py-line"> </tt>
-<a name="L2449"></a><tt class="py-lineno">2449</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2501" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2568', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2569" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2569', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line"> </tt>
+<a name="L2489"></a><tt class="py-lineno">2489</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2570" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2501', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2450"></a><tt class="py-lineno">2450</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2502" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2502', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2451"></a><tt class="py-lineno">2451</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2503" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2503', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2504" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2504', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2452"></a><tt class="py-lineno">2452</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2505" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2505', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2506" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2506', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2453"></a><tt class="py-lineno">2453</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2507" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2507', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2454"></a><tt class="py-lineno">2454</tt>  <tt class="py-line"> </tt>
-<a name="L2455"></a><tt class="py-lineno">2455</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2456"></a><tt class="py-lineno">2456</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2457"></a><tt class="py-lineno">2457</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2508" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2508', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2458"></a><tt class="py-lineno">2458</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_find_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_find_qname-def"><a name="L2459"></a><tt class="py-lineno">2459</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_find_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_find_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-expanded"><a name="L2460"></a><tt class="py-lineno">2460</tt>  <tt class="py-line">        <tt id="link-2509" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2570', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2571" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2571', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2572" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2572', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2573" class="py-name"><a title="lxml.etree.Comment" class="py-name" href="#" onclick="return doclink('link-2573', 'Comment', 'link-410');">Comment</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2574" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-2574', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-2575" class="py-name"><a title="lxml.etree.PI" class="py-name" href="#" onclick="return doclink('link-2575', 'PI', 'link-408');">PI</a></tt><tt class="py-op">(</tt><tt class="py-string">"pi"</tt><tt class="py-op">,</tt> <tt class="py-string">"content"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2576" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2576', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line"> </tt>
+<a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2496"></a><tt class="py-lineno">2496</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2577', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-string">'*'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_find_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_find_qname-def"><a name="L2499"></a><tt class="py-lineno">2499</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_find_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_find_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_find_qname">test_elementtree_find_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_find_qname-expanded"><a name="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line">        <tt id="link-2578" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2509', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2510" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2578', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2579" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2510', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2511" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2579', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2580" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2511', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2461"></a><tt class="py-lineno">2461</tt>  <tt class="py-line">        <tt id="link-2512" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2580', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2501"></a><tt class="py-lineno">2501</tt>  <tt class="py-line">        <tt id="link-2581" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2512', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2513" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2581', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2582" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2513', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2514" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2582', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2583" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2514', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L2462"></a><tt class="py-lineno">2462</tt>  <tt class="py-line">        <tt id="link-2515" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2515', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2516" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2583', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line">        <tt id="link-2584" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2584', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2585" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2516', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2517" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2517', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L2463"></a><tt class="py-lineno">2463</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2518" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2585', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2586" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2586', 'QName', 'link-149');">QName</a></tt> </tt>
+<a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2587" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2518', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2519" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2587', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2588" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2519', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2520', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2464"></a><tt class="py-lineno">2464</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2521" class="py-name"><a title="lxml.etree._Element.find
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2588', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2589" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2589', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2504"></a><tt class="py-lineno">2504</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2590" class="py-name"><a title="lxml.etree._Element.find
 lxml.etree._ElementTree.find
-lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2521', 'find', 'link-2373');">find</a></tt><tt class="py-op">(</tt><tt id="link-2522" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2522', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2523" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2523', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2465"></a><tt class="py-lineno">2465</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_findall_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-def"><a name="L2466"></a><tt class="py-lineno">2466</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-expanded"><a name="L2467"></a><tt class="py-lineno">2467</tt>  <tt class="py-line">        <tt id="link-2524" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.ObjectPath.find" class="py-name" href="#" onclick="return doclink('link-2590', 'find', 'link-2442');">find</a></tt><tt class="py-op">(</tt><tt id="link-2591" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2591', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2592" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-2592', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_findall_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-def"><a name="L2506"></a><tt class="py-lineno">2506</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_qname">test_elementtree_findall_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_qname-expanded"><a name="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">        <tt id="link-2593" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2524', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2525" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2593', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2594" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2525', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2526" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2594', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2595" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2526', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2468"></a><tt class="py-lineno">2468</tt>  <tt class="py-line">        <tt id="link-2527" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2595', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line">        <tt id="link-2596" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2527', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2528" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2596', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2597" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2528', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2529" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2597', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2598" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2529', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L2469"></a><tt class="py-lineno">2469</tt>  <tt class="py-line">        <tt id="link-2530" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2530', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2531" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2598', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line">        <tt id="link-2599" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2599', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2600" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2531', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2532" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2532', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L2470"></a><tt class="py-lineno">2470</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2533" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2600', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2601" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2601', 'QName', 'link-149');">QName</a></tt> </tt>
+<a name="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2602" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2533', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2534" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2602', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2603" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2534', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2535" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2535', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2471"></a><tt class="py-lineno">2471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2536" class="py-name" targets="Method lxml.etree._Element.findall()=lxml.etree._Element-class.html#findall,Method lxml.etree._ElementTree.findall()=lxml.etree._ElementTree-class.html#findall"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2536', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2537" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2537', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2472"></a><tt class="py-lineno">2472</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_elementtree_findall_ns_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-def"><a name="L2473"></a><tt class="py-lineno">2473</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_ns_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-expanded"><a name="L2474"></a><tt class="py-lineno">2474</tt>  <tt class="py-line">        <tt id="link-2538" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2603', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2604" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2604', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2605" class="py-name" targets="Method lxml.etree._Element.findall()=lxml.etree._Element-class.html#findall,Method lxml.etree._ElementTree.findall()=lxml.etree._ElementTree-class.html#findall"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2605', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2606" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2606', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"c"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_elementtree_findall_ns_qname"></a><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-def"><a name="L2513"></a><tt class="py-lineno">2513</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-toggle" onclick="return toggle('ETreeOnlyTestCase.test_elementtree_findall_ns_qname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_elementtree_findall_ns_qname">test_elementtree_findall_ns_qname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_elementtree_findall_ns_qname-expanded"><a name="L2514"></a><tt class="py-lineno">2514</tt>  <tt class="py-line">        <tt id="link-2607" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2538', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2539" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2607', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2608" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2539', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2540" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2608', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2609" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2540', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2475"></a><tt class="py-lineno">2475</tt>  <tt class="py-line">        <tt id="link-2541" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2609', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt id="link-2610" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2541', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2542" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2610', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2611" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2542', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2543" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2611', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2612" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2543', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L2476"></a><tt class="py-lineno">2476</tt>  <tt class="py-line">        <tt id="link-2544" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2544', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2545" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2612', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L2516"></a><tt class="py-lineno">2516</tt>  <tt class="py-line">        <tt id="link-2613" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2613', 'QName', 'link-149');">QName</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2614" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2545', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2546" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2546', 'QName', 'link-149');">QName</a></tt> </tt>
-<a name="L2477"></a><tt class="py-lineno">2477</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2547" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2614', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2615" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2615', 'QName', 'link-149');">QName</a></tt> </tt>
+<a name="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2616" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2547', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2548" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-2616', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-2617" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2548', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L2478"></a><tt class="py-lineno">2478</tt>  <tt class="py-line">                <tt id="link-2549" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2549', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2479"></a><tt class="py-lineno">2479</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2550" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2550', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2551" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2551', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2480"></a><tt class="py-lineno">2480</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2552" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2552', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2553" class="py-name"><a title="lxml.etree.QName
-xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2553', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"X"</tt><tt class="py-op">,</tt> <tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2481"></a><tt class="py-lineno">2481</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_ns"></a><div id="ETreeOnlyTestCase.test_findall_ns-def"><a name="L2482"></a><tt class="py-lineno">2482</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_ns-expanded"><a name="L2483"></a><tt class="py-lineno">2483</tt>  <tt class="py-line">        <tt id="link-2554" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2617', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">                <tt id="link-2618" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2618', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2619" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2619', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2620" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2620', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2520"></a><tt class="py-lineno">2520</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2621" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2621', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt id="link-2622" class="py-name"><a title="lxml.etree.QName
+xml.etree.ElementTree.QName" class="py-name" href="#" onclick="return doclink('link-2622', 'QName', 'link-149');">QName</a></tt><tt class="py-op">(</tt><tt class="py-string">"X"</tt><tt class="py-op">,</tt> <tt class="py-string">"b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_ns"></a><div id="ETreeOnlyTestCase.test_findall_ns-def"><a name="L2522"></a><tt class="py-lineno">2522</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_ns-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_ns');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_ns">test_findall_ns</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_ns-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_ns-expanded"><a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">        <tt id="link-2623" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2554', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2555" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2623', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2624" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2555', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2556" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2624', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2625" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2556', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2484"></a><tt class="py-lineno">2484</tt>  <tt class="py-line">        <tt id="link-2557" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2557', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2558" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2625', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">        <tt id="link-2626" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2626', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2627" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2558', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2559', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2485"></a><tt class="py-lineno">2485</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2560" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2560', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2561" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2561', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2486"></a><tt class="py-lineno">2486</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2562" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2562', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2563" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2563', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}*"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2487"></a><tt class="py-lineno">2487</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2564" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2564', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2565" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2565', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2488"></a><tt class="py-lineno">2488</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2489"></a><tt class="py-lineno">2489</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2490"></a><tt class="py-lineno">2490</tt>  <tt class="py-line">        <tt id="link-2566" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2627', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2628" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2628', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2629" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2629', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2630" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2630', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2631" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2631', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2632" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2632', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//{X}*"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2633" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2633', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2634" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2634', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2529"></a><tt class="py-lineno">2529</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">        <tt id="link-2635" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2566', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2567" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2635', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2636" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2567', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2568" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2636', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2568', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2491"></a><tt class="py-lineno">2491</tt>  <tt class="py-line">        <tt id="link-2569" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2569', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2570" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2637', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">        <tt id="link-2638" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2638', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2639" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2570', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2571" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2571', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2492"></a><tt class="py-lineno">2492</tt>  <tt class="py-line">        <tt id="link-2572" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2572', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2493"></a><tt class="py-lineno">2493</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2573" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2573', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2574" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2574', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2575" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2575', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2494"></a><tt class="py-lineno">2494</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2576" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2576', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2577" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2577', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2578" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2578', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2495"></a><tt class="py-lineno">2495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2579" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2579', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2580" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2580', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2581" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2581', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2496"></a><tt class="py-lineno">2496</tt>  <tt class="py-line">        <tt id="link-2582" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2582', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2497"></a><tt class="py-lineno">2497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2583" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2583', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2584" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2584', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2585" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2585', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L2498"></a><tt class="py-lineno">2498</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2586" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2586', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2587" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2587', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2588" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2588', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L2499"></a><tt class="py-lineno">2499</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2589" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2589', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2590" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2590', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2591" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2591', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2500"></a><tt class="py-lineno">2500</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2501"></a><tt class="py-lineno">2501</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2502"></a><tt class="py-lineno">2502</tt>  <tt class="py-line">        <tt id="link-2592" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2639', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2640" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2640', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">        <tt id="link-2641" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2641', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2642" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2642', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2643" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2643', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2644" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2644', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2645" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2645', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2646" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2646', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2647" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2647', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2648" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2648', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2649" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2649', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2650" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2650', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">        <tt id="link-2651" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2651', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2652" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2652', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2653" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2653', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2654" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2654', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2655" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2655', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2656" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2656', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2657" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2657', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2658" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2658', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2659" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2659', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2660" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2660', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_different_nsmaps"></a><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-def"><a name="L2541"></a><tt class="py-lineno">2541</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_different_nsmaps-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_different_nsmaps');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_different_nsmaps">test_findall_different_nsmaps</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_different_nsmaps-expanded"><a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line">        <tt id="link-2661" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2592', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2593" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2661', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2662" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2593', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2594" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2662', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2594', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2503"></a><tt class="py-lineno">2503</tt>  <tt class="py-line">        <tt id="link-2595" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2595', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2596" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2663', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line">        <tt id="link-2664" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2664', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2665" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2596', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2597" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2597', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2504"></a><tt class="py-lineno">2504</tt>  <tt class="py-line">        <tt id="link-2598" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2598', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2505"></a><tt class="py-lineno">2505</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2599" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2599', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2600" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2600', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2601" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2601', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2506"></a><tt class="py-lineno">2506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2602" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2602', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2603" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2603', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2604" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2604', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2507"></a><tt class="py-lineno">2507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2605" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2605', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2606" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2606', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2607" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2607', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2508"></a><tt class="py-lineno">2508</tt>  <tt class="py-line">        <tt id="link-2608" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2608', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
-<a name="L2509"></a><tt class="py-lineno">2509</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2609" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2609', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2610" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2610', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2611" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2611', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L2510"></a><tt class="py-lineno">2510</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2612" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2612', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2613" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2613', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2614" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2614', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L2511"></a><tt class="py-lineno">2511</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2615" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2615', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2616" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2616', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2617" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2617', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2512"></a><tt class="py-lineno">2512</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_findall_syntax_error"></a><div id="ETreeOnlyTestCase.test_findall_syntax_error-def"><a name="L2513"></a><tt class="py-lineno">2513</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_syntax_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_syntax_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_findall_syntax_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_syntax_error-expanded"><a name="L2514"></a><tt class="py-lineno">2514</tt>  <tt class="py-line">        <tt id="link-2618" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2665', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2666" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2666', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="X" xmlns:y="Y"&gt;&lt;x:b&gt;&lt;c/&gt;&lt;/x:b&gt;&lt;b/&gt;&lt;c&gt;&lt;x:b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;y:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line">        <tt id="link-2667" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2667', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'X'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2668" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2668', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2669" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2669', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2670" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2670', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2546"></a><tt class="py-lineno">2546</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2671" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2671', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2672" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2672', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2673" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2673', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2674" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2674', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2675', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2676" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2676', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line">        <tt id="link-2677" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2677', 'nsmap', 'link-183');">nsmap</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">'xx'</tt><tt class="py-op">:</tt> <tt class="py-string">'Y'</tt><tt class="py-op">}</tt> </tt>
+<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2678" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2678', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2679" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2679', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2680" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2680', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2681" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2681', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2682" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2682', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//xx:*"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2683" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2683', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-2684" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2684', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2685" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2685', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">(</tt><tt class="py-string">".//b"</tt><tt class="py-op">,</tt> <tt class="py-name">namespaces</tt><tt class="py-op">=</tt><tt id="link-2686" class="py-name"><a title="lxml.etree._Element.nsmap" class="py-name" href="#" onclick="return doclink('link-2686', 'nsmap', 'link-183');">nsmap</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_findall_syntax_error"></a><div id="ETreeOnlyTestCase.test_findall_syntax_error-def"><a name="L2553"></a><tt class="py-lineno">2553</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_findall_syntax_error-toggle" onclick="return toggle('ETreeOnlyTestCase.test_findall_syntax_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_findall_syntax_error">test_findall_syntax_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_findall_syntax_error-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_findall_syntax_error-expanded"><a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line">        <tt id="link-2687" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2618', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2619" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2687', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2688" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2619', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2620" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2688', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2689" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2620', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2515"></a><tt class="py-lineno">2515</tt>  <tt class="py-line">        <tt id="link-2621" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2621', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2622" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2689', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">        <tt id="link-2690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2690', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2691" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2622', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2623" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2623', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2516"></a><tt class="py-lineno">2516</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2624" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2624', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2625" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2625', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2517"></a><tt class="py-lineno">2517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2626" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2626', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2627" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2627', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'//'</tt><tt class="py-op">)</tt>  <tt class="py-comment"># absolute path on Element</tt> </tt>
-<a name="L2518"></a><tt class="py-lineno">2518</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2628" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2628', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2629" class="py-name"><a title="lxml.etree._Element.findall
-lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2629', 'findall', 'link-2536');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'.///'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2519"></a><tt class="py-lineno">2519</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_index"></a><div id="ETreeOnlyTestCase.test_index-def"><a name="L2520"></a><tt class="py-lineno">2520</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_index-toggle" onclick="return toggle('ETreeOnlyTestCase.test_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_index-expanded"><a name="L2521"></a><tt class="py-lineno">2521</tt>  <tt class="py-line">        <tt id="link-2630" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2691', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2692" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2692', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;c/&gt;&lt;/b&gt;&lt;b/&gt;&lt;c&gt;&lt;b/&gt;&lt;b/&gt;&lt;/c&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2693" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2693', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2694" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2694', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2695" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2695', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2696" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2696', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'//'</tt><tt class="py-op">)</tt>  <tt class="py-comment"># absolute path on Element</tt> </tt>
+<a name="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">SyntaxError</tt><tt class="py-op">,</tt> <tt id="link-2697" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2697', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree._Element.findall
+lxml.etree._ElementTree.findall" class="py-name" href="#" onclick="return doclink('link-2698', 'findall', 'link-2605');">findall</a></tt><tt class="py-op">,</tt> <tt class="py-string">'.///'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_index"></a><div id="ETreeOnlyTestCase.test_index-def"><a name="L2560"></a><tt class="py-lineno">2560</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_index-toggle" onclick="return toggle('ETreeOnlyTestCase.test_index');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_index">test_index</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_index-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_index-expanded"><a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line">        <tt id="link-2699" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2630', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2631" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2699', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2700" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2631', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2522"></a><tt class="py-lineno">2522</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2632" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2700', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2701" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2632', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2633" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2701', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2702" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2633', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2523"></a><tt class="py-lineno">2523</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2524"></a><tt class="py-lineno">2524</tt>  <tt class="py-line">            <tt id="link-2634" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2702', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">            <tt id="link-2703" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2634', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2635" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2635', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2525"></a><tt class="py-lineno">2525</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2526"></a><tt class="py-lineno">2526</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2527"></a><tt class="py-lineno">2527</tt>  <tt class="py-line">                <tt class="py-name">i</tt><tt class="py-op">,</tt> </tt>
-<a name="L2528"></a><tt class="py-lineno">2528</tt>  <tt class="py-line">                <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2636" class="py-name" targets="Method lxml.etree._Element.index()=lxml.etree._Element-class.html#index"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2636', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2529"></a><tt class="py-lineno">2529</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2530"></a><tt class="py-lineno">2530</tt>  <tt class="py-line">            <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2637" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2637', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2531"></a><tt class="py-lineno">2531</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2532"></a><tt class="py-lineno">2532</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2638" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2638', 'index', 'link-2636');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L2533"></a><tt class="py-lineno">2533</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2534"></a><tt class="py-lineno">2534</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2639" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2639', 'index', 'link-2636');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L2535"></a><tt class="py-lineno">2535</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2536"></a><tt class="py-lineno">2536</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2640" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2640', 'index', 'link-2636');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L2537"></a><tt class="py-lineno">2537</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2538"></a><tt class="py-lineno">2538</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2641" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2641', 'index', 'link-2636');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L2539"></a><tt class="py-lineno">2539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2540"></a><tt class="py-lineno">2540</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2642" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2642', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2541"></a><tt class="py-lineno">2541</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2542"></a><tt class="py-lineno">2542</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2643" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2643', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2543"></a><tt class="py-lineno">2543</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2544"></a><tt class="py-lineno">2544</tt>  <tt class="py-line">            <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2644" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2644', 'index', 'link-2636');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2545"></a><tt class="py-lineno">2545</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_replace"></a><div id="ETreeOnlyTestCase.test_replace-def"><a name="L2546"></a><tt class="py-lineno">2546</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace-expanded"><a name="L2547"></a><tt class="py-lineno">2547</tt>  <tt class="py-line">        <tt id="link-2645" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2703', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2704" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2704', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">                <tt class="py-name">i</tt><tt class="py-op">,</tt> </tt>
+<a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">                <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2705" class="py-name" targets="Method lxml.etree._Element.index()=lxml.etree._Element-class.html#index"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2705', 'index', 'link-2705');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">            <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2706" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2706', 'index', 'link-2705');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2707" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2707', 'index', 'link-2705');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2708" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2708', 'index', 'link-2705');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2709" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2709', 'index', 'link-2705');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2710" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2710', 'index', 'link-2705');">index</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">5</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2711', 'index', 'link-2705');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2582"></a><tt class="py-lineno">2582</tt>  <tt class="py-line">            <tt class="py-number">8</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2712" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2712', 'index', 'link-2705');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">            <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2713" class="py-name"><a title="lxml.etree._Element.index" class="py-name" href="#" onclick="return doclink('link-2713', 'index', 'link-2705');">index</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">12</tt><tt class="py-op">,</tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_replace"></a><div id="ETreeOnlyTestCase.test_replace-def"><a name="L2586"></a><tt class="py-lineno">2586</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace">test_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace-expanded"><a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line">        <tt id="link-2714" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2645', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2646" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2714', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2715" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2646', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2548"></a><tt class="py-lineno">2548</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2647" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2715', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2588"></a><tt class="py-lineno">2588</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2716" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2647', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2648" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2716', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2717" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2648', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2549"></a><tt class="py-lineno">2549</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2550"></a><tt class="py-lineno">2550</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2649" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2717', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line">            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2718" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2649', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2650" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2650', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2551"></a><tt class="py-lineno">2551</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2651" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2718', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2719" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2719', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2720" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2651', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L2552"></a><tt class="py-lineno">2552</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2652" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2652', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
-<a name="L2553"></a><tt class="py-lineno">2553</tt>  <tt class="py-line"> </tt>
-<a name="L2554"></a><tt class="py-lineno">2554</tt>  <tt class="py-line">        <tt class="py-name">child0</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
-<a name="L2555"></a><tt class="py-lineno">2555</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2556"></a><tt class="py-lineno">2556</tt>  <tt class="py-line">        <tt class="py-name">child2</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
-<a name="L2557"></a><tt class="py-lineno">2557</tt>  <tt class="py-line"> </tt>
-<a name="L2558"></a><tt class="py-lineno">2558</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2653" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2653', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2559"></a><tt class="py-lineno">2559</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2560"></a><tt class="py-lineno">2560</tt>  <tt class="py-line">            <tt class="py-number">9</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2561"></a><tt class="py-lineno">2561</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2562"></a><tt class="py-lineno">2562</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2563"></a><tt class="py-lineno">2563</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2564"></a><tt class="py-lineno">2564</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2654" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2720', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"text%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line">            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2721" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2721', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail%d"</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt> </tt>
+<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line"> </tt>
+<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">        <tt class="py-name">child0</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line">        <tt class="py-name">child2</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line"> </tt>
+<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2722" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2722', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line">            <tt class="py-number">9</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2604"></a><tt class="py-lineno">2604</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2723" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2654', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2565"></a><tt class="py-lineno">2565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2566"></a><tt class="py-lineno">2566</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2655" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2655', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2567"></a><tt class="py-lineno">2567</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2568"></a><tt class="py-lineno">2568</tt>  <tt class="py-line">            <tt class="py-name">child0</tt><tt class="py-op">.</tt><tt id="link-2656" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2656', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2569"></a><tt class="py-lineno">2569</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2570"></a><tt class="py-lineno">2570</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2571"></a><tt class="py-lineno">2571</tt>  <tt class="py-line"> </tt>
-<a name="L2572"></a><tt class="py-lineno">2572</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2657" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2657', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2573"></a><tt class="py-lineno">2573</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2574"></a><tt class="py-lineno">2574</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2575"></a><tt class="py-lineno">2575</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2576"></a><tt class="py-lineno">2576</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2658" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2723', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2724" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2724', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">            <tt class="py-name">child0</tt><tt class="py-op">.</tt><tt id="link-2725" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2725', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line"> </tt>
+<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2726" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2726', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2727" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2658', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2577"></a><tt class="py-lineno">2577</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2578"></a><tt class="py-lineno">2578</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2659" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2659', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2579"></a><tt class="py-lineno">2579</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2580"></a><tt class="py-lineno">2580</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2581"></a><tt class="py-lineno">2581</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_replace_new"></a><div id="ETreeOnlyTestCase.test_replace_new-def"><a name="L2582"></a><tt class="py-lineno">2582</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace_new-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_replace_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace_new-expanded"><a name="L2583"></a><tt class="py-lineno">2583</tt>  <tt class="py-line">        <tt id="link-2660" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2727', 'text', 'link-186');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"text1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">.</tt><tt id="link-2728" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2728', 'tail', 'link-842');">tail</a></tt><tt class="py-op">,</tt> <tt class="py-string">"tail1"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2620"></a><tt class="py-lineno">2620</tt>  <tt class="py-line">            <tt class="py-name">child2</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_replace_new"></a><div id="ETreeOnlyTestCase.test_replace_new-def"><a name="L2622"></a><tt class="py-lineno">2622</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_replace_new-toggle" onclick="return toggle('ETreeOnlyTestCase.test_replace_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_replace_new">test_replace_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_replace_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_replace_new-expanded"><a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line">        <tt id="link-2729" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2660', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2661" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2729', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2730" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2661', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2584"></a><tt class="py-lineno">2584</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2662" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2730', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2731" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2662', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2663" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2731', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2732" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2663', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2585"></a><tt class="py-lineno">2585</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L2586"></a><tt class="py-lineno">2586</tt>  <tt class="py-line">            <tt id="link-2664" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2732', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">10</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">            <tt id="link-2733" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2664', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2665" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2665', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
-<a name="L2587"></a><tt class="py-lineno">2587</tt>  <tt class="py-line"> </tt>
-<a name="L2588"></a><tt class="py-lineno">2588</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-2666" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2733', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2734" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2734', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-string">'a%s'</tt> <tt class="py-op">%</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line"> </tt>
+<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-2735" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2666', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2667" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2735', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2736" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2667', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2589"></a><tt class="py-lineno">2589</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2668" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2736', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2737" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2668', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTEXT"</tt> </tt>
-<a name="L2590"></a><tt class="py-lineno">2590</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2669" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2669', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTAIL"</tt> </tt>
-<a name="L2591"></a><tt class="py-lineno">2591</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L2592"></a><tt class="py-lineno">2592</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2670" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2670', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
-<a name="L2593"></a><tt class="py-lineno">2593</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2594"></a><tt class="py-lineno">2594</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2595"></a><tt class="py-lineno">2595</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2596"></a><tt class="py-lineno">2596</tt>  <tt class="py-line">            <tt class="py-string">"TESTTEXT"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2597"></a><tt class="py-lineno">2597</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2671" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2737', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTEXT"</tt> </tt>
+<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line">        <tt class="py-name">new_element</tt><tt class="py-op">.</tt><tt id="link-2738" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2738', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"TESTTAIL"</tt> </tt>
+<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line">        <tt class="py-name">child1</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line">        <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-2739" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2739', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
+<a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2634"></a><tt class="py-lineno">2634</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line">            <tt class="py-string">"TESTTEXT"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2740" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2671', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2598"></a><tt class="py-lineno">2598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2599"></a><tt class="py-lineno">2599</tt>  <tt class="py-line">            <tt class="py-string">"TESTTAIL"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2600"></a><tt class="py-lineno">2600</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2672" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2672', 'tail', 'link-842');">tail</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2601"></a><tt class="py-lineno">2601</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2602"></a><tt class="py-lineno">2602</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2603"></a><tt class="py-lineno">2603</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_all_empty_reversed"></a><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-def"><a name="L2604"></a><tt class="py-lineno">2604</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_all_empty_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-expanded"><a name="L2605"></a><tt class="py-lineno">2605</tt>  <tt class="py-line">        <tt id="link-2673" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-2740', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2638"></a><tt class="py-lineno">2638</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line">            <tt class="py-string">"TESTTAIL"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line">            <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-2741" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-2741', 'tail', 'link-842');">tail</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2642"></a><tt class="py-lineno">2642</tt>  <tt class="py-line">            <tt class="py-name">child1</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_all_empty_reversed"></a><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-def"><a name="L2644"></a><tt class="py-lineno">2644</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_all_empty_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_all_empty_reversed">test_setslice_all_empty_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_all_empty_reversed-expanded"><a name="L2645"></a><tt class="py-lineno">2645</tt>  <tt class="py-line">        <tt id="link-2742" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2673', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2674" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2742', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2743" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2674', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2675" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2743', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2744" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2675', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2606"></a><tt class="py-lineno">2606</tt>  <tt class="py-line">        <tt id="link-2676" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2676', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2677" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2744', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-line">        <tt id="link-2745" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2745', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2746" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2677', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2678" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2678', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2607"></a><tt class="py-lineno">2607</tt>  <tt class="py-line"> </tt>
-<a name="L2608"></a><tt class="py-lineno">2608</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2679" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2746', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2747" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2747', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2647"></a><tt class="py-lineno">2647</tt>  <tt class="py-line"> </tt>
+<a name="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2748" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2679', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2609"></a><tt class="py-lineno">2609</tt>  <tt class="py-line"> </tt>
-<a name="L2610"></a><tt class="py-lineno">2610</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2680" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2748', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line"> </tt>
+<a name="L2650"></a><tt class="py-lineno">2650</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2749" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2680', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2611"></a><tt class="py-lineno">2611</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2681" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2749', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2651"></a><tt class="py-lineno">2651</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2750" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2681', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2612"></a><tt class="py-lineno">2612</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2682" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2750', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'f'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-line">        <tt class="py-name">g</tt> <tt class="py-op">=</tt> <tt id="link-2751" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2682', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2613"></a><tt class="py-lineno">2613</tt>  <tt class="py-line"> </tt>
-<a name="L2614"></a><tt class="py-lineno">2614</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
-<a name="L2615"></a><tt class="py-lineno">2615</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
-<a name="L2616"></a><tt class="py-lineno">2616</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2617"></a><tt class="py-lineno">2617</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2618"></a><tt class="py-lineno">2618</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2619"></a><tt class="py-lineno">2619</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step"></a><div id="ETreeOnlyTestCase.test_setslice_step-def"><a name="L2620"></a><tt class="py-lineno">2620</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step-expanded"><a name="L2621"></a><tt class="py-lineno">2621</tt>  <tt class="py-line">        <tt id="link-2683" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2751', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'g'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2653"></a><tt class="py-lineno">2653</tt>  <tt class="py-line"> </tt>
+<a name="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">e</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">g</tt><tt class="py-op">]</tt> </tt>
+<a name="L2655"></a><tt class="py-lineno">2655</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">s</tt> </tt>
+<a name="L2656"></a><tt class="py-lineno">2656</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2657"></a><tt class="py-lineno">2657</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">g</tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2658"></a><tt class="py-lineno">2658</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step"></a><div id="ETreeOnlyTestCase.test_setslice_step-def"><a name="L2660"></a><tt class="py-lineno">2660</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step">test_setslice_step</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step-expanded"><a name="L2661"></a><tt class="py-lineno">2661</tt>  <tt class="py-line">        <tt id="link-2752" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2683', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2684" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2752', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2753" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2684', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2685" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2753', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2754" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2685', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2622"></a><tt class="py-lineno">2622</tt>  <tt class="py-line">        <tt id="link-2686" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2686', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2687" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2754', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-line">        <tt id="link-2755" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2755', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2756" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2687', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2688" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2688', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2623"></a><tt class="py-lineno">2623</tt>  <tt class="py-line"> </tt>
-<a name="L2624"></a><tt class="py-lineno">2624</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2689" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2756', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2757" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2757', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2663"></a><tt class="py-lineno">2663</tt>  <tt class="py-line"> </tt>
+<a name="L2664"></a><tt class="py-lineno">2664</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2758" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2689', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2625"></a><tt class="py-lineno">2625</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2690" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2690', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2626"></a><tt class="py-lineno">2626</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2691" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2691', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2627"></a><tt class="py-lineno">2627</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2692" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2692', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2628"></a><tt class="py-lineno">2628</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2693" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2693', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2629"></a><tt class="py-lineno">2629</tt>  <tt class="py-line"> </tt>
-<a name="L2630"></a><tt class="py-lineno">2630</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2694" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2758', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2759" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2759', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2760" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2760', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2761" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2761', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2762" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2762', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line"> </tt>
+<a name="L2670"></a><tt class="py-lineno">2670</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2763" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2694', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2631"></a><tt class="py-lineno">2631</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2695" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2763', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2671"></a><tt class="py-lineno">2671</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2764" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2695', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2632"></a><tt class="py-lineno">2632</tt>  <tt class="py-line"> </tt>
-<a name="L2633"></a><tt class="py-lineno">2633</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2634"></a><tt class="py-lineno">2634</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2635"></a><tt class="py-lineno">2635</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2636"></a><tt class="py-lineno">2636</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2637"></a><tt class="py-lineno">2637</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_negative"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative-def"><a name="L2638"></a><tt class="py-lineno">2638</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative-expanded"><a name="L2639"></a><tt class="py-lineno">2639</tt>  <tt class="py-line">        <tt id="link-2696" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2764', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line"> </tt>
+<a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2674"></a><tt class="py-lineno">2674</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2677"></a><tt class="py-lineno">2677</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_negative"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative-def"><a name="L2678"></a><tt class="py-lineno">2678</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative">test_setslice_step_negative</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_negative-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative-expanded"><a name="L2679"></a><tt class="py-lineno">2679</tt>  <tt class="py-line">        <tt id="link-2765" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2696', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2697" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2765', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2697', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2698" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2766', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2767" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2698', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2640"></a><tt class="py-lineno">2640</tt>  <tt class="py-line">        <tt id="link-2699" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2699', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2700" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2767', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">        <tt id="link-2768" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2768', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2769" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2700', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2701" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2701', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2641"></a><tt class="py-lineno">2641</tt>  <tt class="py-line"> </tt>
-<a name="L2642"></a><tt class="py-lineno">2642</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2702" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2769', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2770" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2770', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line"> </tt>
+<a name="L2682"></a><tt class="py-lineno">2682</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2771" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2702', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2643"></a><tt class="py-lineno">2643</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2703" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2703', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2644"></a><tt class="py-lineno">2644</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2704" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2704', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2645"></a><tt class="py-lineno">2645</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2705" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2705', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2646"></a><tt class="py-lineno">2646</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2706" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2706', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2647"></a><tt class="py-lineno">2647</tt>  <tt class="py-line"> </tt>
-<a name="L2648"></a><tt class="py-lineno">2648</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2707" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2771', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2772" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2772', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2684"></a><tt class="py-lineno">2684</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2773" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2773', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2774" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2774', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2686"></a><tt class="py-lineno">2686</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2775" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2775', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line"> </tt>
+<a name="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2776" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2707', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2649"></a><tt class="py-lineno">2649</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2708" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2776', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2777" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2708', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2650"></a><tt class="py-lineno">2650</tt>  <tt class="py-line"> </tt>
-<a name="L2651"></a><tt class="py-lineno">2651</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2652"></a><tt class="py-lineno">2652</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2653"></a><tt class="py-lineno">2653</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2654"></a><tt class="py-lineno">2654</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2655"></a><tt class="py-lineno">2655</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_negative2"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative2-def"><a name="L2656"></a><tt class="py-lineno">2656</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative2-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-expanded"><a name="L2657"></a><tt class="py-lineno">2657</tt>  <tt class="py-line">        <tt id="link-2709" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2777', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line"> </tt>
+<a name="L2691"></a><tt class="py-lineno">2691</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2692"></a><tt class="py-lineno">2692</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_negative2"></a><div id="ETreeOnlyTestCase.test_setslice_step_negative2-def"><a name="L2696"></a><tt class="py-lineno">2696</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_negative2-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_negative2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_negative2">test_setslice_step_negative2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_negative2-expanded"><a name="L2697"></a><tt class="py-lineno">2697</tt>  <tt class="py-line">        <tt id="link-2778" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2709', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2710" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2778', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2779" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2710', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2711" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2779', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2780" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2711', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2658"></a><tt class="py-lineno">2658</tt>  <tt class="py-line">        <tt id="link-2712" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2712', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2713" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2780', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2698"></a><tt class="py-lineno">2698</tt>  <tt class="py-line">        <tt id="link-2781" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2781', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2782" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2713', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2714" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2714', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2659"></a><tt class="py-lineno">2659</tt>  <tt class="py-line"> </tt>
-<a name="L2660"></a><tt class="py-lineno">2660</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2715" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2782', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2783" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2783', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2699"></a><tt class="py-lineno">2699</tt>  <tt class="py-line"> </tt>
+<a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2784" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2715', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2661"></a><tt class="py-lineno">2661</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2716" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2716', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2662"></a><tt class="py-lineno">2662</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2717" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2717', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2663"></a><tt class="py-lineno">2663</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2718" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2718', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2664"></a><tt class="py-lineno">2664</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2719" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2719', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2665"></a><tt class="py-lineno">2665</tt>  <tt class="py-line"> </tt>
-<a name="L2666"></a><tt class="py-lineno">2666</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2720" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2784', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2701"></a><tt class="py-lineno">2701</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2785" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2785', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2786" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2786', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2787" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2787', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2788" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2788', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2705"></a><tt class="py-lineno">2705</tt>  <tt class="py-line"> </tt>
+<a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2789" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2720', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2667"></a><tt class="py-lineno">2667</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2721" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2789', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2790" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2721', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2668"></a><tt class="py-lineno">2668</tt>  <tt class="py-line"> </tt>
-<a name="L2669"></a><tt class="py-lineno">2669</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
-<a name="L2670"></a><tt class="py-lineno">2670</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2671"></a><tt class="py-lineno">2671</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2672"></a><tt class="py-lineno">2672</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2673"></a><tt class="py-lineno">2673</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_setslice_step_overrun"></a><div id="ETreeOnlyTestCase.test_setslice_step_overrun-def"><a name="L2674"></a><tt class="py-lineno">2674</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_overrun-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_overrun');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-expanded"><a name="L2675"></a><tt class="py-lineno">2675</tt>  <tt class="py-line">        <tt id="link-2722" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2790', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line"> </tt>
+<a name="L2709"></a><tt class="py-lineno">2709</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">]</tt> </tt>
+<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">x</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2712"></a><tt class="py-lineno">2712</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2713"></a><tt class="py-lineno">2713</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_setslice_step_overrun"></a><div id="ETreeOnlyTestCase.test_setslice_step_overrun-def"><a name="L2714"></a><tt class="py-lineno">2714</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_setslice_step_overrun-toggle" onclick="return toggle('ETreeOnlyTestCase.test_setslice_step_overrun');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_setslice_step_overrun">test_setslice_step_overrun</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_setslice_step_overrun-expanded"><a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line">        <tt id="link-2791" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2722', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2723" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2791', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2792" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2723', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2724" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2792', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2793" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2724', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2676"></a><tt class="py-lineno">2676</tt>  <tt class="py-line">        <tt id="link-2725" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2725', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2726" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2793', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line">        <tt id="link-2794" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2794', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2795" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2726', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2727" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2727', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2677"></a><tt class="py-lineno">2677</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L2678"></a><tt class="py-lineno">2678</tt>  <tt class="py-line">            <tt class="py-name">slice</tt> </tt>
-<a name="L2679"></a><tt class="py-lineno">2679</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
-<a name="L2680"></a><tt class="py-lineno">2680</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"slice() not found"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2681"></a><tt class="py-lineno">2681</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
-<a name="L2682"></a><tt class="py-lineno">2682</tt>  <tt class="py-line"> </tt>
-<a name="L2683"></a><tt class="py-lineno">2683</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2728" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2795', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2796" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2796', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line">            <tt class="py-name">slice</tt> </tt>
+<a name="L2719"></a><tt class="py-lineno">2719</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">NameError</tt><tt class="py-op">:</tt> </tt>
+<a name="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line">            <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"slice() not found"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L2722"></a><tt class="py-lineno">2722</tt>  <tt class="py-line"> </tt>
+<a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-2797" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2728', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2684"></a><tt class="py-lineno">2684</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2729" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2729', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2685"></a><tt class="py-lineno">2685</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2730" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2730', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2686"></a><tt class="py-lineno">2686</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2731" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2731', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2687"></a><tt class="py-lineno">2687</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2732" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2732', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2688"></a><tt class="py-lineno">2688</tt>  <tt class="py-line"> </tt>
-<a name="L2689"></a><tt class="py-lineno">2689</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2733" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2797', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-2798" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2798', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-2799" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2799', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-2800" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2800', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">        <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt id="link-2801" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2801', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'e'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2728"></a><tt class="py-lineno">2728</tt>  <tt class="py-line"> </tt>
+<a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">        <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt id="link-2802" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2733', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2690"></a><tt class="py-lineno">2690</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2734" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2802', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'x'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line">        <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt id="link-2803" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2734', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2691"></a><tt class="py-lineno">2691</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2735" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2803', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'y'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2731"></a><tt class="py-lineno">2731</tt>  <tt class="py-line">        <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt id="link-2804" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2735', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2692"></a><tt class="py-lineno">2692</tt>  <tt class="py-line"> </tt>
-<a name="L2693"></a><tt class="py-lineno">2693</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
-<a name="L2694"></a><tt class="py-lineno">2694</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
-<a name="L2695"></a><tt class="py-lineno">2695</tt>  <tt class="py-line">            <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L2696"></a><tt class="py-lineno">2696</tt>  <tt class="py-line"> </tt>
-<a name="L2697"></a><tt class="py-lineno">2697</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2698"></a><tt class="py-lineno">2698</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2699"></a><tt class="py-lineno">2699</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2700"></a><tt class="py-lineno">2700</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_sourceline_XML-def"><a name="L2701"></a><tt class="py-lineno">2701</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_XML-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_XML-expanded"><a name="L2702"></a><tt class="py-lineno">2702</tt>  <tt class="py-line">        <tt id="link-2736" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2804', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'z'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line"> </tt>
+<a name="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt> </tt>
+<a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line">            <tt class="py-name">ValueError</tt><tt class="py-op">,</tt> </tt>
+<a name="L2735"></a><tt class="py-lineno">2735</tt>  <tt class="py-line">            <tt class="py-name">operator</tt><tt class="py-op">.</tt><tt class="py-name">setitem</tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">slice</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">None</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">,</tt> <tt class="py-name">y</tt><tt class="py-op">,</tt> <tt class="py-name">z</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line"> </tt>
+<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-name">d</tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">            <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_XML"></a><div id="ETreeOnlyTestCase.test_sourceline_XML-def"><a name="L2741"></a><tt class="py-lineno">2741</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_XML-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_XML');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_XML">test_sourceline_XML</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_XML-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_XML-expanded"><a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">        <tt id="link-2805" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2736', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2737" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2805', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2806" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2737', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2738" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2806', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2807" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2738', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L2703"></a><tt class="py-lineno">2703</tt>  <tt class="py-line">        <tt id="link-2739" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2739', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2740" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2807', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L2743"></a><tt class="py-lineno">2743</tt>  <tt class="py-line">        <tt id="link-2808" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2808', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2809" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2740', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2741" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2741', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L2704"></a><tt class="py-lineno">2704</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;&lt;test&gt;</tt> </tt>
-<a name="L2705"></a><tt class="py-lineno">2705</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L2706"></a><tt class="py-lineno">2706</tt>  <tt class="py-line"><tt class="py-string">        &lt;bla/&gt;&lt;/test&gt;</tt> </tt>
-<a name="L2707"></a><tt class="py-lineno">2707</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
-<a name="L2708"></a><tt class="py-lineno">2708</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2709"></a><tt class="py-lineno">2709</tt>  <tt class="py-line"> </tt>
-<a name="L2710"></a><tt class="py-lineno">2710</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2711"></a><tt class="py-lineno">2711</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2712"></a><tt class="py-lineno">2712</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2742" class="py-name" targets="Variable lxml.etree._Element.sourceline=lxml.etree._Element-class.html#sourceline"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2742', 'sourceline', 'link-2742');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2743" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2743', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2744" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2744', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2713"></a><tt class="py-lineno">2713</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_parse"></a><div id="ETreeOnlyTestCase.test_sourceline_parse-def"><a name="L2714"></a><tt class="py-lineno">2714</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_parse-expanded"><a name="L2715"></a><tt class="py-lineno">2715</tt>  <tt class="py-line">        <tt id="link-2745" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2809', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2810" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2810', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L2744"></a><tt class="py-lineno">2744</tt>  <tt class="py-line"><tt class="py-string">        &lt;root&gt;&lt;test&gt;</tt> </tt>
+<a name="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line"><tt class="py-string">        &lt;bla/&gt;&lt;/test&gt;</tt> </tt>
+<a name="L2747"></a><tt class="py-lineno">2747</tt>  <tt class="py-line"><tt class="py-string">        &lt;/root&gt;</tt> </tt>
+<a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line"> </tt>
+<a name="L2750"></a><tt class="py-lineno">2750</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2751"></a><tt class="py-lineno">2751</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2811" class="py-name" targets="Variable lxml.etree._Element.sourceline=lxml.etree._Element-class.html#sourceline"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2811', 'sourceline', 'link-2811');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-2812" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2812', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2813" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2813', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_parse"></a><div id="ETreeOnlyTestCase.test_sourceline_parse-def"><a name="L2754"></a><tt class="py-lineno">2754</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_parse-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_parse">test_sourceline_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_parse-expanded"><a name="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line">        <tt id="link-2814" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2745', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2746" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2814', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2815" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2746', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2747" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2815', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2816" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2747', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L2716"></a><tt class="py-lineno">2716</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2748" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2816', 'parse', 'link-749');">parse</a></tt> </tt>
+<a name="L2756"></a><tt class="py-lineno">2756</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2817" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2748', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2749" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2749', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2717"></a><tt class="py-lineno">2717</tt>  <tt class="py-line"> </tt>
-<a name="L2718"></a><tt class="py-lineno">2718</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2719"></a><tt class="py-lineno">2719</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2720"></a><tt class="py-lineno">2720</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2750" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2750', 'sourceline', 'link-2742');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2751" class="py-name"><a title="lxml.etree._Element.getiterator
-lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2751', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2721"></a><tt class="py-lineno">2721</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_iterparse_end"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-def"><a name="L2722"></a><tt class="py-lineno">2722</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-expanded"><a name="L2723"></a><tt class="py-lineno">2723</tt>  <tt class="py-line">        <tt id="link-2752" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2752', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2753" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2753', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2754" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2754', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L2724"></a><tt class="py-lineno">2724</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2755" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2755', 'sourceline', 'link-2742');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
-<a name="L2725"></a><tt class="py-lineno">2725</tt>  <tt class="py-line">                  <tt id="link-2756" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2756', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2757" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2757', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L2726"></a><tt class="py-lineno">2726</tt>  <tt class="py-line"> </tt>
-<a name="L2727"></a><tt class="py-lineno">2727</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2728"></a><tt class="py-lineno">2728</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2729"></a><tt class="py-lineno">2729</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2730"></a><tt class="py-lineno">2730</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_iterparse_start"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-def"><a name="L2731"></a><tt class="py-lineno">2731</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-expanded"><a name="L2732"></a><tt class="py-lineno">2732</tt>  <tt class="py-line">        <tt id="link-2758" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2758', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2759" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2759', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2760" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2760', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
-<a name="L2733"></a><tt class="py-lineno">2733</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2761" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2761', 'sourceline', 'link-2742');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
-<a name="L2734"></a><tt class="py-lineno">2734</tt>  <tt class="py-line">                  <tt id="link-2762" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2762', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2763" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2763', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2735"></a><tt class="py-lineno">2735</tt>  <tt class="py-line">                            <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
-<a name="L2736"></a><tt class="py-lineno">2736</tt>  <tt class="py-line"> </tt>
-<a name="L2737"></a><tt class="py-lineno">2737</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2738"></a><tt class="py-lineno">2738</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L2739"></a><tt class="py-lineno">2739</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2740"></a><tt class="py-lineno">2740</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_sourceline_element"></a><div id="ETreeOnlyTestCase.test_sourceline_element-def"><a name="L2741"></a><tt class="py-lineno">2741</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_sourceline_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_element-expanded"><a name="L2742"></a><tt class="py-lineno">2742</tt>  <tt class="py-line">        <tt id="link-2764" class="py-name"><a title="lxml.etree.Element
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2817', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2818" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2818', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2757"></a><tt class="py-lineno">2757</tt>  <tt class="py-line"> </tt>
+<a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line">            <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2819" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2819', 'sourceline', 'link-2811');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2820" class="py-name"><a title="lxml.etree._Element.getiterator
+lxml.etree._ElementTree.getiterator" class="py-name" href="#" onclick="return doclink('link-2820', 'getiterator', 'link-1175');">getiterator</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_iterparse_end"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-def"><a name="L2762"></a><tt class="py-lineno">2762</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_end-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_end">test_sourceline_iterparse_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_end-expanded"><a name="L2763"></a><tt class="py-lineno">2763</tt>  <tt class="py-line">        <tt id="link-2821" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2821', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2822" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2822', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2823" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2823', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
+<a name="L2764"></a><tt class="py-lineno">2764</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2824" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2824', 'sourceline', 'link-2811');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
+<a name="L2765"></a><tt class="py-lineno">2765</tt>  <tt class="py-line">                  <tt id="link-2825" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2825', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2826" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2826', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L2766"></a><tt class="py-lineno">2766</tt>  <tt class="py-line"> </tt>
+<a name="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_iterparse_start"></a><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-def"><a name="L2771"></a><tt class="py-lineno">2771</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_iterparse_start-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_iterparse_start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_iterparse_start">test_sourceline_iterparse_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_iterparse_start-expanded"><a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line">        <tt id="link-2827" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2827', 'iterparse', 'link-774');">iterparse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2828" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2828', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2829" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2829', 'iterparse', 'link-774');">iterparse</a></tt> </tt>
+<a name="L2773"></a><tt class="py-lineno">2773</tt>  <tt class="py-line">        <tt class="py-name">lines</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2830" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2830', 'sourceline', 'link-2811');">sourceline</a></tt> <tt class="py-keyword">for</tt> <tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> <tt class="py-keyword">in</tt>  </tt>
+<a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">                  <tt id="link-2831" class="py-name"><a title="lxml.etree.iterparse" class="py-name" href="#" onclick="return doclink('link-2831', 'iterparse', 'link-774');">iterparse</a></tt><tt class="py-op">(</tt><tt id="link-2832" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2832', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2775"></a><tt class="py-lineno">2775</tt>  <tt class="py-line">                            <tt class="py-name">events</tt><tt class="py-op">=</tt><tt class="py-op">(</tt><tt class="py-string">"start"</tt><tt class="py-op">,</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> <tt class="py-op">]</tt> </tt>
+<a name="L2776"></a><tt class="py-lineno">2776</tt>  <tt class="py-line"> </tt>
+<a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2778"></a><tt class="py-lineno">2778</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">            <tt class="py-name">lines</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_sourceline_element"></a><div id="ETreeOnlyTestCase.test_sourceline_element-def"><a name="L2781"></a><tt class="py-lineno">2781</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_sourceline_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_sourceline_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_sourceline_element">test_sourceline_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_sourceline_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_sourceline_element-expanded"><a name="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">        <tt id="link-2833" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2764', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2765" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2833', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2765', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2766" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2834', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2835" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2766', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2743"></a><tt class="py-lineno">2743</tt>  <tt class="py-line">        <tt id="link-2767" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2767', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2768" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2835', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line">        <tt id="link-2836" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2836', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2837" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2768', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2769" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2769', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2744"></a><tt class="py-lineno">2744</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2770" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2837', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2838" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2838', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L2784"></a><tt class="py-lineno">2784</tt>  <tt class="py-line">        <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-2839" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2770', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2745"></a><tt class="py-lineno">2745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2771" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2771', 'sourceline', 'link-2742');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2746"></a><tt class="py-lineno">2746</tt>  <tt class="py-line"> </tt>
-<a name="L2747"></a><tt class="py-lineno">2747</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-2772" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2772', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2748"></a><tt class="py-lineno">2748</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2773" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2773', 'sourceline', 'link-2742');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L2749"></a><tt class="py-lineno">2749</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2774" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2774', 'sourceline', 'link-2742');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2750"></a><tt class="py-lineno">2750</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-def"><a name="L2751"></a><tt class="py-lineno">2751</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-expanded"><a name="L2752"></a><tt class="py-lineno">2752</tt>  <tt class="py-line">        <tt id="link-2775" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-2839', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2840" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2840', 'sourceline', 'link-2811');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2786"></a><tt class="py-lineno">2786</tt>  <tt class="py-line"> </tt>
+<a name="L2787"></a><tt class="py-lineno">2787</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-2841" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-2841', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2788"></a><tt class="py-lineno">2788</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-2842" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2842', 'sourceline', 'link-2811');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L2789"></a><tt class="py-lineno">2789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-2843" class="py-name"><a title="lxml.etree._Element.sourceline" class="py-name" href="#" onclick="return doclink('link-2843', 'sourceline', 'link-2811');">sourceline</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-def"><a name="L2791"></a><tt class="py-lineno">2791</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_base_url_docinfo">test_XML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_base_url_docinfo-expanded"><a name="L2792"></a><tt class="py-lineno">2792</tt>  <tt class="py-line">        <tt id="link-2844" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2775', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2776" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2844', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2845" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2776', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2753"></a><tt class="py-lineno">2753</tt>  <tt class="py-line">        <tt id="link-2777" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2777', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2778" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2845', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">        <tt id="link-2846" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2846', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2847" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2778', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2779" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2847', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2848" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2779', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2780" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2780', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2781" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2781', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2754"></a><tt class="py-lineno">2754</tt>  <tt class="py-line">        <tt id="link-2782" class="py-name" targets="Variable lxml.etree._ElementTree.docinfo=lxml.etree._ElementTree-class.html#docinfo"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2782', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2783" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2783', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2784" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2784', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2785" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2785', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2755"></a><tt class="py-lineno">2755</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2786" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2786', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2787" class="py-name" targets="Variable lxml.etree.DocInfo.URL=lxml.etree.DocInfo-class.html#URL"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2787', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2756"></a><tt class="py-lineno">2756</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_XML_set_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-def"><a name="L2757"></a><tt class="py-lineno">2757</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_set_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-expanded"><a name="L2758"></a><tt class="py-lineno">2758</tt>  <tt class="py-line">        <tt id="link-2788" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2848', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2849" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2849', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2850" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2850', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line">        <tt id="link-2851" class="py-name" targets="Variable lxml.etree._ElementTree.docinfo=lxml.etree._ElementTree-class.html#docinfo"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2851', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2852" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2852', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2853" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2853', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2854" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2854', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2855" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2855', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2856" class="py-name" targets="Variable lxml.etree.DocInfo.URL=lxml.etree.DocInfo-class.html#URL"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2856', 'URL', 'link-2856');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_XML_set_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-def"><a name="L2797"></a><tt class="py-lineno">2797</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_XML_set_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_XML_set_base_url_docinfo">test_XML_set_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_XML_set_base_url_docinfo-expanded"><a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line">        <tt id="link-2857" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2788', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2789" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2857', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2858" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2789', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2759"></a><tt class="py-lineno">2759</tt>  <tt class="py-line">        <tt id="link-2790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2790', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2791" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2858', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2799"></a><tt class="py-lineno">2799</tt>  <tt class="py-line">        <tt id="link-2859" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2859', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2860" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2791', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2792" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2860', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2861" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2792', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2793" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2793', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2794" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2794', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2760"></a><tt class="py-lineno">2760</tt>  <tt class="py-line">        <tt id="link-2795" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2795', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2796" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2796', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2797" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2797', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2798" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2798', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2761"></a><tt class="py-lineno">2761</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2799" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2799', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2800" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2800', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2762"></a><tt class="py-lineno">2762</tt>  <tt class="py-line">        <tt id="link-2801" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2801', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2802" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2802', 'URL', 'link-2787');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
-<a name="L2763"></a><tt class="py-lineno">2763</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2803" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2803', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2804" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2804', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2764"></a><tt class="py-lineno">2764</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_stringio_base_url"></a><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-def"><a name="L2765"></a><tt class="py-lineno">2765</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_stringio_base_url-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_stringio_base_url');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-expanded"><a name="L2766"></a><tt class="py-lineno">2766</tt>  <tt class="py-line">        <tt id="link-2805" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2861', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2862" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2862', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2863" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2863', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt id="link-2864" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2864', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2865" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2865', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2866" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2866', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2867" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2867', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2868" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2868', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2869" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2869', 'URL', 'link-2856');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2802"></a><tt class="py-lineno">2802</tt>  <tt class="py-line">        <tt id="link-2870" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2870', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2871" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2871', 'URL', 'link-2856');">URL</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
+<a name="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2872" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2872', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2873" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2873', 'URL', 'link-2856');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2804"></a><tt class="py-lineno">2804</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_stringio_base_url"></a><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-def"><a name="L2805"></a><tt class="py-lineno">2805</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_stringio_base_url-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_stringio_base_url');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_stringio_base_url">test_parse_stringio_base_url</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_stringio_base_url-expanded"><a name="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line">        <tt id="link-2874" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2805', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2806" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2874', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2875" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2806', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2767"></a><tt class="py-lineno">2767</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2807" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2875', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2876" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2807', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2808" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2876', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2877" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2808', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2809" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2809', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2768"></a><tt class="py-lineno">2768</tt>  <tt class="py-line">        <tt id="link-2810" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2810', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2811" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2811', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2769"></a><tt class="py-lineno">2769</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2812" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2812', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2813" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2813', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2770"></a><tt class="py-lineno">2770</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-def"><a name="L2771"></a><tt class="py-lineno">2771</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-expanded"><a name="L2772"></a><tt class="py-lineno">2772</tt>  <tt class="py-line">        <tt id="link-2814" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2877', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2878" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2878', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line">        <tt id="link-2879" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2879', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2880" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2880', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2809"></a><tt class="py-lineno">2809</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2881" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2881', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2882" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2882', 'URL', 'link-2856');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-def"><a name="L2811"></a><tt class="py-lineno">2811</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_base_url_docinfo">test_parse_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_base_url_docinfo-expanded"><a name="L2812"></a><tt class="py-lineno">2812</tt>  <tt class="py-line">        <tt id="link-2883" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2814', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2815" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2883', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2884" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2815', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2773"></a><tt class="py-lineno">2773</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2816" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2884', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2885" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2816', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2817" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2885', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2886" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2817', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2818" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2818', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2774"></a><tt class="py-lineno">2774</tt>  <tt class="py-line">                           <tt id="link-2819" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2819', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2775"></a><tt class="py-lineno">2775</tt>  <tt class="py-line">        <tt id="link-2820" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2820', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2821" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2821', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2776"></a><tt class="py-lineno">2776</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2822" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2822', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2823" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2823', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2777"></a><tt class="py-lineno">2777</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_HTML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-def"><a name="L2778"></a><tt class="py-lineno">2778</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_HTML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-expanded"><a name="L2779"></a><tt class="py-lineno">2779</tt>  <tt class="py-line">        <tt id="link-2824" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2886', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-2887" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-2887', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line">                           <tt id="link-2888" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2888', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2815"></a><tt class="py-lineno">2815</tt>  <tt class="py-line">        <tt id="link-2889" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2889', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2890" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2890', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2891" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2891', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2892" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2892', 'URL', 'link-2856');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_HTML_base_url_docinfo"></a><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-def"><a name="L2818"></a><tt class="py-lineno">2818</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-toggle" onclick="return toggle('ETreeOnlyTestCase.test_HTML_base_url_docinfo');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_HTML_base_url_docinfo">test_HTML_base_url_docinfo</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_HTML_base_url_docinfo-expanded"><a name="L2819"></a><tt class="py-lineno">2819</tt>  <tt class="py-line">        <tt id="link-2893" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2824', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2825" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2893', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2894" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2825', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2780"></a><tt class="py-lineno">2780</tt>  <tt class="py-line">        <tt id="link-2826" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2826', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2827" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2894', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2820"></a><tt class="py-lineno">2820</tt>  <tt class="py-line">        <tt id="link-2895" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2895', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2896" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2827', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2828" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2896', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2897" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2828', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2829" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2829', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2830" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2830', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2781"></a><tt class="py-lineno">2781</tt>  <tt class="py-line">        <tt id="link-2831" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2831', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2832" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2832', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2833" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2833', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2834" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2834', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2782"></a><tt class="py-lineno">2782</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2835" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2835', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2836" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2836', 'URL', 'link-2787');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2783"></a><tt class="py-lineno">2783</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_public"></a><div id="ETreeOnlyTestCase.test_docinfo_public-def"><a name="L2784"></a><tt class="py-lineno">2784</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_public-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_public');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_public-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_public-expanded"><a name="L2785"></a><tt class="py-lineno">2785</tt>  <tt class="py-line">        <tt id="link-2837" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2897', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2898" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2898', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2899" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2899', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line">        <tt id="link-2900" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2900', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt id="link-2901" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2901', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2902" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-2902', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-2903" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2903', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2822"></a><tt class="py-lineno">2822</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2904" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2904', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2905" class="py-name"><a title="lxml.etree.DocInfo.URL" class="py-name" href="#" onclick="return doclink('link-2905', 'URL', 'link-2856');">URL</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2823"></a><tt class="py-lineno">2823</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_public"></a><div id="ETreeOnlyTestCase.test_docinfo_public-def"><a name="L2824"></a><tt class="py-lineno">2824</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_public-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_public');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_public">test_docinfo_public</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_public-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_public-expanded"><a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line">        <tt id="link-2906" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2837', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2838" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2906', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2907" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2838', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2786"></a><tt class="py-lineno">2786</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="ascii"?&gt;'</tt> </tt>
-<a name="L2787"></a><tt class="py-lineno">2787</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
-<a name="L2788"></a><tt class="py-lineno">2788</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
-<a name="L2789"></a><tt class="py-lineno">2789</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L2790"></a><tt class="py-lineno">2790</tt>  <tt class="py-line"> </tt>
-<a name="L2791"></a><tt class="py-lineno">2791</tt>  <tt class="py-line">        <tt id="link-2839" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2839', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2840" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2840', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2792"></a><tt class="py-lineno">2792</tt>  <tt class="py-line"> </tt>
-<a name="L2793"></a><tt class="py-lineno">2793</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2841" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2907', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2826"></a><tt class="py-lineno">2826</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="ascii"?&gt;'</tt> </tt>
+<a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
+<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
+<a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L2830"></a><tt class="py-lineno">2830</tt>  <tt class="py-line"> </tt>
+<a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line">        <tt id="link-2908" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2908', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2909" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2909', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line"> </tt>
+<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2910" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2841', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2842" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2910', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2911" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2842', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2843" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2843', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2794"></a><tt class="py-lineno">2794</tt>  <tt class="py-line">        <tt id="link-2844" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2844', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2845" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2845', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2795"></a><tt class="py-lineno">2795</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2846" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2846', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2847" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2847', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2796"></a><tt class="py-lineno">2796</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2848" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2848', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2849" class="py-name" targets="Variable lxml.etree.DocInfo.xml_version=lxml.etree.DocInfo-class.html#xml_version"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2849', 'xml_version', 'link-2849');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2797"></a><tt class="py-lineno">2797</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2850" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2850', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2851" class="py-name" targets="Variable lxml.etree.DocInfo.public_id=lxml.etree.DocInfo-class.html#public_id"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2851', 'public_id', 'link-2851');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">pub_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L2798"></a><tt class="py-lineno">2798</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2852" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2852', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2853" class="py-name" targets="Variable lxml.etree.DTD.system_url=lxml.etree.DTD-class.html#system_url,Variable lxml.etree.DocInfo.system_url=lxml.etree.DocInfo-class.html#system_url"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2853', 'system_url', 'link-2853');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L2799"></a><tt class="py-lineno">2799</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2854" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2854', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2855" class="py-name" targets="Variable lxml.etree.DocInfo.root_name=lxml.etree.DocInfo-class.html#root_name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2855', 'root_name', 'link-2855');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2800"></a><tt class="py-lineno">2800</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2856" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2856', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2857" class="py-name" targets="Variable lxml.etree.DocInfo.doctype=lxml.etree.DocInfo-class.html#doctype"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2857', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2801"></a><tt class="py-lineno">2801</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_system"></a><div id="ETreeOnlyTestCase.test_docinfo_system-def"><a name="L2802"></a><tt class="py-lineno">2802</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_system-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_system');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_system-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_system-expanded"><a name="L2803"></a><tt class="py-lineno">2803</tt>  <tt class="py-line">        <tt id="link-2858" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2911', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2912" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2912', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line">        <tt id="link-2913" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2913', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2914" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2914', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2835"></a><tt class="py-lineno">2835</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2915" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2915', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2916', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2917" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2917', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2918" class="py-name" targets="Variable lxml.etree.DocInfo.xml_version=lxml.etree.DocInfo-class.html#xml_version"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2918', 'xml_version', 'link-2918');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2919" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2919', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2920" class="py-name" targets="Variable lxml.etree.DocInfo.public_id=lxml.etree.DocInfo-class.html#public_id"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2920', 'public_id', 'link-2920');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">pub_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2921" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2921', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2922" class="py-name" targets="Variable lxml.etree.DTD.system_url=lxml.etree.DTD-class.html#system_url,Variable lxml.etree.DocInfo.system_url=lxml.etree.DocInfo-class.html#system_url"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2922', 'system_url', 'link-2922');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L2839"></a><tt class="py-lineno">2839</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2923" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2923', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2924" class="py-name" targets="Variable lxml.etree.DocInfo.root_name=lxml.etree.DocInfo-class.html#root_name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2924', 'root_name', 'link-2924');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2925" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2925', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2926" class="py-name" targets="Variable lxml.etree.DocInfo.doctype=lxml.etree.DocInfo-class.html#doctype"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2926', 'doctype', 'link-2926');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2841"></a><tt class="py-lineno">2841</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_system"></a><div id="ETreeOnlyTestCase.test_docinfo_system-def"><a name="L2842"></a><tt class="py-lineno">2842</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_system-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_system');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_system">test_docinfo_system</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_system-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_system-expanded"><a name="L2843"></a><tt class="py-lineno">2843</tt>  <tt class="py-line">        <tt id="link-2927" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2858', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2859" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2927', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2928" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2859', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2804"></a><tt class="py-lineno">2804</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;'</tt> </tt>
-<a name="L2805"></a><tt class="py-lineno">2805</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"some.dtd"</tt> </tt>
-<a name="L2806"></a><tt class="py-lineno">2806</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html SYSTEM "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">sys_id</tt> </tt>
-<a name="L2807"></a><tt class="py-lineno">2807</tt>  <tt class="py-line">        <tt id="link-2860" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2860', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2861" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2861', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2808"></a><tt class="py-lineno">2808</tt>  <tt class="py-line"> </tt>
-<a name="L2809"></a><tt class="py-lineno">2809</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2862" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2928', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line">        <tt class="py-name">xml_header</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;'</tt> </tt>
+<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"some.dtd"</tt> </tt>
+<a name="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;!DOCTYPE html SYSTEM "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-name">sys_id</tt> </tt>
+<a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line">        <tt id="link-2929" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2929', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2930" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2930', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">xml_header</tt> <tt class="py-op">+</tt> <tt class="py-name">doctype_string</tt> <tt class="py-op">+</tt> <tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2848"></a><tt class="py-lineno">2848</tt>  <tt class="py-line"> </tt>
+<a name="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2931" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2862', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2863" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2931', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2932" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2863', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2864" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2864', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2810"></a><tt class="py-lineno">2810</tt>  <tt class="py-line">        <tt id="link-2865" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2865', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2866" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2866', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2811"></a><tt class="py-lineno">2811</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2867" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2867', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2868" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2868', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2812"></a><tt class="py-lineno">2812</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2869" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2869', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2870" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2870', 'xml_version', 'link-2849');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2813"></a><tt class="py-lineno">2813</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2871" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2871', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2872" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2872', 'public_id', 'link-2851');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2814"></a><tt class="py-lineno">2814</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2873" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2873', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2874" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2874', 'system_url', 'link-2853');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
-<a name="L2815"></a><tt class="py-lineno">2815</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2875" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2875', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2876" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2876', 'root_name', 'link-2855');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2816"></a><tt class="py-lineno">2816</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2877" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2877', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2878" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2878', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2817"></a><tt class="py-lineno">2817</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_empty"></a><div id="ETreeOnlyTestCase.test_docinfo_empty-def"><a name="L2818"></a><tt class="py-lineno">2818</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_empty-expanded"><a name="L2819"></a><tt class="py-lineno">2819</tt>  <tt class="py-line">        <tt id="link-2879" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2932', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2933" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2933', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2850"></a><tt class="py-lineno">2850</tt>  <tt class="py-line">        <tt id="link-2934" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2934', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2935" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2935', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2851"></a><tt class="py-lineno">2851</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2936" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2936', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2937" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2937', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2938" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2938', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2939" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2939', 'xml_version', 'link-2918');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2853"></a><tt class="py-lineno">2853</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2940" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2940', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2941" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2941', 'public_id', 'link-2920');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2854"></a><tt class="py-lineno">2854</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2942" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2942', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2943" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2943', 'system_url', 'link-2922');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">sys_id</tt><tt class="py-op">)</tt> </tt>
+<a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2944" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2944', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2945" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2945', 'root_name', 'link-2924');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2856"></a><tt class="py-lineno">2856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2946" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2946', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2947" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2947', 'doctype', 'link-2926');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_empty"></a><div id="ETreeOnlyTestCase.test_docinfo_empty-def"><a name="L2858"></a><tt class="py-lineno">2858</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_empty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_empty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_empty">test_docinfo_empty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_empty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_empty-expanded"><a name="L2859"></a><tt class="py-lineno">2859</tt>  <tt class="py-line">        <tt id="link-2948" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2879', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2880" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2948', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2949" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2880', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2820"></a><tt class="py-lineno">2820</tt>  <tt class="py-line">        <tt id="link-2881" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2881', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2882" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2882', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2821"></a><tt class="py-lineno">2821</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2883" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2949', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2860"></a><tt class="py-lineno">2860</tt>  <tt class="py-line">        <tt id="link-2950" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2950', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2951" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2951', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2952" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2883', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2884" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2952', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2953" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2884', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2885" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2885', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2822"></a><tt class="py-lineno">2822</tt>  <tt class="py-line">        <tt id="link-2886" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2886', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2887" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2887', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2823"></a><tt class="py-lineno">2823</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2888" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2888', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2889" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2889', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2824"></a><tt class="py-lineno">2824</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2890" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2890', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2891" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2891', 'xml_version', 'link-2849');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2825"></a><tt class="py-lineno">2825</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2892" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2892', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2893" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2893', 'public_id', 'link-2851');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2826"></a><tt class="py-lineno">2826</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2894" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2894', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2895" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2895', 'system_url', 'link-2853');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2827"></a><tt class="py-lineno">2827</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2896" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2896', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2897" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2897', 'root_name', 'link-2855');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2828"></a><tt class="py-lineno">2828</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2898" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2898', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2899" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2899', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2829"></a><tt class="py-lineno">2829</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_docinfo_name_only"></a><div id="ETreeOnlyTestCase.test_docinfo_name_only-def"><a name="L2830"></a><tt class="py-lineno">2830</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_name_only-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_name_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_docinfo_name_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_name_only-expanded"><a name="L2831"></a><tt class="py-lineno">2831</tt>  <tt class="py-line">        <tt id="link-2900" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2953', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2954" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2954', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">        <tt id="link-2955" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2955', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2956" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2956', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2957" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2957', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2958" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2958', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2959" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2959', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2960" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2960', 'xml_version', 'link-2918');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2961" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2961', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2962" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2962', 'public_id', 'link-2920');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2866"></a><tt class="py-lineno">2866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2963" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2963', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2964" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2964', 'system_url', 'link-2922');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2867"></a><tt class="py-lineno">2867</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2965" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2965', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2966" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2966', 'root_name', 'link-2924');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'html'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2967" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2967', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2968" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2968', 'doctype', 'link-2926');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">''</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_docinfo_name_only"></a><div id="ETreeOnlyTestCase.test_docinfo_name_only-def"><a name="L2870"></a><tt class="py-lineno">2870</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_docinfo_name_only-toggle" onclick="return toggle('ETreeOnlyTestCase.test_docinfo_name_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_docinfo_name_only">test_docinfo_name_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_docinfo_name_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_docinfo_name_only-expanded"><a name="L2871"></a><tt class="py-lineno">2871</tt>  <tt class="py-line">        <tt id="link-2969" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2900', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2901" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2969', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2970" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2901', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2832"></a><tt class="py-lineno">2832</tt>  <tt class="py-line">        <tt id="link-2902" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2902', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2903" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2903', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2833"></a><tt class="py-lineno">2833</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2904" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2970', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2872"></a><tt class="py-lineno">2872</tt>  <tt class="py-line">        <tt id="link-2971" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2971', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2972" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2972', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;&lt;root&gt;&lt;/root&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2973" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2904', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2905" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2973', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2974" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2905', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2906" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2906', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2834"></a><tt class="py-lineno">2834</tt>  <tt class="py-line">        <tt id="link-2907" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2907', 'docinfo', 'link-2782');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2908" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2908', 'docinfo', 'link-2782');">docinfo</a></tt> </tt>
-<a name="L2835"></a><tt class="py-lineno">2835</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2909" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2909', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2910" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2910', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2836"></a><tt class="py-lineno">2836</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2911" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2911', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2912" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2912', 'xml_version', 'link-2849');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2837"></a><tt class="py-lineno">2837</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2913" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2913', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2914" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2914', 'public_id', 'link-2851');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2838"></a><tt class="py-lineno">2838</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2915" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2915', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2916" class="py-name"><a title="lxml.etree.DTD.system_url
-lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2916', 'system_url', 'link-2853');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2839"></a><tt class="py-lineno">2839</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2917" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2917', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2918" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2918', 'root_name', 'link-2855');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2840"></a><tt class="py-lineno">2840</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2919" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2919', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2920" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2920', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2841"></a><tt class="py-lineno">2841</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_doctype_name_only_roundtrip"></a><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-def"><a name="L2842"></a><tt class="py-lineno">2842</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_name_only_roundtrip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-expanded"><a name="L2843"></a><tt class="py-lineno">2843</tt>  <tt class="py-line">        <tt id="link-2921" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2974', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2975" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2975', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">        <tt id="link-2976" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2976', 'docinfo', 'link-2851');">docinfo</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-2977" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2977', 'docinfo', 'link-2851');">docinfo</a></tt> </tt>
+<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2978" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2978', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2979" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-2979', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt>    <tt class="py-string">"UTF-8"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2980" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2980', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2981" class="py-name"><a title="lxml.etree.DocInfo.xml_version" class="py-name" href="#" onclick="return doclink('link-2981', 'xml_version', 'link-2918');">xml_version</a></tt><tt class="py-op">,</tt> <tt class="py-string">"1.0"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2982" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2982', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2983" class="py-name"><a title="lxml.etree.DocInfo.public_id" class="py-name" href="#" onclick="return doclink('link-2983', 'public_id', 'link-2920');">public_id</a></tt><tt class="py-op">,</tt>   <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2984" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2984', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2985" class="py-name"><a title="lxml.etree.DTD.system_url
+lxml.etree.DocInfo.system_url" class="py-name" href="#" onclick="return doclink('link-2985', 'system_url', 'link-2922');">system_url</a></tt><tt class="py-op">,</tt>  <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2986" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2986', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2987" class="py-name"><a title="lxml.etree.DocInfo.root_name" class="py-name" href="#" onclick="return doclink('link-2987', 'root_name', 'link-2924');">root_name</a></tt><tt class="py-op">,</tt>   <tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2880"></a><tt class="py-lineno">2880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2988" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-2988', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-2989" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2989', 'doctype', 'link-2926');">doctype</a></tt><tt class="py-op">,</tt> <tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_doctype_name_only_roundtrip"></a><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-def"><a name="L2882"></a><tt class="py-lineno">2882</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_name_only_roundtrip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_name_only_roundtrip">test_doctype_name_only_roundtrip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_name_only_roundtrip-expanded"><a name="L2883"></a><tt class="py-lineno">2883</tt>  <tt class="py-line">        <tt id="link-2990" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2921', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2922" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2990', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2991" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2922', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2844"></a><tt class="py-lineno">2844</tt>  <tt class="py-line">        <tt id="link-2923" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2923', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2924" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2924', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2845"></a><tt class="py-lineno">2845</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2925" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2991', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2884"></a><tt class="py-lineno">2884</tt>  <tt class="py-line">        <tt id="link-2992" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2992', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2993" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2993', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2994" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2925', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2926" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2994', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2995" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2926', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2927" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2927', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2846"></a><tt class="py-lineno">2846</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2928" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2928', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-2929" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2995', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2996" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2996', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2997" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2997', 'xml', 'link-248');">xml</a></tt><tt class="py-op">,</tt> <tt id="link-2998" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2929', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2930" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2930', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2847"></a><tt class="py-lineno">2847</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_doctype_output_override"></a><div id="ETreeOnlyTestCase.test_doctype_output_override-def"><a name="L2848"></a><tt class="py-lineno">2848</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_output_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_output_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_doctype_output_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_output_override-expanded"><a name="L2849"></a><tt class="py-lineno">2849</tt>  <tt class="py-line">        <tt id="link-2931" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2998', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2999" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2999', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_doctype_output_override"></a><div id="ETreeOnlyTestCase.test_doctype_output_override-def"><a name="L2888"></a><tt class="py-lineno">2888</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_doctype_output_override-toggle" onclick="return toggle('ETreeOnlyTestCase.test_doctype_output_override');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_doctype_output_override">test_doctype_output_override</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_doctype_output_override-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_doctype_output_override-expanded"><a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line">        <tt id="link-3000" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2931', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2932" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3000', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3001" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2932', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2850"></a><tt class="py-lineno">2850</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
-<a name="L2851"></a><tt class="py-lineno">2851</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
-<a name="L2852"></a><tt class="py-lineno">2852</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt id="link-2933" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2933', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2853"></a><tt class="py-lineno">2853</tt>  <tt class="py-line"> </tt>
-<a name="L2854"></a><tt class="py-lineno">2854</tt>  <tt class="py-line">        <tt id="link-2934" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2934', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-2935" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2935', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2855"></a><tt class="py-lineno">2855</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-2936" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3001', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2890"></a><tt class="py-lineno">2890</tt>  <tt class="py-line">        <tt class="py-name">pub_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"-//W3C//DTD XHTML 1.0 Transitional//EN"</tt> </tt>
+<a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line">        <tt class="py-name">sys_id</tt> <tt class="py-op">=</tt> <tt class="py-string">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</tt> </tt>
+<a name="L2892"></a><tt class="py-lineno">2892</tt>  <tt class="py-line">        <tt class="py-name">doctype_string</tt> <tt class="py-op">=</tt> <tt id="link-3002" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3002', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE html PUBLIC "%s" "%s"&gt;'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">pub_id</tt><tt class="py-op">,</tt> <tt class="py-name">sys_id</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line"> </tt>
+<a name="L2894"></a><tt class="py-lineno">2894</tt>  <tt class="py-line">        <tt id="link-3003" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3003', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3004" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3004', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;\n&lt;root/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2895"></a><tt class="py-lineno">2895</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3005" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2936', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2937" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3005', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3006" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2937', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-2938" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2938', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2856"></a><tt class="py-lineno">2856</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2939" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-2939', 'xml', 'link-248');">xml</a></tt><tt class="py-op">.</tt><tt id="link-2940" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-2940', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-2941" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2941', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2857"></a><tt class="py-lineno">2857</tt>  <tt class="py-line">                          <tt id="link-2942" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3006', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3007" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3007', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3008" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3008', 'xml', 'link-248');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3009" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3009', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3010" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3010', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!DOCTYPE root&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line">                          <tt id="link-3011" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2942', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2943" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-2943', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-2944" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-2944', 'doctype', 'link-2857');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2858"></a><tt class="py-lineno">2858</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_xml_base"></a><div id="ETreeOnlyTestCase.test_xml_base-def"><a name="L2859"></a><tt class="py-lineno">2859</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_xml_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base-expanded"><a name="L2860"></a><tt class="py-lineno">2860</tt>  <tt class="py-line">        <tt id="link-2945" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3011', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3012" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3012', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3013" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-3013', 'doctype', 'link-2926');">doctype</a></tt><tt class="py-op">=</tt><tt class="py-name">doctype_string</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_xml_base"></a><div id="ETreeOnlyTestCase.test_xml_base-def"><a name="L2899"></a><tt class="py-lineno">2899</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base">test_xml_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_xml_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base-expanded"><a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line">        <tt id="link-3014" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2945', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2946" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3014', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3015" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2946', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2861"></a><tt class="py-lineno">2861</tt>  <tt class="py-line">        <tt id="link-2947" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2947', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2948" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3015', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line">        <tt id="link-3016" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3016', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3017" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2948', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2949" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3017', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3018" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2949', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2950" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2950', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2951" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2951', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2862"></a><tt class="py-lineno">2862</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2952" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2952', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2953" class="py-name" targets="Variable lxml.etree._Element.base=lxml.etree._Element-class.html#base"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2953', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2863"></a><tt class="py-lineno">2863</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2864"></a><tt class="py-lineno">2864</tt>  <tt class="py-line">            <tt id="link-2954" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2954', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2955" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3018', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3019" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3019', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3020" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3020', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2902"></a><tt class="py-lineno">2902</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3021" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3021', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3022" class="py-name" targets="Variable lxml.etree._Element.base=lxml.etree._Element-class.html#base"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3022', 'base', 'link-3022');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">            <tt id="link-3023" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3023', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3024" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2955', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2865"></a><tt class="py-lineno">2865</tt>  <tt class="py-line">        <tt id="link-2956" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2956', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2957" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2957', 'base', 'link-2953');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
-<a name="L2866"></a><tt class="py-lineno">2866</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2958" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2958', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2959" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2959', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2867"></a><tt class="py-lineno">2867</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2868"></a><tt class="py-lineno">2868</tt>  <tt class="py-line">            <tt id="link-2960" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2960', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2961" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3024', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-line">        <tt id="link-3025" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3025', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3026" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3026', 'base', 'link-3022');">base</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"https://secret/url"</tt> </tt>
+<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3027" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3027', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3028" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3028', 'base', 'link-3022');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2907"></a><tt class="py-lineno">2907</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line">            <tt id="link-3029" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3029', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3030" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2961', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2869"></a><tt class="py-lineno">2869</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2870"></a><tt class="py-lineno">2870</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_xml_base_attribute"></a><div id="ETreeOnlyTestCase.test_xml_base_attribute-def"><a name="L2871"></a><tt class="py-lineno">2871</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base_attribute-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_xml_base_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base_attribute-expanded"><a name="L2872"></a><tt class="py-lineno">2872</tt>  <tt class="py-line">        <tt id="link-2962" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3030', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_xml_base_attribute"></a><div id="ETreeOnlyTestCase.test_xml_base_attribute-def"><a name="L2911"></a><tt class="py-lineno">2911</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_xml_base_attribute-toggle" onclick="return toggle('ETreeOnlyTestCase.test_xml_base_attribute');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_xml_base_attribute">test_xml_base_attribute</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_xml_base_attribute-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_xml_base_attribute-expanded"><a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line">        <tt id="link-3031" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2962', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2963" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3031', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3032" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2963', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2873"></a><tt class="py-lineno">2873</tt>  <tt class="py-line">        <tt id="link-2964" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2964', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2965" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3032', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line">        <tt id="link-3033" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3033', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3034" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2965', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2966" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3034', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3035" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-2966', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-2967" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2967', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-2968" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2968', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2874"></a><tt class="py-lineno">2874</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2969" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2969', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2970" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2970', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2875"></a><tt class="py-lineno">2875</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2876"></a><tt class="py-lineno">2876</tt>  <tt class="py-line">            <tt id="link-2971" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2971', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2972" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3035', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3036" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3036', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3037" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3037', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2914"></a><tt class="py-lineno">2914</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3038" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3038', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3039" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3039', 'base', 'link-3022');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2916"></a><tt class="py-lineno">2916</tt>  <tt class="py-line">            <tt id="link-3040" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3040', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3041" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2972', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L2877"></a><tt class="py-lineno">2877</tt>  <tt class="py-line">        <tt id="link-2973" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2973', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2974" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-2974', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">,</tt> </tt>
-<a name="L2878"></a><tt class="py-lineno">2878</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2879"></a><tt class="py-lineno">2879</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2975" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2975', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2976" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2976', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2880"></a><tt class="py-lineno">2880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L2881"></a><tt class="py-lineno">2881</tt>  <tt class="py-line">            <tt id="link-2977" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2977', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2978" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3041', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line">        <tt id="link-3042" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3042', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3043" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-3043', 'set', 'link-233');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">,</tt> </tt>
+<a name="L2918"></a><tt class="py-lineno">2918</tt>  <tt class="py-line">                 <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3044" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3044', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3045" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3045', 'base', 'link-3022');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L2921"></a><tt class="py-lineno">2921</tt>  <tt class="py-line">            <tt id="link-3046" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3046', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3047" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-2978', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2882"></a><tt class="py-lineno">2882</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2883"></a><tt class="py-lineno">2883</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_base"></a><div id="ETreeOnlyTestCase.test_html_base-def"><a name="L2884"></a><tt class="py-lineno">2884</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base-expanded"><a name="L2885"></a><tt class="py-lineno">2885</tt>  <tt class="py-line">        <tt id="link-2979" class="py-name"><a title="lxml.etree
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-3047', 'get', 'link-235');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">'{http://www.w3.org/XML/1998/namespace}base'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line">            <tt class="py-string">"https://secret/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_base"></a><div id="ETreeOnlyTestCase.test_html_base-def"><a name="L2924"></a><tt class="py-lineno">2924</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base">test_html_base</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_base-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base-expanded"><a name="L2925"></a><tt class="py-lineno">2925</tt>  <tt class="py-line">        <tt id="link-3048" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2979', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2980" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3048', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3049" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2980', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2886"></a><tt class="py-lineno">2886</tt>  <tt class="py-line">        <tt id="link-2981" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2981', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2982" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3049', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">        <tt id="link-3050" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3050', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3051" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2982', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2983" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3051', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3052" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2983', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2984" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2984', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2887"></a><tt class="py-lineno">2887</tt>  <tt class="py-line">                          <tt id="link-2985" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-2985', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-<a name="L2888"></a><tt class="py-lineno">2888</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2986" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2986', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2987" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2987', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2889"></a><tt class="py-lineno">2889</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_html_base_tag"></a><div id="ETreeOnlyTestCase.test_html_base_tag-def"><a name="L2890"></a><tt class="py-lineno">2890</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_html_base_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base_tag-expanded"><a name="L2891"></a><tt class="py-lineno">2891</tt>  <tt class="py-line">        <tt id="link-2988" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3052', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3053" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3053', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line">                          <tt id="link-3054" class="py-name"><a title="lxml.html.HtmlMixin.base_url" class="py-name" href="#" onclick="return doclink('link-3054', 'base_url', 'link-1276');">base_url</a></tt><tt class="py-op">=</tt><tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3055" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3055', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3056" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3056', 'base', 'link-3022');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_html_base_tag"></a><div id="ETreeOnlyTestCase.test_html_base_tag-def"><a name="L2930"></a><tt class="py-lineno">2930</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_html_base_tag-toggle" onclick="return toggle('ETreeOnlyTestCase.test_html_base_tag');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_html_base_tag">test_html_base_tag</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_html_base_tag-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_html_base_tag-expanded"><a name="L2931"></a><tt class="py-lineno">2931</tt>  <tt class="py-line">        <tt id="link-3057" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2988', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2989" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3057', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3058" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2989', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L2892"></a><tt class="py-lineno">2892</tt>  <tt class="py-line">        <tt id="link-2990" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2990', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-2991" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3058', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L2932"></a><tt class="py-lineno">2932</tt>  <tt class="py-line">        <tt id="link-3059" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3059', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3060" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2991', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2992" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3060', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3061" class="py-name"><a title="lxml.etree.ErrorDomains.HTML
 lxml.etree.HTML
 lxml.html.builder.HTML
-lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-2992', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-2993" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-2993', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;head&gt;&lt;base href="http://no/such/url"&gt;&lt;/head&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2893"></a><tt class="py-lineno">2893</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-2994" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2994', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-2995" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-2995', 'base', 'link-2953');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2894"></a><tt class="py-lineno">2894</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_parse_fileobject_unicode"></a><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-def"><a name="L2895"></a><tt class="py-lineno">2895</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_fileobject_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_fileobject_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-expanded"><a name="L2896"></a><tt class="py-lineno">2896</tt>  <tt class="py-line">        <tt class="py-comment"># parse from a file object that returns unicode strings</tt> </tt>
-<a name="L2897"></a><tt class="py-lineno">2897</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-2996" class="py-name"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-2996', 'LargeFileLikeUnicode', 'link-16');">LargeFileLikeUnicode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2898"></a><tt class="py-lineno">2898</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-2997" class="py-name"><a title="lxml.etree
+lxml.tests.test_css.HTML" class="py-name" href="#" onclick="return doclink('link-3061', 'HTML', 'link-581');">HTML</a></tt><tt class="py-op">(</tt><tt id="link-3062" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3062', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;html&gt;&lt;head&gt;&lt;base href="http://no/such/url"&gt;&lt;/head&gt;&lt;/html&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3063" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3063', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3064" class="py-name"><a title="lxml.etree._Element.base" class="py-name" href="#" onclick="return doclink('link-3064', 'base', 'link-3022');">base</a></tt><tt class="py-op">,</tt> <tt class="py-string">"http://no/such/url"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2934"></a><tt class="py-lineno">2934</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_parse_fileobject_unicode"></a><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-def"><a name="L2935"></a><tt class="py-lineno">2935</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_parse_fileobject_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_parse_fileobject_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_parse_fileobject_unicode">test_parse_fileobject_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_parse_fileobject_unicode-expanded"><a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line">        <tt class="py-comment"># parse from a file object that returns unicode strings</tt> </tt>
+<a name="L2937"></a><tt class="py-lineno">2937</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-3065" class="py-name"><a title="lxml.tests.common_imports.LargeFileLikeUnicode" class="py-name" href="#" onclick="return doclink('link-3065', 'LargeFileLikeUnicode', 'link-16');">LargeFileLikeUnicode</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3066" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-2997', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-2998" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3066', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3067" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-2998', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L2899"></a><tt class="py-lineno">2899</tt>  <tt class="py-line">        <tt id="link-2999" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-2999', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3000" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3000', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L2900"></a><tt class="py-lineno">2900</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3001" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3001', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3002" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3067', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line">        <tt id="link-3068" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3068', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3069" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3069', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3070" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3070', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3071" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3002', 'tag', 'link-65');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2901"></a><tt class="py-lineno">2901</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_dtd_io"></a><div id="ETreeOnlyTestCase.test_dtd_io-def"><a name="L2902"></a><tt class="py-lineno">2902</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dtd_io-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dtd_io');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_dtd_io-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dtd_io-expanded"><a name="L2903"></a><tt class="py-lineno">2903</tt>  <tt class="py-line">        <tt class="py-comment"># check that DTDs that go in also go back out</tt> </tt>
-<a name="L2904"></a><tt class="py-lineno">2904</tt>  <tt class="py-line">        <tt id="link-3003" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3003', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3004" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3004', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L2905"></a><tt class="py-lineno">2905</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE test SYSTEM "test.dtd" [</tt> </tt>
-<a name="L2906"></a><tt class="py-lineno">2906</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ENTITY entity "tasty"&gt;</tt> </tt>
-<a name="L2907"></a><tt class="py-lineno">2907</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT test (a)&gt;</tt> </tt>
-<a name="L2908"></a><tt class="py-lineno">2908</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT a (#PCDATA)&gt;</tt> </tt>
-<a name="L2909"></a><tt class="py-lineno">2909</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
-<a name="L2910"></a><tt class="py-lineno">2910</tt>  <tt class="py-line"><tt class="py-string">        &lt;test&gt;&lt;a&gt;test-test&lt;/a&gt;&lt;/test&gt;\</tt> </tt>
-<a name="L2911"></a><tt class="py-lineno">2911</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
-<a name="L2912"></a><tt class="py-lineno">2912</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3005" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3005', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3006" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3071', 'tag', 'link-65');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_dtd_io"></a><div id="ETreeOnlyTestCase.test_dtd_io-def"><a name="L2942"></a><tt class="py-lineno">2942</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_dtd_io-toggle" onclick="return toggle('ETreeOnlyTestCase.test_dtd_io');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_dtd_io">test_dtd_io</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_dtd_io-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_dtd_io-expanded"><a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line">        <tt class="py-comment"># check that DTDs that go in also go back out</tt> </tt>
+<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-line">        <tt id="link-3072" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3072', 'xml', 'link-248');">xml</a></tt> <tt class="py-op">=</tt> <tt id="link-3073" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3073', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L2945"></a><tt class="py-lineno">2945</tt>  <tt class="py-line"><tt class="py-string">        &lt;!DOCTYPE test SYSTEM "test.dtd" [</tt> </tt>
+<a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ENTITY entity "tasty"&gt;</tt> </tt>
+<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT test (a)&gt;</tt> </tt>
+<a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line"><tt class="py-string">          &lt;!ELEMENT a (#PCDATA)&gt;</tt> </tt>
+<a name="L2949"></a><tt class="py-lineno">2949</tt>  <tt class="py-line"><tt class="py-string">        ]&gt;</tt> </tt>
+<a name="L2950"></a><tt class="py-lineno">2950</tt>  <tt class="py-line"><tt class="py-string">        &lt;test&gt;&lt;a&gt;test-test&lt;/a&gt;&lt;/test&gt;\</tt> </tt>
+<a name="L2951"></a><tt class="py-lineno">2951</tt>  <tt class="py-line"><tt class="py-string">        '''</tt><tt class="py-op">)</tt> </tt>
+<a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3074" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3074', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3075" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3006', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3007" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3007', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2913"></a><tt class="py-lineno">2913</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3008" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3075', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt id="link-3076" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3076', 'xml', 'link-248');">xml</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3077" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3008', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3009" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3009', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3010" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3010', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3011" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3011', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3012" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3012', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L2914"></a><tt class="py-lineno">2914</tt>  <tt class="py-line">                         <tt id="link-3013" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3013', 'xml', 'link-248');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3014" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3014', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3015" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3015', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3016" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3016', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2915"></a><tt class="py-lineno">2915</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_byte_zero"></a><div id="ETreeOnlyTestCase.test_byte_zero-def"><a name="L2916"></a><tt class="py-lineno">2916</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_zero-expanded"><a name="L2917"></a><tt class="py-lineno">2917</tt>  <tt class="py-line">        <tt id="link-3017" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3077', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3078" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3078', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3079" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3079', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3080" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3080', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3081" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3081', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">                         <tt id="link-3082" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-3082', 'xml', 'link-248');">xml</a></tt><tt class="py-op">.</tt><tt id="link-3083" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-3083', 'replace', 'link-531');">replace</a></tt><tt class="py-op">(</tt><tt id="link-3084" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3084', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">" "</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3085" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3085', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_byte_zero"></a><div id="ETreeOnlyTestCase.test_byte_zero-def"><a name="L2956"></a><tt class="py-lineno">2956</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_zero">test_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_zero-expanded"><a name="L2957"></a><tt class="py-lineno">2957</tt>  <tt class="py-line">        <tt id="link-3086" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3017', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3018" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3086', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3087" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3018', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3019" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3087', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3088" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3019', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2918"></a><tt class="py-lineno">2918</tt>  <tt class="py-line"> </tt>
-<a name="L2919"></a><tt class="py-lineno">2919</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3020" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3088', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2958"></a><tt class="py-lineno">2958</tt>  <tt class="py-line"> </tt>
+<a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3089" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3020', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2920"></a><tt class="py-lineno">2920</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3021" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3021', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2921"></a><tt class="py-lineno">2921</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3022" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3022', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2922"></a><tt class="py-lineno">2922</tt>  <tt class="py-line"> </tt>
-<a name="L2923"></a><tt class="py-lineno">2923</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3023" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3089', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3090" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3090', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3091" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3091', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line"> </tt>
+<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3092" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3023', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2924"></a><tt class="py-lineno">2924</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_zero"></a><div id="ETreeOnlyTestCase.test_unicode_byte_zero-def"><a name="L2925"></a><tt class="py-lineno">2925</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-expanded"><a name="L2926"></a><tt class="py-lineno">2926</tt>  <tt class="py-line">        <tt id="link-3024" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3092', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_zero"></a><div id="ETreeOnlyTestCase.test_unicode_byte_zero-def"><a name="L2965"></a><tt class="py-lineno">2965</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_zero-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_zero');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_zero">test_unicode_byte_zero</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_zero-expanded"><a name="L2966"></a><tt class="py-lineno">2966</tt>  <tt class="py-line">        <tt id="link-3093" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3024', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3025" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3093', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3094" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3025', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3026" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3094', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3095" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3026', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2927"></a><tt class="py-lineno">2927</tt>  <tt class="py-line"> </tt>
-<a name="L2928"></a><tt class="py-lineno">2928</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3027" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3095', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line"> </tt>
+<a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3096" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3027', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2929"></a><tt class="py-lineno">2929</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3028" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3028', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2930"></a><tt class="py-lineno">2930</tt>  <tt class="py-line">                          <tt id="link-3029" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3029', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2931"></a><tt class="py-lineno">2931</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3030" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3030', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2932"></a><tt class="py-lineno">2932</tt>  <tt class="py-line">                          <tt id="link-3031" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3031', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2933"></a><tt class="py-lineno">2933</tt>  <tt class="py-line"> </tt>
-<a name="L2934"></a><tt class="py-lineno">2934</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3032" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3096', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2969"></a><tt class="py-lineno">2969</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3097" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3097', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line">                          <tt id="link-3098" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3098', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2971"></a><tt class="py-lineno">2971</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3099" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3099', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">                          <tt id="link-3100" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3100', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line"> </tt>
+<a name="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3101" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3032', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2935"></a><tt class="py-lineno">2935</tt>  <tt class="py-line">                          <tt id="link-3033" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3033', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2936"></a><tt class="py-lineno">2936</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_byte_invalid"></a><div id="ETreeOnlyTestCase.test_byte_invalid-def"><a name="L2937"></a><tt class="py-lineno">2937</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_invalid-expanded"><a name="L2938"></a><tt class="py-lineno">2938</tt>  <tt class="py-line">        <tt id="link-3034" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3101', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L2975"></a><tt class="py-lineno">2975</tt>  <tt class="py-line">                          <tt id="link-3102" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3102', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\0ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_byte_invalid"></a><div id="ETreeOnlyTestCase.test_byte_invalid-def"><a name="L2977"></a><tt class="py-lineno">2977</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_byte_invalid">test_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_byte_invalid-expanded"><a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line">        <tt id="link-3103" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3034', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3035" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3103', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3104" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3035', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3036" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3104', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3105" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3036', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2939"></a><tt class="py-lineno">2939</tt>  <tt class="py-line"> </tt>
-<a name="L2940"></a><tt class="py-lineno">2940</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3037" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3105', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2979"></a><tt class="py-lineno">2979</tt>  <tt class="py-line"> </tt>
+<a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3106" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3037', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2941"></a><tt class="py-lineno">2941</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3038" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3038', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2942"></a><tt class="py-lineno">2942</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3039" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3039', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2943"></a><tt class="py-lineno">2943</tt>  <tt class="py-line"> </tt>
-<a name="L2944"></a><tt class="py-lineno">2944</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3040" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3040', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2945"></a><tt class="py-lineno">2945</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3041" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3041', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2946"></a><tt class="py-lineno">2946</tt>  <tt class="py-line"> </tt>
-<a name="L2947"></a><tt class="py-lineno">2947</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3042" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3106', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2981"></a><tt class="py-lineno">2981</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3107" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3107', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3108" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3108', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line"> </tt>
+<a name="L2984"></a><tt class="py-lineno">2984</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3109" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3109', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2985"></a><tt class="py-lineno">2985</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3110" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3110', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line"> </tt>
+<a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3111" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3042', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2948"></a><tt class="py-lineno">2948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3043" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3111', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2988"></a><tt class="py-lineno">2988</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3112" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3043', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2949"></a><tt class="py-lineno">2949</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_invalid"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-def"><a name="L2950"></a><tt class="py-lineno">2950</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-expanded"><a name="L2951"></a><tt class="py-lineno">2951</tt>  <tt class="py-line">        <tt id="link-3044" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3112', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> <tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L2989"></a><tt class="py-lineno">2989</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_invalid"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-def"><a name="L2990"></a><tt class="py-lineno">2990</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid">test_unicode_byte_invalid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid-expanded"><a name="L2991"></a><tt class="py-lineno">2991</tt>  <tt class="py-line">        <tt id="link-3113" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3044', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3045" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3113', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3114" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3045', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3046" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3114', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3115" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3046', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2952"></a><tt class="py-lineno">2952</tt>  <tt class="py-line"> </tt>
-<a name="L2953"></a><tt class="py-lineno">2953</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3047" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3115', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L2992"></a><tt class="py-lineno">2992</tt>  <tt class="py-line"> </tt>
+<a name="L2993"></a><tt class="py-lineno">2993</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3116" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3047', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2954"></a><tt class="py-lineno">2954</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3048" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3048', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2955"></a><tt class="py-lineno">2955</tt>  <tt class="py-line">                          <tt id="link-3049" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3049', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2956"></a><tt class="py-lineno">2956</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3050" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3050', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2957"></a><tt class="py-lineno">2957</tt>  <tt class="py-line">                          <tt id="link-3051" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3051', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2958"></a><tt class="py-lineno">2958</tt>  <tt class="py-line"> </tt>
-<a name="L2959"></a><tt class="py-lineno">2959</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3052" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3052', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2960"></a><tt class="py-lineno">2960</tt>  <tt class="py-line">                          <tt id="link-3053" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3053', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2961"></a><tt class="py-lineno">2961</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3054" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3054', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2962"></a><tt class="py-lineno">2962</tt>  <tt class="py-line">                          <tt id="link-3055" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3055', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2963"></a><tt class="py-lineno">2963</tt>  <tt class="py-line"> </tt>
-<a name="L2964"></a><tt class="py-lineno">2964</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3056" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3116', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3117" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3117', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line">                          <tt id="link-3118" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3118', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3119" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3119', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L2997"></a><tt class="py-lineno">2997</tt>  <tt class="py-line">                          <tt id="link-3120" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3120', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L2998"></a><tt class="py-lineno">2998</tt>  <tt class="py-line"> </tt>
+<a name="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3121" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3121', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line">                          <tt id="link-3122" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3122', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3001"></a><tt class="py-lineno">3001</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3123" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3123', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3002"></a><tt class="py-lineno">3002</tt>  <tt class="py-line">                          <tt id="link-3124" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3124', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line"> </tt>
+<a name="L3004"></a><tt class="py-lineno">3004</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3125" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3056', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2965"></a><tt class="py-lineno">2965</tt>  <tt class="py-line">                          <tt id="link-3057" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3057', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2966"></a><tt class="py-lineno">2966</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3058" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3125', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line">                          <tt id="link-3126" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3126', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3006"></a><tt class="py-lineno">3006</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3127" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3058', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2967"></a><tt class="py-lineno">2967</tt>  <tt class="py-line">                          <tt id="link-3059" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3059', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2968"></a><tt class="py-lineno">2968</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-def"><a name="L2969"></a><tt class="py-lineno">2969</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-expanded"><a name="L2970"></a><tt class="py-lineno">2970</tt>  <tt class="py-line">        <tt id="link-3060" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3127', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3007"></a><tt class="py-lineno">3007</tt>  <tt class="py-line">                          <tt id="link-3128" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3128', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence"></a><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-def"><a name="L3009"></a><tt class="py-lineno">3009</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-toggle" onclick="return toggle('ETreeOnlyTestCase.test_unicode_byte_invalid_sequence');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_unicode_byte_invalid_sequence">test_unicode_byte_invalid_sequence</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_unicode_byte_invalid_sequence-expanded"><a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line">        <tt id="link-3129" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3060', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3061" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3129', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3130" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3061', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3062" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3130', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3131" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3062', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2971"></a><tt class="py-lineno">2971</tt>  <tt class="py-line"> </tt>
-<a name="L2972"></a><tt class="py-lineno">2972</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3063" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3131', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3011"></a><tt class="py-lineno">3011</tt>  <tt class="py-line"> </tt>
+<a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3132" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3063', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2973"></a><tt class="py-lineno">2973</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3064" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3064', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2974"></a><tt class="py-lineno">2974</tt>  <tt class="py-line">                          <tt id="link-3065" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3065', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2975"></a><tt class="py-lineno">2975</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3066" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3066', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2976"></a><tt class="py-lineno">2976</tt>  <tt class="py-line">                          <tt id="link-3067" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3067', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2977"></a><tt class="py-lineno">2977</tt>  <tt class="py-line"> </tt>
-<a name="L2978"></a><tt class="py-lineno">2978</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3068" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3068', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2979"></a><tt class="py-lineno">2979</tt>  <tt class="py-line">                          <tt id="link-3069" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3069', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2980"></a><tt class="py-lineno">2980</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3070" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3070', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
-<a name="L2981"></a><tt class="py-lineno">2981</tt>  <tt class="py-line">                          <tt id="link-3071" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3071', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2982"></a><tt class="py-lineno">2982</tt>  <tt class="py-line"> </tt>
-<a name="L2983"></a><tt class="py-lineno">2983</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3072" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3132', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3133" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3133', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">                          <tt id="link-3134" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3134', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3135" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3135', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"text"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line">                          <tt id="link-3136" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3136', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3017"></a><tt class="py-lineno">3017</tt>  <tt class="py-line"> </tt>
+<a name="L3018"></a><tt class="py-lineno">3018</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3137" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3137', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3019"></a><tt class="py-lineno">3019</tt>  <tt class="py-line">                          <tt id="link-3138" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3138', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3139" class="py-name"><a title="lxml.objectify.ObjectPath.setattr" class="py-name" href="#" onclick="return doclink('link-3139', 'setattr', 'link-73');">setattr</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">"tail"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line">                          <tt id="link-3140" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3140', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3022"></a><tt class="py-lineno">3022</tt>  <tt class="py-line"> </tt>
+<a name="L3023"></a><tt class="py-lineno">3023</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3141" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3072', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2984"></a><tt class="py-lineno">2984</tt>  <tt class="py-line">                          <tt id="link-3073" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3073', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L2985"></a><tt class="py-lineno">2985</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3074" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3141', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line">                          <tt id="link-3142" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3142', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x07ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3025"></a><tt class="py-lineno">3025</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">ValueError</tt><tt class="py-op">,</tt> <tt id="link-3143" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3074', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L2986"></a><tt class="py-lineno">2986</tt>  <tt class="py-line">                          <tt id="link-3075" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3075', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L2987"></a><tt class="py-lineno">2987</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_encoding_tostring_utf16"></a><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-def"><a name="L2988"></a><tt class="py-lineno">2988</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_encoding_tostring_utf16-toggle" onclick="return toggle('ETreeOnlyTestCase.test_encoding_tostring_utf16');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-expanded"><a name="L2989"></a><tt class="py-lineno">2989</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree fails to serialize this</tt> </tt>
-<a name="L2990"></a><tt class="py-lineno">2990</tt>  <tt class="py-line">        <tt id="link-3076" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3076', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3077" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3143', 'Element', 'link-61');">Element</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">                          <tt id="link-3144" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3144', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ha\u1234\x02ho'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3027"></a><tt class="py-lineno">3027</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_encoding_tostring_utf16"></a><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-def"><a name="L3028"></a><tt class="py-lineno">3028</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_encoding_tostring_utf16-toggle" onclick="return toggle('ETreeOnlyTestCase.test_encoding_tostring_utf16');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_encoding_tostring_utf16">test_encoding_tostring_utf16</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_encoding_tostring_utf16-expanded"><a name="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree fails to serialize this</tt> </tt>
+<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line">        <tt id="link-3145" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3145', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3077', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3078" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3078', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L2991"></a><tt class="py-lineno">2991</tt>  <tt class="py-line">        <tt id="link-3079" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3146', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3147" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3147', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3031"></a><tt class="py-lineno">3031</tt>  <tt class="py-line">        <tt id="link-3148" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3079', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3080" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3148', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3149" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3080', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3081" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3149', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3150" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3081', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L2992"></a><tt class="py-lineno">2992</tt>  <tt class="py-line">        <tt id="link-3082" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3082', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3083" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3150', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3032"></a><tt class="py-lineno">3032</tt>  <tt class="py-line">        <tt id="link-3151" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3151', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3152" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3083', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3084" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3084', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L2993"></a><tt class="py-lineno">2993</tt>  <tt class="py-line">         </tt>
-<a name="L2994"></a><tt class="py-lineno">2994</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3085" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3152', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3153" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3153', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3033"></a><tt class="py-lineno">3033</tt>  <tt class="py-line">         </tt>
+<a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3154" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3085', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2995"></a><tt class="py-lineno">2995</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3086" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3086', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2996"></a><tt class="py-lineno">2996</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3087" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3087', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2997"></a><tt class="py-lineno">2997</tt>  <tt class="py-line"> </tt>
-<a name="L2998"></a><tt class="py-lineno">2998</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3088" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3088', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3089" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3089', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt> </tt>
-<a name="L2999"></a><tt class="py-lineno">2999</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3090" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3090', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3000"></a><tt class="py-lineno">3000</tt>  <tt class="py-line">                          <tt id="link-3091" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3091', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3001"></a><tt class="py-lineno">3001</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_none"></a><div id="ETreeOnlyTestCase.test_tostring_none-def"><a name="L3002"></a><tt class="py-lineno">3002</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_none-expanded"><a name="L3003"></a><tt class="py-lineno">3003</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree raises an AssertionError here</tt> </tt>
-<a name="L3004"></a><tt class="py-lineno">3004</tt>  <tt class="py-line">        <tt id="link-3092" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3092', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3093" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3154', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3155" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3155', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3156" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3156', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line"> </tt>
+<a name="L3038"></a><tt class="py-lineno">3038</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3157" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3157', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3158" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3158', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-16'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3159" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3159', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3040"></a><tt class="py-lineno">3040</tt>  <tt class="py-line">                          <tt id="link-3160" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3160', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_none"></a><div id="ETreeOnlyTestCase.test_tostring_none-def"><a name="L3042"></a><tt class="py-lineno">3042</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_none">test_tostring_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_none-expanded"><a name="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line">        <tt class="py-comment"># ElementTree raises an AssertionError here</tt> </tt>
+<a name="L3044"></a><tt class="py-lineno">3044</tt>  <tt class="py-line">        <tt id="link-3161" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3161', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3162" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3093', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3094" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3094', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3005"></a><tt class="py-lineno">3005</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3095" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3162', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3163" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3163', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3045"></a><tt class="py-lineno">3045</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3164" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3095', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3096" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3096', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3006"></a><tt class="py-lineno">3006</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_pretty-def"><a name="L3007"></a><tt class="py-lineno">3007</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_pretty-expanded"><a name="L3008"></a><tt class="py-lineno">3008</tt>  <tt class="py-line">        <tt id="link-3097" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3097', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3098" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3164', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3165" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3165', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3046"></a><tt class="py-lineno">3046</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_pretty-def"><a name="L3047"></a><tt class="py-lineno">3047</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_pretty">test_tostring_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_pretty-expanded"><a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">        <tt id="link-3166" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3166', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3167" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3098', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3099" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3099', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3009"></a><tt class="py-lineno">3009</tt>  <tt class="py-line">        <tt id="link-3100" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3167', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3168" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3168', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line">        <tt id="link-3169" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3100', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3101" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3169', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3170" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3101', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3102" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3170', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3102', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3010"></a><tt class="py-lineno">3010</tt>  <tt class="py-line">        <tt id="link-3103" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3103', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3104" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3171', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3050"></a><tt class="py-lineno">3050</tt>  <tt class="py-line">        <tt id="link-3172" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3172', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3173" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3104', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3105" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3105', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3011"></a><tt class="py-lineno">3011</tt>  <tt class="py-line"> </tt>
-<a name="L3012"></a><tt class="py-lineno">3012</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3106" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3173', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3174" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3174', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line"> </tt>
+<a name="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3175" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3106', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3013"></a><tt class="py-lineno">3013</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3107" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3107', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3014"></a><tt class="py-lineno">3014</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3108" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3108', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3015"></a><tt class="py-lineno">3015</tt>  <tt class="py-line"> </tt>
-<a name="L3016"></a><tt class="py-lineno">3016</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3109" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3109', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3017"></a><tt class="py-lineno">3017</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3110" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3110', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3018"></a><tt class="py-lineno">3018</tt>  <tt class="py-line"> </tt>
-<a name="L3019"></a><tt class="py-lineno">3019</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3111" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3111', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3020"></a><tt class="py-lineno">3020</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3112" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3112', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3021"></a><tt class="py-lineno">3021</tt>  <tt class="py-line"> </tt>
-<a name="L3022"></a><tt class="py-lineno">3022</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3113" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3113', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3023"></a><tt class="py-lineno">3023</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3114" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3114', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3024"></a><tt class="py-lineno">3024</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_with_tail-def"><a name="L3025"></a><tt class="py-lineno">3025</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_with_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_with_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_with_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_with_tail-expanded"><a name="L3026"></a><tt class="py-lineno">3026</tt>  <tt class="py-line">        <tt id="link-3115" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3115', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3116" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3175', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3176" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3176', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3054"></a><tt class="py-lineno">3054</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3177" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3177', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3055"></a><tt class="py-lineno">3055</tt>  <tt class="py-line"> </tt>
+<a name="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3178" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3178', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3179" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3179', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3058"></a><tt class="py-lineno">3058</tt>  <tt class="py-line"> </tt>
+<a name="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3180" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3180', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3060"></a><tt class="py-lineno">3060</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3181" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3181', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line"> </tt>
+<a name="L3062"></a><tt class="py-lineno">3062</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3182" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3182', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3183" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3183', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3064"></a><tt class="py-lineno">3064</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_with_tail"></a><div id="ETreeOnlyTestCase.test_tostring_with_tail-def"><a name="L3065"></a><tt class="py-lineno">3065</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_with_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_with_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_with_tail">test_tostring_with_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_with_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_with_tail-expanded"><a name="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line">        <tt id="link-3184" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3184', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3185" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3116', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3117" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3117', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3027"></a><tt class="py-lineno">3027</tt>  <tt class="py-line">        <tt id="link-3118" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3185', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3186" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3186', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3067"></a><tt class="py-lineno">3067</tt>  <tt class="py-line">        <tt id="link-3187" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3118', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3119" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3187', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3188" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3119', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3120" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3188', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3189" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3120', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3028"></a><tt class="py-lineno">3028</tt>  <tt class="py-line">        <tt id="link-3121" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3121', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3122" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3189', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3068"></a><tt class="py-lineno">3068</tt>  <tt class="py-line">        <tt id="link-3190" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3190', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3191" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3122', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3123" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3123', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3029"></a><tt class="py-lineno">3029</tt>  <tt class="py-line"> </tt>
-<a name="L3030"></a><tt class="py-lineno">3030</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3124" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3191', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3192" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3192', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line"> </tt>
+<a name="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3193" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3124', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3031"></a><tt class="py-lineno">3031</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3125" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3125', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"aTAIL"</tt> </tt>
-<a name="L3032"></a><tt class="py-lineno">3032</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3126" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3126', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3033"></a><tt class="py-lineno">3033</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3127" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3127', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"bTAIL"</tt> </tt>
-<a name="L3034"></a><tt class="py-lineno">3034</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3128" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3128', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3035"></a><tt class="py-lineno">3035</tt>  <tt class="py-line"> </tt>
-<a name="L3036"></a><tt class="py-lineno">3036</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3129" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3129', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3037"></a><tt class="py-lineno">3037</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3130" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3130', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3038"></a><tt class="py-lineno">3038</tt>  <tt class="py-line"> </tt>
-<a name="L3039"></a><tt class="py-lineno">3039</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3131" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3131', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3040"></a><tt class="py-lineno">3040</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3132" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3132', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3041"></a><tt class="py-lineno">3041</tt>  <tt class="py-line"> </tt>
-<a name="L3042"></a><tt class="py-lineno">3042</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3133" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3133', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3043"></a><tt class="py-lineno">3043</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3134" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3134', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3044"></a><tt class="py-lineno">3044</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_standalone"></a><div id="ETreeOnlyTestCase.test_standalone-def"><a name="L3045"></a><tt class="py-lineno">3045</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_standalone-expanded"><a name="L3046"></a><tt class="py-lineno">3046</tt>  <tt class="py-line">        <tt id="link-3135" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3135', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3136" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3193', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3071"></a><tt class="py-lineno">3071</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3194" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3194', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"aTAIL"</tt> </tt>
+<a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3195" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3195', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3073"></a><tt class="py-lineno">3073</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3196" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3196', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"bTAIL"</tt> </tt>
+<a name="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3197" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3197', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line"> </tt>
+<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3198" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3198', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3199" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3199', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3078"></a><tt class="py-lineno">3078</tt>  <tt class="py-line"> </tt>
+<a name="L3079"></a><tt class="py-lineno">3079</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3200" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3200', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3080"></a><tt class="py-lineno">3080</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3201" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3201', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line"> </tt>
+<a name="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3202" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3202', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">with_tail</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3203" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3203', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;a&gt;&lt;b/&gt;bTAIL&lt;c/&gt;&lt;/a&gt;aTAIL"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_standalone"></a><div id="ETreeOnlyTestCase.test_standalone-def"><a name="L3085"></a><tt class="py-lineno">3085</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_standalone">test_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_standalone-expanded"><a name="L3086"></a><tt class="py-lineno">3086</tt>  <tt class="py-line">        <tt id="link-3204" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3204', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3205" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3136', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3137" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3137', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3047"></a><tt class="py-lineno">3047</tt>  <tt class="py-line">        <tt id="link-3138" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3205', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3206', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3087"></a><tt class="py-lineno">3087</tt>  <tt class="py-line">        <tt id="link-3207" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3138', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3139" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3207', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3208" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3139', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3140" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3208', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3140', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L3048"></a><tt class="py-lineno">3048</tt>  <tt class="py-line">        <tt id="link-3141" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3209', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L3088"></a><tt class="py-lineno">3088</tt>  <tt class="py-line">        <tt id="link-3210" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3141', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3142" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3210', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3211" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3142', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3143" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3211', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3212" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3143', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L3049"></a><tt class="py-lineno">3049</tt>  <tt class="py-line">        <tt id="link-3144" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3212', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">        <tt id="link-3213" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3144', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3145" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3213', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3214" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3145', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3146" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3214', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3215" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3146', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3050"></a><tt class="py-lineno">3050</tt>  <tt class="py-line"> </tt>
-<a name="L3051"></a><tt class="py-lineno">3051</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3147" class="py-name"><a title="lxml.etree.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3215', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3090"></a><tt class="py-lineno">3090</tt>  <tt class="py-line"> </tt>
+<a name="L3091"></a><tt class="py-lineno">3091</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3216" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3147', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3148" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3148', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3052"></a><tt class="py-lineno">3052</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3149" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3149', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3150" class="py-name" targets="Variable lxml.etree.DocInfo.standalone=lxml.etree.DocInfo-class.html#standalone"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3150', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3053"></a><tt class="py-lineno">3053</tt>  <tt class="py-line"> </tt>
-<a name="L3054"></a><tt class="py-lineno">3054</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3151" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3216', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"root"</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3217" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3217', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3092"></a><tt class="py-lineno">3092</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3218" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3218', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name" targets="Variable lxml.etree.DocInfo.standalone=lxml.etree.DocInfo-class.html#standalone"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3219', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line"> </tt>
+<a name="L3094"></a><tt class="py-lineno">3094</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3220" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3151', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3152" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3152', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3153" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3153', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3055"></a><tt class="py-lineno">3055</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3154" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3154', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3155" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3155', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3056"></a><tt class="py-lineno">3056</tt>  <tt class="py-line"> </tt>
-<a name="L3057"></a><tt class="py-lineno">3057</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3156" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3220', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3221" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3221', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3222" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3222', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3095"></a><tt class="py-lineno">3095</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3223" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3223', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3224" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3224', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line"> </tt>
+<a name="L3097"></a><tt class="py-lineno">3097</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3225" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3156', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3157" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3157', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3058"></a><tt class="py-lineno">3058</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt> </tt>
-<a name="L3059"></a><tt class="py-lineno">3059</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3158" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3158', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3060"></a><tt class="py-lineno">3060</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3159" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3159', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3160" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3160', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3061"></a><tt class="py-lineno">3061</tt>  <tt class="py-line"> </tt>
-<a name="L3062"></a><tt class="py-lineno">3062</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3161" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3225', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3226" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3226', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3098"></a><tt class="py-lineno">3098</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt> </tt>
+<a name="L3099"></a><tt class="py-lineno">3099</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3227" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3227', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3100"></a><tt class="py-lineno">3100</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3228" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3228', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3229" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3229', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line"> </tt>
+<a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3230" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3161', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3162" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3162', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3063"></a><tt class="py-lineno">3063</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt> </tt>
-<a name="L3064"></a><tt class="py-lineno">3064</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3163" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3163', 'getroottree', 'link-2037');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3065"></a><tt class="py-lineno">3065</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3164" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3164', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3165" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3165', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3066"></a><tt class="py-lineno">3066</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_standalone"></a><div id="ETreeOnlyTestCase.test_tostring_standalone-def"><a name="L3067"></a><tt class="py-lineno">3067</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone-expanded"><a name="L3068"></a><tt class="py-lineno">3068</tt>  <tt class="py-line">        <tt id="link-3166" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3166', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3167" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3230', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3231" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3231', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt> </tt>
+<a name="L3104"></a><tt class="py-lineno">3104</tt>  <tt class="py-line">            <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-3232" class="py-name"><a title="lxml.etree._Element.getroottree" class="py-name" href="#" onclick="return doclink('link-3232', 'getroottree', 'link-2106');">getroottree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3233" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3233', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3234" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3234', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_standalone"></a><div id="ETreeOnlyTestCase.test_tostring_standalone-def"><a name="L3107"></a><tt class="py-lineno">3107</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone">test_tostring_standalone</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_standalone-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone-expanded"><a name="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">        <tt id="link-3235" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3235', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3236" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3167', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3168" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3168', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3069"></a><tt class="py-lineno">3069</tt>  <tt class="py-line">        <tt id="link-3169" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3236', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3237" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3237', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line">        <tt id="link-3238" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3169', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3170" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3238', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3170', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3171" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3239', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3240" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3171', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L3070"></a><tt class="py-lineno">3070</tt>  <tt class="py-line">        <tt id="link-3172" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3240', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L3110"></a><tt class="py-lineno">3110</tt>  <tt class="py-line">        <tt id="link-3241" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3172', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3173" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3241', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3242" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3173', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3174" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3242', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3243" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3174', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L3071"></a><tt class="py-lineno">3071</tt>  <tt class="py-line"> </tt>
-<a name="L3072"></a><tt class="py-lineno">3072</tt>  <tt class="py-line">        <tt id="link-3175" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3175', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3176" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3243', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L3111"></a><tt class="py-lineno">3111</tt>  <tt class="py-line"> </tt>
+<a name="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt id="link-3244" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3244', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3245" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3176', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3177" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3177', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3073"></a><tt class="py-lineno">3073</tt>  <tt class="py-line"> </tt>
-<a name="L3074"></a><tt class="py-lineno">3074</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3178" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3245', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3246" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3246', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line"> </tt>
+<a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3247" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3178', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3179" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3179', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3075"></a><tt class="py-lineno">3075</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3180" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3180', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3181" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3181', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3076"></a><tt class="py-lineno">3076</tt>  <tt class="py-line"> </tt>
-<a name="L3077"></a><tt class="py-lineno">3077</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3182" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3182', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3183" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3183', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3184" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3184', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3078"></a><tt class="py-lineno">3078</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3185" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3185', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3079"></a><tt class="py-lineno">3079</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3080"></a><tt class="py-lineno">3080</tt>  <tt class="py-line"> </tt>
-<a name="L3081"></a><tt class="py-lineno">3081</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3186" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3186', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3187" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3187', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3188" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3188', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3082"></a><tt class="py-lineno">3082</tt>  <tt class="py-line">                          <tt id="link-3189" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3189', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3083"></a><tt class="py-lineno">3083</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3190" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3190', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3084"></a><tt class="py-lineno">3084</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3085"></a><tt class="py-lineno">3085</tt>  <tt class="py-line"> </tt>
-<a name="L3086"></a><tt class="py-lineno">3086</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3191" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3247', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3248" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3248', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3115"></a><tt class="py-lineno">3115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3249" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3249', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3250" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3250', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3116"></a><tt class="py-lineno">3116</tt>  <tt class="py-line"> </tt>
+<a name="L3117"></a><tt class="py-lineno">3117</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3251" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3251', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3252" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3252', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3253" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3253', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3254" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3254', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3119"></a><tt class="py-lineno">3119</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line"> </tt>
+<a name="L3121"></a><tt class="py-lineno">3121</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3255" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3255', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3256" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3256', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3257" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3257', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3122"></a><tt class="py-lineno">3122</tt>  <tt class="py-line">                          <tt id="link-3258" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3258', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3259" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3259', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3124"></a><tt class="py-lineno">3124</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line"> </tt>
+<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3260" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3191', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3192" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3192', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3087"></a><tt class="py-lineno">3087</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3193" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3193', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3194" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3194', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3088"></a><tt class="py-lineno">3088</tt>  <tt class="py-line"> </tt>
-<a name="L3089"></a><tt class="py-lineno">3089</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3195" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3195', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3196" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3196', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3197" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3197', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3090"></a><tt class="py-lineno">3090</tt>  <tt class="py-line">                          <tt id="link-3198" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3198', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3091"></a><tt class="py-lineno">3091</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3199" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3199', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3092"></a><tt class="py-lineno">3092</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3093"></a><tt class="py-lineno">3093</tt>  <tt class="py-line"> </tt>
-<a name="L3094"></a><tt class="py-lineno">3094</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3200" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3260', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3261" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3261', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3262" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3262', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3263" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3263', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line"> </tt>
+<a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3264" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3264', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3265" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3265', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3266" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3266', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line">                          <tt id="link-3267" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3267', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3268" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3268', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3132"></a><tt class="py-lineno">3132</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='no'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3133"></a><tt class="py-lineno">3133</tt>  <tt class="py-line"> </tt>
+<a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3269" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3200', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3201" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3269', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3270" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3201', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3095"></a><tt class="py-lineno">3095</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3202" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3202', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3203" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3203', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3096"></a><tt class="py-lineno">3096</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_standalone_in_out"></a><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-def"><a name="L3097"></a><tt class="py-lineno">3097</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone_in_out-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone_in_out');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-expanded"><a name="L3098"></a><tt class="py-lineno">3098</tt>  <tt class="py-line">        <tt id="link-3204" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3204', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3205" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3270', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3135"></a><tt class="py-lineno">3135</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3271" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3271', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3272" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3272', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3136"></a><tt class="py-lineno">3136</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_standalone_in_out"></a><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-def"><a name="L3137"></a><tt class="py-lineno">3137</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_standalone_in_out-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_standalone_in_out');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_standalone_in_out">test_tostring_standalone_in_out</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_standalone_in_out-expanded"><a name="L3138"></a><tt class="py-lineno">3138</tt>  <tt class="py-line">        <tt id="link-3273" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3273', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3274" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3205', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3206" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3206', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3099"></a><tt class="py-lineno">3099</tt>  <tt class="py-line">        <tt id="link-3207" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3274', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3275" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3275', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt id="link-3276" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3207', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3208" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3276', 'XML', 'link-209');">XML</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3277" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3208', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3209" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3277', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3278" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3209', 'XML', 'link-209');">XML</a></tt> </tt>
-<a name="L3100"></a><tt class="py-lineno">3100</tt>  <tt class="py-line">        <tt id="link-3210" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3278', 'XML', 'link-209');">XML</a></tt> </tt>
+<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">        <tt id="link-3279" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3210', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3211" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3279', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3280" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3211', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3212" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3280', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3281" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3212', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L3101"></a><tt class="py-lineno">3101</tt>  <tt class="py-line"> </tt>
-<a name="L3102"></a><tt class="py-lineno">3102</tt>  <tt class="py-line">        <tt id="link-3213" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3213', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3214" class="py-name"><a title="lxml.etree.XML
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3281', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line"> </tt>
+<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line">        <tt id="link-3282" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3282', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3283" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3214', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3215" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3215', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3103"></a><tt class="py-lineno">3103</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3104"></a><tt class="py-lineno">3104</tt>  <tt class="py-line"> </tt>
-<a name="L3105"></a><tt class="py-lineno">3105</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3216" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3283', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3284" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3284', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3143"></a><tt class="py-lineno">3143</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='UTF-8' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line"> </tt>
+<a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3285" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3216', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3217" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3217', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3106"></a><tt class="py-lineno">3106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3218" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3218', 'docinfo', 'link-2782');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3219" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3219', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3107"></a><tt class="py-lineno">3107</tt>  <tt class="py-line"> </tt>
-<a name="L3108"></a><tt class="py-lineno">3108</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3220" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3220', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3221" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3221', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3222" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3222', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3109"></a><tt class="py-lineno">3109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3223" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3223', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3110"></a><tt class="py-lineno">3110</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3111"></a><tt class="py-lineno">3111</tt>  <tt class="py-line"> </tt>
-<a name="L3112"></a><tt class="py-lineno">3112</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3224" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3224', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3225" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3225', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3226" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3226', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
-<a name="L3113"></a><tt class="py-lineno">3113</tt>  <tt class="py-line">                          <tt id="link-3227" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3227', 'standalone', 'link-3150');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3114"></a><tt class="py-lineno">3114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3228" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3228', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3115"></a><tt class="py-lineno">3115</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3116"></a><tt class="py-lineno">3116</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_method_text_encoding"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-def"><a name="L3117"></a><tt class="py-lineno">3117</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-expanded"><a name="L3118"></a><tt class="py-lineno">3118</tt>  <tt class="py-line">        <tt id="link-3229" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3229', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3230" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3285', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3286" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3286', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3146"></a><tt class="py-lineno">3146</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3287" class="py-name"><a title="lxml.etree._ElementTree.docinfo" class="py-name" href="#" onclick="return doclink('link-3287', 'docinfo', 'link-2851');">docinfo</a></tt><tt class="py-op">.</tt><tt id="link-3288" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3288', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3147"></a><tt class="py-lineno">3147</tt>  <tt class="py-line"> </tt>
+<a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3289" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3289', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3290" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3290', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3291" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3291', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3149"></a><tt class="py-lineno">3149</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3292" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3292', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3150"></a><tt class="py-lineno">3150</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line"> </tt>
+<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3293" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3293', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3294" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3294', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-name">xml_declaration</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt id="link-3295" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3295', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"ASCII"</tt><tt class="py-op">,</tt> </tt>
+<a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line">                          <tt id="link-3296" class="py-name"><a title="lxml.etree.DocInfo.standalone" class="py-name" href="#" onclick="return doclink('link-3296', 'standalone', 'link-3219');">standalone</a></tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-3297" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3297', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3155"></a><tt class="py-lineno">3155</tt>  <tt class="py-line">            <tt class="py-string">"&lt;?xml version='1.0' encoding='ASCII' standalone='yes'?&gt;\n&lt;root/&gt;"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_method_text_encoding"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-def"><a name="L3157"></a><tt class="py-lineno">3157</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_encoding-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_encoding');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_encoding">test_tostring_method_text_encoding</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_encoding-expanded"><a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt id="link-3298" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3298', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3299" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3230', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3231" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3231', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3119"></a><tt class="py-lineno">3119</tt>  <tt class="py-line">        <tt id="link-3232" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3299', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3300" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3300', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line">        <tt id="link-3301" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3232', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3233" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3301', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3302" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3233', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3234" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3302', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3303" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3234', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3120"></a><tt class="py-lineno">3120</tt>  <tt class="py-line">        <tt id="link-3235" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3235', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3236" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3303', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line">        <tt id="link-3304" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3304', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3305" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3236', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3237" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3237', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3121"></a><tt class="py-lineno">3121</tt>  <tt class="py-line">         </tt>
-<a name="L3122"></a><tt class="py-lineno">3122</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3238" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3305', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3306" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3306', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line">         </tt>
+<a name="L3162"></a><tt class="py-lineno">3162</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3307" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3238', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3123"></a><tt class="py-lineno">3123</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3239" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3307', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3163"></a><tt class="py-lineno">3163</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3308" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3239', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
-<a name="L3124"></a><tt class="py-lineno">3124</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3240" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3240', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L3125"></a><tt class="py-lineno">3125</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3241" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3241', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3126"></a><tt class="py-lineno">3126</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3242" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3308', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"A"</tt> </tt>
+<a name="L3164"></a><tt class="py-lineno">3164</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3309" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3309', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3310" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3310', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3311" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3242', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L3127"></a><tt class="py-lineno">3127</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3243" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3243', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3244" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3244', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"S&#248;k p&#229; nettet"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3128"></a><tt class="py-lineno">3128</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3245" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3245', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3129"></a><tt class="py-lineno">3129</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3246" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3311', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3312" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3312', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3313" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3313', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"S&#248;k p&#229; nettet"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3314" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3314', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3315" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3246', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L3130"></a><tt class="py-lineno">3130</tt>  <tt class="py-line"> </tt>
-<a name="L3131"></a><tt class="py-lineno">3131</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3247" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3247', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3248" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3248', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-3249" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3249', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3132"></a><tt class="py-lineno">3132</tt>  <tt class="py-line"> </tt>
-<a name="L3133"></a><tt class="py-lineno">3133</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3250" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3250', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABS&#248;k p&#229; nettetCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3134"></a><tt class="py-lineno">3134</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3135"></a><tt class="py-lineno">3135</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_method_text_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-def"><a name="L3136"></a><tt class="py-lineno">3136</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-expanded"><a name="L3137"></a><tt class="py-lineno">3137</tt>  <tt class="py-line">        <tt id="link-3251" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3251', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3252" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3315', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L3170"></a><tt class="py-lineno">3170</tt>  <tt class="py-line"> </tt>
+<a name="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3316" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3316', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3317" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3317', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">,</tt> <tt id="link-3318" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3318', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line"> </tt>
+<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3319" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3319', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'ABS&#248;k p&#229; nettetCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"UTF-16"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line">                          <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_method_text_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-def"><a name="L3176"></a><tt class="py-lineno">3176</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_method_text_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_method_text_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_method_text_unicode">test_tostring_method_text_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_method_text_unicode-expanded"><a name="L3177"></a><tt class="py-lineno">3177</tt>  <tt class="py-line">        <tt id="link-3320" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3320', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3321" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3252', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3253" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3253', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3138"></a><tt class="py-lineno">3138</tt>  <tt class="py-line">        <tt id="link-3254" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3321', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3322" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3322', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3178"></a><tt class="py-lineno">3178</tt>  <tt class="py-line">        <tt id="link-3323" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3254', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3255" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3323', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3324" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3255', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3256" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3324', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3325" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3256', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3139"></a><tt class="py-lineno">3139</tt>  <tt class="py-line">        <tt id="link-3257" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3257', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3258" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3325', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">        <tt id="link-3326" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3326', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3327" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3258', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3259" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3259', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3140"></a><tt class="py-lineno">3140</tt>  <tt class="py-line">         </tt>
-<a name="L3141"></a><tt class="py-lineno">3141</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3260" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3327', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3328" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3328', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line">         </tt>
+<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3329" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3260', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3142"></a><tt class="py-lineno">3142</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3261" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3329', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3330" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3261', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3262" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3262', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetA'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3143"></a><tt class="py-lineno">3143</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3263" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3263', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
-<a name="L3144"></a><tt class="py-lineno">3144</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3264" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3264', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3145"></a><tt class="py-lineno">3145</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3265" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3330', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-3331" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3331', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetA'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt class="py-name">a</tt><tt class="py-op">.</tt><tt id="link-3332" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3332', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"tail"</tt> </tt>
+<a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3333" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3333', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3185"></a><tt class="py-lineno">3185</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3334" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3265', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
-<a name="L3146"></a><tt class="py-lineno">3146</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3266" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3266', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3267" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3267', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetB'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3147"></a><tt class="py-lineno">3147</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3268" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3268', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3148"></a><tt class="py-lineno">3148</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3269" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3334', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"B"</tt> </tt>
+<a name="L3186"></a><tt class="py-lineno">3186</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3335" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3335', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-3336" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3336', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetB'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3337" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3337', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt class="py-name">c</tt><tt class="py-op">.</tt><tt id="link-3338" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3269', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
-<a name="L3149"></a><tt class="py-lineno">3149</tt>  <tt class="py-line">         </tt>
-<a name="L3150"></a><tt class="py-lineno">3150</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">UnicodeEncodeError</tt><tt class="py-op">,</tt> </tt>
-<a name="L3151"></a><tt class="py-lineno">3151</tt>  <tt class="py-line">                          <tt id="link-3270" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3270', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3271" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3271', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3152"></a><tt class="py-lineno">3152</tt>  <tt class="py-line">         </tt>
-<a name="L3153"></a><tt class="py-lineno">3153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3154"></a><tt class="py-lineno">3154</tt>  <tt class="py-line">            <tt id="link-3272" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3272', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetABS&#248;k p&#229; nettetBCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3155"></a><tt class="py-lineno">3155</tt>  <tt class="py-line">            <tt id="link-3273" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3273', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3274" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3274', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">,</tt> <tt id="link-3275" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3275', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3156"></a><tt class="py-lineno">3156</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode"></a><div id="ETreeOnlyTestCase.test_tounicode-def"><a name="L3157"></a><tt class="py-lineno">3157</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode-expanded"><a name="L3158"></a><tt class="py-lineno">3158</tt>  <tt class="py-line">        <tt id="link-3276" class="py-name" targets="Function lxml.etree.tounicode()=lxml.etree-module.html#tounicode"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3276', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3277" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3338', 'text', 'link-186');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"C"</tt> </tt>
+<a name="L3189"></a><tt class="py-lineno">3189</tt>  <tt class="py-line">         </tt>
+<a name="L3190"></a><tt class="py-lineno">3190</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">UnicodeEncodeError</tt><tt class="py-op">,</tt> </tt>
+<a name="L3191"></a><tt class="py-lineno">3191</tt>  <tt class="py-line">                          <tt id="link-3339" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3339', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> <tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3340" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3340', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-line">         </tt>
+<a name="L3193"></a><tt class="py-lineno">3193</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line">            <tt id="link-3341" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-3341', '_str', 'link-20');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'S&#248;k p&#229; nettetABS&#248;k p&#229; nettetBCtail'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">'utf-8'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3195"></a><tt class="py-lineno">3195</tt>  <tt class="py-line">            <tt id="link-3342" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3342', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3343" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3343', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">"UTF-8"</tt><tt class="py-op">,</tt> <tt id="link-3344" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3344', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">"text"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode"></a><div id="ETreeOnlyTestCase.test_tounicode-def"><a name="L3197"></a><tt class="py-lineno">3197</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode">test_tounicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode-expanded"><a name="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line">        <tt id="link-3345" class="py-name" targets="Function lxml.etree.tounicode()=lxml.etree-module.html#tounicode"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3345', 'tounicode', 'link-3345');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3346" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3277', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3278" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3278', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
-<a name="L3159"></a><tt class="py-lineno">3159</tt>  <tt class="py-line">        <tt id="link-3279" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3346', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3347" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3347', 'tounicode', 'link-3345');">tounicode</a></tt> </tt>
+<a name="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-line">        <tt id="link-3348" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3279', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3280" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3348', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3349" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3280', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3281" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3349', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3350" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3281', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3160"></a><tt class="py-lineno">3160</tt>  <tt class="py-line">        <tt id="link-3282" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3282', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3283" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3350', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line">        <tt id="link-3351" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3351', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3352" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3283', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3284" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3284', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3161"></a><tt class="py-lineno">3161</tt>  <tt class="py-line">         </tt>
-<a name="L3162"></a><tt class="py-lineno">3162</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3285" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3352', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3353" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3353', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-line">         </tt>
+<a name="L3202"></a><tt class="py-lineno">3202</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3354" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3285', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3163"></a><tt class="py-lineno">3163</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3286" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3286', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3164"></a><tt class="py-lineno">3164</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3287" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3287', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3165"></a><tt class="py-lineno">3165</tt>  <tt class="py-line">         </tt>
-<a name="L3166"></a><tt class="py-lineno">3166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3288" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3288', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3167"></a><tt class="py-lineno">3167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3289" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3289', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3168"></a><tt class="py-lineno">3168</tt>  <tt class="py-line">                          <tt id="link-3290" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3290', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3291" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3291', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3169"></a><tt class="py-lineno">3169</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_element"></a><div id="ETreeOnlyTestCase.test_tounicode_element-def"><a name="L3170"></a><tt class="py-lineno">3170</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element-expanded"><a name="L3171"></a><tt class="py-lineno">3171</tt>  <tt class="py-line">        <tt id="link-3292" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3292', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3293" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3354', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3203"></a><tt class="py-lineno">3203</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3355" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3355', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3204"></a><tt class="py-lineno">3204</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3356" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3356', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3205"></a><tt class="py-lineno">3205</tt>  <tt class="py-line">         </tt>
+<a name="L3206"></a><tt class="py-lineno">3206</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3357" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3357', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3358" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3358', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-line">                          <tt id="link-3359" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3359', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3360" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3360', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3209"></a><tt class="py-lineno">3209</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_element"></a><div id="ETreeOnlyTestCase.test_tounicode_element-def"><a name="L3210"></a><tt class="py-lineno">3210</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element">test_tounicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element-expanded"><a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt id="link-3361" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3361', 'tounicode', 'link-3345');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3362" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3293', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3294" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3294', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
-<a name="L3172"></a><tt class="py-lineno">3172</tt>  <tt class="py-line">        <tt id="link-3295" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3362', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3363" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3363', 'tounicode', 'link-3345');">tounicode</a></tt> </tt>
+<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-line">        <tt id="link-3364" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3295', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3296" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3364', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3365" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3296', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3297" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3365', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3366" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3297', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3173"></a><tt class="py-lineno">3173</tt>  <tt class="py-line">        <tt id="link-3298" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3298', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3299" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3366', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line">        <tt id="link-3367" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3367', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3368" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3299', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3300" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3300', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3174"></a><tt class="py-lineno">3174</tt>  <tt class="py-line">         </tt>
-<a name="L3175"></a><tt class="py-lineno">3175</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3301" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3368', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3369" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3369', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line">         </tt>
+<a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3370" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3301', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3176"></a><tt class="py-lineno">3176</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3302" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3302', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3177"></a><tt class="py-lineno">3177</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3303" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3303', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3178"></a><tt class="py-lineno">3178</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3304" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3304', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3179"></a><tt class="py-lineno">3179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3305" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3305', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3180"></a><tt class="py-lineno">3180</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3306" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3306', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3181"></a><tt class="py-lineno">3181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3307" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3307', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3182"></a><tt class="py-lineno">3182</tt>  <tt class="py-line">                          <tt id="link-3308" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3308', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3309" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3309', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3183"></a><tt class="py-lineno">3183</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3310" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3310', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3184"></a><tt class="py-lineno">3184</tt>  <tt class="py-line">                          <tt id="link-3311" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3311', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3312" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3312', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3185"></a><tt class="py-lineno">3185</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_none"></a><div id="ETreeOnlyTestCase.test_tounicode_none-def"><a name="L3186"></a><tt class="py-lineno">3186</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_none-expanded"><a name="L3187"></a><tt class="py-lineno">3187</tt>  <tt class="py-line">        <tt id="link-3313" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3313', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3314" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3370', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3371" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3371', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3372" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3372', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3218"></a><tt class="py-lineno">3218</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3373" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3373', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3219"></a><tt class="py-lineno">3219</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3374" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3374', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3375" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3375', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3221"></a><tt class="py-lineno">3221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3376" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3376', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3222"></a><tt class="py-lineno">3222</tt>  <tt class="py-line">                          <tt id="link-3377" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3377', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3378" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3378', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3223"></a><tt class="py-lineno">3223</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3379" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3379', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">                          <tt id="link-3380" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3380', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3381" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3381', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3225"></a><tt class="py-lineno">3225</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_none"></a><div id="ETreeOnlyTestCase.test_tounicode_none-def"><a name="L3226"></a><tt class="py-lineno">3226</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_none">test_tounicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_none-expanded"><a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-line">        <tt id="link-3382" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3382', 'tounicode', 'link-3345');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3383" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3314', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3315" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3315', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
-<a name="L3188"></a><tt class="py-lineno">3188</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3316" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3383', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3384" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3384', 'tounicode', 'link-3345');">tounicode</a></tt> </tt>
+<a name="L3228"></a><tt class="py-lineno">3228</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3385" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3316', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3317" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3317', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3189"></a><tt class="py-lineno">3189</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tounicode_element_tail-def"><a name="L3190"></a><tt class="py-lineno">3190</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-expanded"><a name="L3191"></a><tt class="py-lineno">3191</tt>  <tt class="py-line">        <tt id="link-3318" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3318', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3319" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3385', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3386" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3386', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tounicode_element_tail-def"><a name="L3230"></a><tt class="py-lineno">3230</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_element_tail">test_tounicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_element_tail-expanded"><a name="L3231"></a><tt class="py-lineno">3231</tt>  <tt class="py-line">        <tt id="link-3387" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3387', 'tounicode', 'link-3345');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3388" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3319', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3320" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3320', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
-<a name="L3192"></a><tt class="py-lineno">3192</tt>  <tt class="py-line">        <tt id="link-3321" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3388', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3389" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3389', 'tounicode', 'link-3345');">tounicode</a></tt> </tt>
+<a name="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-line">        <tt id="link-3390" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3321', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3322" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3390', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3391" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3322', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3323" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3391', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3392" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3323', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3193"></a><tt class="py-lineno">3193</tt>  <tt class="py-line">        <tt id="link-3324" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3324', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3325" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3392', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3233"></a><tt class="py-lineno">3233</tt>  <tt class="py-line">        <tt id="link-3393" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3393', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3394" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3325', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3326" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3326', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3194"></a><tt class="py-lineno">3194</tt>  <tt class="py-line">         </tt>
-<a name="L3195"></a><tt class="py-lineno">3195</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3327" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3394', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3395" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3395', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3234"></a><tt class="py-lineno">3234</tt>  <tt class="py-line">         </tt>
+<a name="L3235"></a><tt class="py-lineno">3235</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3396" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3327', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3196"></a><tt class="py-lineno">3196</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3328" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3328', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3197"></a><tt class="py-lineno">3197</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3329" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3329', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3198"></a><tt class="py-lineno">3198</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3330" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3330', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3199"></a><tt class="py-lineno">3199</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3331" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3331', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3200"></a><tt class="py-lineno">3200</tt>  <tt class="py-line"> </tt>
-<a name="L3201"></a><tt class="py-lineno">3201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3332" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3332', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3202"></a><tt class="py-lineno">3202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3333" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3333', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
-<a name="L3203"></a><tt class="py-lineno">3203</tt>  <tt class="py-line">                     <tt id="link-3334" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3334', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3204"></a><tt class="py-lineno">3204</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tounicode_pretty"></a><div id="ETreeOnlyTestCase.test_tounicode_pretty-def"><a name="L3205"></a><tt class="py-lineno">3205</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tounicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_pretty-expanded"><a name="L3206"></a><tt class="py-lineno">3206</tt>  <tt class="py-line">        <tt id="link-3335" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3335', 'tounicode', 'link-3276');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3336" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3396', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3236"></a><tt class="py-lineno">3236</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3397" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3397', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3237"></a><tt class="py-lineno">3237</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3398" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3398', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3238"></a><tt class="py-lineno">3238</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3399" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3399', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3239"></a><tt class="py-lineno">3239</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3400" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3400', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line"> </tt>
+<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3401" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3401', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3242"></a><tt class="py-lineno">3242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3402" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3402', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
+<a name="L3243"></a><tt class="py-lineno">3243</tt>  <tt class="py-line">                     <tt id="link-3403" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3403', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3244"></a><tt class="py-lineno">3244</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tounicode_pretty"></a><div id="ETreeOnlyTestCase.test_tounicode_pretty-def"><a name="L3245"></a><tt class="py-lineno">3245</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tounicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tounicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tounicode_pretty">test_tounicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tounicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tounicode_pretty-expanded"><a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">        <tt id="link-3404" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3404', 'tounicode', 'link-3345');">tounicode</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3405" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3336', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3337" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3337', 'tounicode', 'link-3276');">tounicode</a></tt> </tt>
-<a name="L3207"></a><tt class="py-lineno">3207</tt>  <tt class="py-line">        <tt id="link-3338" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3405', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3406" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3406', 'tounicode', 'link-3345');">tounicode</a></tt> </tt>
+<a name="L3247"></a><tt class="py-lineno">3247</tt>  <tt class="py-line">        <tt id="link-3407" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3338', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3339" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3407', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3408" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3339', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3340" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3408', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3409" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3340', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3208"></a><tt class="py-lineno">3208</tt>  <tt class="py-line">        <tt id="link-3341" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3341', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3342" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3409', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">        <tt id="link-3410" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3410', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3411" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3342', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3343" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3343', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3209"></a><tt class="py-lineno">3209</tt>  <tt class="py-line"> </tt>
-<a name="L3210"></a><tt class="py-lineno">3210</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3344" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3411', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3412" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3412', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line"> </tt>
+<a name="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3413" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3344', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3211"></a><tt class="py-lineno">3211</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3345" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3345', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3212"></a><tt class="py-lineno">3212</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3346" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3346', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3213"></a><tt class="py-lineno">3213</tt>  <tt class="py-line"> </tt>
-<a name="L3214"></a><tt class="py-lineno">3214</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3347" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3347', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
-<a name="L3215"></a><tt class="py-lineno">3215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3216"></a><tt class="py-lineno">3216</tt>  <tt class="py-line"> </tt>
-<a name="L3217"></a><tt class="py-lineno">3217</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3348" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3348', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3218"></a><tt class="py-lineno">3218</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3219"></a><tt class="py-lineno">3219</tt>  <tt class="py-line"> </tt>
-<a name="L3220"></a><tt class="py-lineno">3220</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3349" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3349', 'tounicode', 'link-3276');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3221"></a><tt class="py-lineno">3221</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3222"></a><tt class="py-lineno">3222</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_unicode-def"><a name="L3223"></a><tt class="py-lineno">3223</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode-expanded"><a name="L3224"></a><tt class="py-lineno">3224</tt>  <tt class="py-line">        <tt id="link-3350" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3350', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3351" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3413', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3251"></a><tt class="py-lineno">3251</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3414" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3414', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3252"></a><tt class="py-lineno">3252</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3415" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3415', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line"> </tt>
+<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3416" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3416', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">)</tt> </tt>
+<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line"> </tt>
+<a name="L3257"></a><tt class="py-lineno">3257</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3417" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3417', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3258"></a><tt class="py-lineno">3258</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3259"></a><tt class="py-lineno">3259</tt>  <tt class="py-line"> </tt>
+<a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3418" class="py-name"><a title="lxml.etree.tounicode" class="py-name" href="#" onclick="return doclink('link-3418', 'tounicode', 'link-3345');">tounicode</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode"></a><div id="ETreeOnlyTestCase.test_tostring_unicode-def"><a name="L3263"></a><tt class="py-lineno">3263</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode">test_tostring_unicode</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode-expanded"><a name="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line">        <tt id="link-3419" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3419', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3420" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3351', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3352" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3352', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3225"></a><tt class="py-lineno">3225</tt>  <tt class="py-line">        <tt id="link-3353" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3420', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3421" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3421', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3265"></a><tt class="py-lineno">3265</tt>  <tt class="py-line">        <tt id="link-3422" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3353', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3354" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3422', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3423" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3354', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3355" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3423', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3355', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3226"></a><tt class="py-lineno">3226</tt>  <tt class="py-line">        <tt id="link-3356" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3356', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3357" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3424', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-line">        <tt id="link-3425" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3425', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3426" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3357', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3358" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3358', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3227"></a><tt class="py-lineno">3227</tt>  <tt class="py-line">         </tt>
-<a name="L3228"></a><tt class="py-lineno">3228</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3359" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3426', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3427" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3427', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line">         </tt>
+<a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3428" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3359', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3229"></a><tt class="py-lineno">3229</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3360" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3360', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3230"></a><tt class="py-lineno">3230</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3361" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3361', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3231"></a><tt class="py-lineno">3231</tt>  <tt class="py-line">         </tt>
-<a name="L3232"></a><tt class="py-lineno">3232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3362" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3362', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3363" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3363', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3233"></a><tt class="py-lineno">3233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3364" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3364', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3234"></a><tt class="py-lineno">3234</tt>  <tt class="py-line">                          <tt id="link-3365" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3365', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3366" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3366', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3367" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3367', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3235"></a><tt class="py-lineno">3235</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_element"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element-def"><a name="L3236"></a><tt class="py-lineno">3236</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-expanded"><a name="L3237"></a><tt class="py-lineno">3237</tt>  <tt class="py-line">        <tt id="link-3368" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3368', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3369" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3428', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3429" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3429', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3430" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3430', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3271"></a><tt class="py-lineno">3271</tt>  <tt class="py-line">         </tt>
+<a name="L3272"></a><tt class="py-lineno">3272</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3431" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3431', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3432" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3432', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3433" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3433', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;c&gt;&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line">                          <tt id="link-3434" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3434', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3435" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3435', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3436" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3436', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_element"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element-def"><a name="L3276"></a><tt class="py-lineno">3276</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element">test_tostring_unicode_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element-expanded"><a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line">        <tt id="link-3437" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3437', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3438" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3369', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3370" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3370', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3238"></a><tt class="py-lineno">3238</tt>  <tt class="py-line">        <tt id="link-3371" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3438', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3439" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3439', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line">        <tt id="link-3440" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3371', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3372" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3440', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3441" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3372', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3373" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3441', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3442" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3373', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3239"></a><tt class="py-lineno">3239</tt>  <tt class="py-line">        <tt id="link-3374" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3374', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3375" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3442', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3279"></a><tt class="py-lineno">3279</tt>  <tt class="py-line">        <tt id="link-3443" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3443', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3444" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3375', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3376" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3376', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3240"></a><tt class="py-lineno">3240</tt>  <tt class="py-line">         </tt>
-<a name="L3241"></a><tt class="py-lineno">3241</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3377" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3444', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3445" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3445', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line">         </tt>
+<a name="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3446" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3377', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3242"></a><tt class="py-lineno">3242</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3378" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3378', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3243"></a><tt class="py-lineno">3243</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3379" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3379', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3244"></a><tt class="py-lineno">3244</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3380" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3380', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3245"></a><tt class="py-lineno">3245</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3381" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3381', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3382" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3382', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3246"></a><tt class="py-lineno">3246</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3383" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3383', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3384" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3384', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3247"></a><tt class="py-lineno">3247</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3385" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3385', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3248"></a><tt class="py-lineno">3248</tt>  <tt class="py-line">                          <tt id="link-3386" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3386', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3387" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3387', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3388" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3388', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3249"></a><tt class="py-lineno">3249</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3389" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3389', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3250"></a><tt class="py-lineno">3250</tt>  <tt class="py-line">                          <tt id="link-3390" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3390', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3391" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3391', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3392" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3392', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3251"></a><tt class="py-lineno">3251</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_none"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_none-def"><a name="L3252"></a><tt class="py-lineno">3252</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-expanded"><a name="L3253"></a><tt class="py-lineno">3253</tt>  <tt class="py-line">        <tt id="link-3393" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3393', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3394" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3446', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3447" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3447', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3448" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3448', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3284"></a><tt class="py-lineno">3284</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3449" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3449', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3285"></a><tt class="py-lineno">3285</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3450" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3450', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3451" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3451', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3452" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3452', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3453" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3453', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3287"></a><tt class="py-lineno">3287</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3454" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3454', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3288"></a><tt class="py-lineno">3288</tt>  <tt class="py-line">                          <tt id="link-3455" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3455', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3456" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3456', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3457" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3457', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3458" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3458', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;c&gt;&lt;d&gt;&lt;/d&gt;&lt;/c&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3290"></a><tt class="py-lineno">3290</tt>  <tt class="py-line">                          <tt id="link-3459" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3459', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3460" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3460', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt id="link-3461" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3461', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_none"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_none-def"><a name="L3292"></a><tt class="py-lineno">3292</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_none-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_none');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_none">test_tostring_unicode_none</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_none-expanded"><a name="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-line">        <tt id="link-3462" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3462', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3463" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3394', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3395" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3395', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3254"></a><tt class="py-lineno">3254</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3396" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3463', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3464" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3464', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3465" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3396', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3397" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3397', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L3255"></a><tt class="py-lineno">3255</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-3398" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3398', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3256"></a><tt class="py-lineno">3256</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-def"><a name="L3257"></a><tt class="py-lineno">3257</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-expanded"><a name="L3258"></a><tt class="py-lineno">3258</tt>  <tt class="py-line">        <tt id="link-3399" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3399', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3400" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3465', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3466" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3466', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L3295"></a><tt class="py-lineno">3295</tt>  <tt class="py-line">                          <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-3467" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3467', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_element_tail"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-def"><a name="L3297"></a><tt class="py-lineno">3297</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_element_tail');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_element_tail">test_tostring_unicode_element_tail</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_element_tail-expanded"><a name="L3298"></a><tt class="py-lineno">3298</tt>  <tt class="py-line">        <tt id="link-3468" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3468', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3469" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3400', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3401" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3401', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3259"></a><tt class="py-lineno">3259</tt>  <tt class="py-line">        <tt id="link-3402" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3469', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3470" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3470', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line">        <tt id="link-3471" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3402', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3403" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3471', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3472" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3403', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3404" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3472', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3473" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3404', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3260"></a><tt class="py-lineno">3260</tt>  <tt class="py-line">        <tt id="link-3405" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3405', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3406" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3473', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3300"></a><tt class="py-lineno">3300</tt>  <tt class="py-line">        <tt id="link-3474" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3474', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3475" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3406', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3407" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3407', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3261"></a><tt class="py-lineno">3261</tt>  <tt class="py-line">         </tt>
-<a name="L3262"></a><tt class="py-lineno">3262</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3408" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3475', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3476" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3476', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3301"></a><tt class="py-lineno">3301</tt>  <tt class="py-line">         </tt>
+<a name="L3302"></a><tt class="py-lineno">3302</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3477" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3408', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3263"></a><tt class="py-lineno">3263</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3409" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3409', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3264"></a><tt class="py-lineno">3264</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3410" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3410', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3265"></a><tt class="py-lineno">3265</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3411" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3411', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3266"></a><tt class="py-lineno">3266</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3412" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3412', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
-<a name="L3267"></a><tt class="py-lineno">3267</tt>  <tt class="py-line"> </tt>
-<a name="L3268"></a><tt class="py-lineno">3268</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3413" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3413', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3414" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3414', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3269"></a><tt class="py-lineno">3269</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3415" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3415', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3416" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3416', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
-<a name="L3270"></a><tt class="py-lineno">3270</tt>  <tt class="py-line">                     <tt id="link-3417" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3417', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3418" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3418', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3271"></a><tt class="py-lineno">3271</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_tostring_unicode_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-def"><a name="L3272"></a><tt class="py-lineno">3272</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-expanded"><a name="L3273"></a><tt class="py-lineno">3273</tt>  <tt class="py-line">        <tt id="link-3419" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3419', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3420" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3477', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3478" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3478', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3304"></a><tt class="py-lineno">3304</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3479" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3479', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt class="py-name">d</tt> <tt class="py-op">=</tt> <tt id="link-3480" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3480', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">c</tt><tt class="py-op">,</tt> <tt class="py-string">'d'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line">        <tt class="py-name">b</tt><tt class="py-op">.</tt><tt id="link-3481" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3481', 'tail', 'link-842');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'Foo'</tt> </tt>
+<a name="L3307"></a><tt class="py-lineno">3307</tt>  <tt class="py-line"> </tt>
+<a name="L3308"></a><tt class="py-lineno">3308</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt id="link-3482" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3482', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3483" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3483', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">_unicode</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-3484" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3484', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3485" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3485', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b/&gt;Foo'</tt> <tt class="py-keyword">or</tt> </tt>
+<a name="L3310"></a><tt class="py-lineno">3310</tt>  <tt class="py-line">                     <tt id="link-3486" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3486', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">b</tt><tt class="py-op">,</tt> <tt id="link-3487" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3487', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-string">'&lt;b /&gt;Foo'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_tostring_unicode_pretty"></a><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-def"><a name="L3312"></a><tt class="py-lineno">3312</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_tostring_unicode_pretty-toggle" onclick="return toggle('ETreeOnlyTestCase.test_tostring_unicode_pretty');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_tostring_unicode_pretty">test_tostring_unicode_pretty</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_tostring_unicode_pretty-expanded"><a name="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">        <tt id="link-3488" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3488', 'tostring', 'link-589');">tostring</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3489" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3420', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3421" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3421', 'tostring', 'link-589');">tostring</a></tt> </tt>
-<a name="L3274"></a><tt class="py-lineno">3274</tt>  <tt class="py-line">        <tt id="link-3422" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3489', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3490" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3490', 'tostring', 'link-589');">tostring</a></tt> </tt>
+<a name="L3314"></a><tt class="py-lineno">3314</tt>  <tt class="py-line">        <tt id="link-3491" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3422', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3423" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3491', 'Element', 'link-61');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3492" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3423', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3424" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3492', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3493" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3424', 'Element', 'link-61');">Element</a></tt> </tt>
-<a name="L3275"></a><tt class="py-lineno">3275</tt>  <tt class="py-line">        <tt id="link-3425" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3425', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3426" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3493', 'Element', 'link-61');">Element</a></tt> </tt>
+<a name="L3315"></a><tt class="py-lineno">3315</tt>  <tt class="py-line">        <tt id="link-3494" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3494', 'SubElement', 'link-104');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3495" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3426', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3427" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3427', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
-<a name="L3276"></a><tt class="py-lineno">3276</tt>  <tt class="py-line"> </tt>
-<a name="L3277"></a><tt class="py-lineno">3277</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3428" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3495', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3496" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3496', 'SubElement', 'link-104');">SubElement</a></tt> </tt>
+<a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line"> </tt>
+<a name="L3317"></a><tt class="py-lineno">3317</tt>  <tt class="py-line">        <tt class="py-name">a</tt> <tt class="py-op">=</tt> <tt id="link-3497" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3428', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3278"></a><tt class="py-lineno">3278</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3429" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3429', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3279"></a><tt class="py-lineno">3279</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3430" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3430', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3280"></a><tt class="py-lineno">3280</tt>  <tt class="py-line"> </tt>
-<a name="L3281"></a><tt class="py-lineno">3281</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3431" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3431', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3432" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3432', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
-<a name="L3282"></a><tt class="py-lineno">3282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3283"></a><tt class="py-lineno">3283</tt>  <tt class="py-line"> </tt>
-<a name="L3284"></a><tt class="py-lineno">3284</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3433" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3433', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3434" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3434', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3285"></a><tt class="py-lineno">3285</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L3286"></a><tt class="py-lineno">3286</tt>  <tt class="py-line"> </tt>
-<a name="L3287"></a><tt class="py-lineno">3287</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3435" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3435', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3436" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3436', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3288"></a><tt class="py-lineno">3288</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3289"></a><tt class="py-lineno">3289</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase.test_pypy_proxy_collect"></a><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-def"><a name="L3290"></a><tt class="py-lineno">3290</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pypy_proxy_collect-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pypy_proxy_collect');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-expanded"><a name="L3291"></a><tt class="py-lineno">3291</tt>  <tt class="py-line">        <tt id="link-3437" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3437', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3438" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3497', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3318"></a><tt class="py-lineno">3318</tt>  <tt class="py-line">        <tt class="py-name">b</tt> <tt class="py-op">=</tt> <tt id="link-3498" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3498', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line">        <tt class="py-name">c</tt> <tt class="py-op">=</tt> <tt id="link-3499" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3499', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt class="py-string">'c'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3320"></a><tt class="py-lineno">3320</tt>  <tt class="py-line"> </tt>
+<a name="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3500" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3500', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3501" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3501', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">)</tt> </tt>
+<a name="L3322"></a><tt class="py-lineno">3322</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line"> </tt>
+<a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3502" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3502', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3503" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3503', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3325"></a><tt class="py-lineno">3325</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;&lt;b/&gt;&lt;c/&gt;&lt;/a&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L3326"></a><tt class="py-lineno">3326</tt>  <tt class="py-line"> </tt>
+<a name="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-3504" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3504', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">a</tt><tt class="py-op">,</tt> <tt id="link-3505" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3505', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-name">_unicode</tt><tt class="py-op">,</tt> <tt class="py-name">pretty_print</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3328"></a><tt class="py-lineno">3328</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt class="py-string">"&lt;a&gt;\n  &lt;b/&gt;\n  &lt;c/&gt;\n&lt;/a&gt;\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_pypy_proxy_collect"></a><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-def"><a name="L3330"></a><tt class="py-lineno">3330</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_pypy_proxy_collect-toggle" onclick="return toggle('ETreeOnlyTestCase.test_pypy_proxy_collect');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_pypy_proxy_collect">test_pypy_proxy_collect</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_pypy_proxy_collect-expanded"><a name="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line">        <tt id="link-3506" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3506', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3507" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3438', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3439" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3507', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3508" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3439', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3292"></a><tt class="py-lineno">3292</tt>  <tt class="py-line">        <tt id="link-3440" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-3508', 'Element', 'link-61');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'parent'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line">        <tt id="link-3509" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3440', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3441" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3441', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3442" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3442', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3293"></a><tt class="py-lineno">3293</tt>  <tt class="py-line"> </tt>
-<a name="L3294"></a><tt class="py-lineno">3294</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3443" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3443', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3295"></a><tt class="py-lineno">3295</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3444" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3444', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3445" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3509', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3510" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-3510', 'SubElement', 'link-104');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-3511" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3511', 'root', 'link-212');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3333"></a><tt class="py-lineno">3333</tt>  <tt class="py-line"> </tt>
+<a name="L3334"></a><tt class="py-lineno">3334</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3512" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3512', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3335"></a><tt class="py-lineno">3335</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3513" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3513', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3514" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3445', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3296"></a><tt class="py-lineno">3296</tt>  <tt class="py-line"> </tt>
-<a name="L3297"></a><tt class="py-lineno">3297</tt>  <tt class="py-line">        <tt class="py-comment"># in PyPy, GC used to kill the Python proxy instance without cleanup</tt> </tt>
-<a name="L3298"></a><tt class="py-lineno">3298</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3299"></a><tt class="py-lineno">3299</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3446" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3446', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3300"></a><tt class="py-lineno">3300</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3447" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3447', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3448" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3514', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line"> </tt>
+<a name="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line">        <tt class="py-comment"># in PyPy, GC used to kill the Python proxy instance without cleanup</tt> </tt>
+<a name="L3338"></a><tt class="py-lineno">3338</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3339"></a><tt class="py-lineno">3339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-3515" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3515', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3340"></a><tt class="py-lineno">3340</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3516" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3516', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3448', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3301"></a><tt class="py-lineno">3301</tt>  <tt class="py-line"> </tt>
-<a name="L3302"></a><tt class="py-lineno">3302</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
-<a name="L3303"></a><tt class="py-lineno">3303</tt>  <tt class="py-line"> </tt>
-<a name="ETreeOnlyTestCase._writeElement"></a><div id="ETreeOnlyTestCase._writeElement-def"><a name="L3304"></a><tt class="py-lineno">3304</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._writeElement-toggle" onclick="return toggle('ETreeOnlyTestCase._writeElement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">,</tt> <tt class="py-param">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeOnlyTestCase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._writeElement-expanded"><a name="L3305"></a><tt class="py-lineno">3305</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
-<a name="L3306"></a><tt class="py-lineno">3306</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3307"></a><tt class="py-lineno">3307</tt>  <tt class="py-line">        <tt id="link-3449" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3517', 'tag', 'link-65');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'child'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3341"></a><tt class="py-lineno">3341</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase.test_element_refcycle"></a><div id="ETreeOnlyTestCase.test_element_refcycle-def"><a name="L3342"></a><tt class="py-lineno">3342</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase.test_element_refcycle-toggle" onclick="return toggle('ETreeOnlyTestCase.test_element_refcycle');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#test_element_refcycle">test_element_refcycle</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase.test_element_refcycle-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase.test_element_refcycle-expanded"><a name="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">ElementBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L3345"></a><tt class="py-lineno">3345</tt>  <tt class="py-line"> </tt>
+<a name="L3346"></a><tt class="py-lineno">3346</tt>  <tt class="py-line">        <tt class="py-name">el1</tt> <tt class="py-op">=</tt> <tt class="py-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">        <tt class="py-name">el2</tt> <tt class="py-op">=</tt> <tt class="py-name">SubEl</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'SubEl'</tt><tt class="py-op">,</tt> <tt class="py-name">el1</tt><tt class="py-op">.</tt><tt id="link-3518" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3518', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'SubEl'</tt><tt class="py-op">,</tt> <tt class="py-name">el2</tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.etree._Element.tag
+lxml.etree._Entity.tag
+lxml.etree._ProcessingInstruction.tag
+lxml.tests.test_xpathevaluator.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3519', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3350"></a><tt class="py-lineno">3350</tt>  <tt class="py-line">        <tt class="py-name">el1</tt><tt class="py-op">.</tt><tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">el2</tt> </tt>
+<a name="L3351"></a><tt class="py-lineno">3351</tt>  <tt class="py-line">        <tt class="py-name">el2</tt><tt class="py-op">.</tt><tt class="py-name">other</tt> <tt class="py-op">=</tt> <tt class="py-name">el1</tt> </tt>
+<a name="L3352"></a><tt class="py-lineno">3352</tt>  <tt class="py-line"> </tt>
+<a name="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">el1</tt><tt class="py-op">,</tt> <tt class="py-name">el2</tt> </tt>
+<a name="L3354"></a><tt class="py-lineno">3354</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line">        <tt class="py-comment"># not really testing anything here, but it shouldn't crash</tt> </tt>
+<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line"> </tt>
+<a name="L3357"></a><tt class="py-lineno">3357</tt>  <tt class="py-line">    <tt class="py-comment"># helper methods</tt> </tt>
+<a name="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line"> </tt>
+<a name="ETreeOnlyTestCase._writeElement"></a><div id="ETreeOnlyTestCase._writeElement-def"><a name="L3359"></a><tt class="py-lineno">3359</tt> <a class="py-toggle" href="#" id="ETreeOnlyTestCase._writeElement-toggle" onclick="return toggle('ETreeOnlyTestCase._writeElement');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeOnlyTestCase-class.html#_writeElement">_writeElement</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-string">'us-ascii'</tt><tt class="py-op">,</tt> <tt class="py-param">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeOnlyTestCase._writeElement-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeOnlyTestCase._writeElement-expanded"><a name="L3360"></a><tt class="py-lineno">3360</tt>  <tt class="py-line">        <tt class="py-docstring">"""Write out element for comparison.</tt> </tt>
+<a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt id="link-3520" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3449', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3450" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3520', 'ElementTree', 'link-460');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3521" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3450', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3451" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3521', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3522" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3451', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
-<a name="L3308"></a><tt class="py-lineno">3308</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3309"></a><tt class="py-lineno">3309</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3452" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3522', 'ElementTree', 'link-460');">ElementTree</a></tt> </tt>
+<a name="L3363"></a><tt class="py-lineno">3363</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3523" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3452', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
-<a name="L3310"></a><tt class="py-lineno">3310</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3453" class="py-name" targets="Method lxml.etree._ElementTree.write()=lxml.etree._ElementTree-class.html#write"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3453', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3454" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3454', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3455" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3455', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-name">compression</tt><tt class="py-op">)</tt> </tt>
-<a name="L3311"></a><tt class="py-lineno">3311</tt>  <tt class="py-line">        <tt id="link-3456" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3456', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3312"></a><tt class="py-lineno">3312</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">compression</tt><tt class="py-op">:</tt> </tt>
-<a name="L3313"></a><tt class="py-lineno">3313</tt>  <tt class="py-line">            <tt id="link-3457" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3457', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt id="link-3458" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3458', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3314"></a><tt class="py-lineno">3314</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3459" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3459', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3460" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3460', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3315"></a><tt class="py-lineno">3315</tt>  <tt class="py-line"> </tt>
-<a name="L3316"></a><tt class="py-lineno">3316</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase"></a><div id="_XIncludeTestCase-def"><a name="L3317"></a><tt class="py-lineno">3317</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase-toggle" onclick="return toggle('_XIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_XIncludeTestCase-expanded"><a name="_XIncludeTestCase.test_xinclude_text"></a><div id="_XIncludeTestCase.test_xinclude_text-def"><a name="L3318"></a><tt class="py-lineno">3318</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_text-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_text-expanded"><a name="L3319"></a><tt class="py-lineno">3319</tt>  <tt class="py-line">        <tt id="link-3461" class="py-name" targets="Variable lxml.etree._LogEntry.filename=lxml.etree._LogEntry-class.html#filename"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3461', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-3462" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3462', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3320"></a><tt class="py-lineno">3320</tt>  <tt class="py-line">        <tt id="link-3463" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3463', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3464" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3464', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3465" class="py-name"><a title="lxml.etree.XML
-lxml.objectify.XML
-lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3465', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3466" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3466', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L3321"></a><tt class="py-lineno">3321</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
-<a name="L3322"></a><tt class="py-lineno">3322</tt>  <tt class="py-line"><tt class="py-string">          &lt;xi:include href="%s" parse="text"/&gt;</tt> </tt>
-<a name="L3323"></a><tt class="py-lineno">3323</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
-<a name="L3324"></a><tt class="py-lineno">3324</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> <tt class="py-op">%</tt> <tt id="link-3467" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3467', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3325"></a><tt class="py-lineno">3325</tt>  <tt class="py-line">        <tt class="py-name">old_text</tt> <tt class="py-op">=</tt> <tt id="link-3468" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3468', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3469" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3523', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">=</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
+<a name="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3524" class="py-name" targets="Method lxml.etree._ElementTree.write()=lxml.etree._ElementTree-class.html#write"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3524', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-3525" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3525', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">=</tt><tt id="link-3526" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-3526', 'encoding', 'link-902');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-name">compression</tt><tt class="py-op">)</tt> </tt>
+<a name="L3366"></a><tt class="py-lineno">3366</tt>  <tt class="py-line">        <tt id="link-3527" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3527', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">compression</tt><tt class="py-op">:</tt> </tt>
+<a name="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line">            <tt id="link-3528" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3528', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">zlib</tt><tt class="py-op">.</tt><tt class="py-name">decompress</tt><tt class="py-op">(</tt><tt id="link-3529" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3529', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3369"></a><tt class="py-lineno">3369</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-3530" class="py-name"><a title="lxml.tests.common_imports.canonicalize" class="py-name" href="#" onclick="return doclink('link-3530', 'canonicalize', 'link-19');">canonicalize</a></tt><tt class="py-op">(</tt><tt id="link-3531" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3531', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line"> </tt>
+<a name="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase"></a><div id="_XIncludeTestCase-def"><a name="L3372"></a><tt class="py-lineno">3372</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase-toggle" onclick="return toggle('_XIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html">_XIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_XIncludeTestCase-expanded"><a name="_XIncludeTestCase.test_xinclude_text"></a><div id="_XIncludeTestCase.test_xinclude_text-def"><a name="L3373"></a><tt class="py-lineno">3373</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_text-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_text">test_xinclude_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_text-expanded"><a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">        <tt id="link-3532" class="py-name" targets="Variable lxml.etree._LogEntry.filename=lxml.etree._LogEntry-class.html#filename"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3532', 'filename', 'link-3532');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-3533" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3533', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test_broken.xml'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3375"></a><tt class="py-lineno">3375</tt>  <tt class="py-line">        <tt id="link-3534" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3534', 'root', 'link-212');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-3535" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3535', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3536" class="py-name"><a title="lxml.etree.XML
+lxml.objectify.XML
+lxml.tests.test_objectify.ObjectifyTestCase.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-3536', 'XML', 'link-209');">XML</a></tt><tt class="py-op">(</tt><tt id="link-3537" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3537', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L3376"></a><tt class="py-lineno">3376</tt>  <tt class="py-line"><tt class="py-string">        &lt;doc xmlns:xi="http://www.w3.org/2001/XInclude"&gt;</tt> </tt>
+<a name="L3377"></a><tt class="py-lineno">3377</tt>  <tt class="py-line"><tt class="py-string">          &lt;xi:include href="%s" parse="text"/&gt;</tt> </tt>
+<a name="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line"><tt class="py-string">        &lt;/doc&gt;</tt> </tt>
+<a name="L3379"></a><tt class="py-lineno">3379</tt>  <tt class="py-line"><tt class="py-string">        '''</tt> <tt class="py-op">%</tt> <tt id="link-3538" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3538', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line">        <tt class="py-name">old_text</tt> <tt class="py-op">=</tt> <tt id="link-3539" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3539', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3540" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3469', 'text', 'link-186');">text</a></tt> </tt>
-<a name="L3326"></a><tt class="py-lineno">3326</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-3470" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3470', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3471" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3471', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3327"></a><tt class="py-lineno">3327</tt>  <tt class="py-line">        <tt class="py-name">old_tail</tt> <tt class="py-op">=</tt> <tt id="link-3472" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3472', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3473" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3473', 'tail', 'link-842');">tail</a></tt> </tt>
-<a name="L3328"></a><tt class="py-lineno">3328</tt>  <tt class="py-line"> </tt>
-<a name="L3329"></a><tt class="py-lineno">3329</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3474" class="py-name" targets="Function lxml.ElementInclude.include()=lxml.ElementInclude-module.html#include,Method lxml.tests.test_etree.ETreeXIncludeTestCase.include()=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include,Method lxml.tests.test_etree.ElementIncludeTestCase.include()=lxml.tests.test_etree.ElementIncludeTestCase-class.html#include"><a title="lxml.ElementInclude.include
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3540', 'text', 'link-186');">text</a></tt> </tt>
+<a name="L3381"></a><tt class="py-lineno">3381</tt>  <tt class="py-line">        <tt class="py-name">content</tt> <tt class="py-op">=</tt> <tt id="link-3541" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3541', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3542" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3542', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3382"></a><tt class="py-lineno">3382</tt>  <tt class="py-line">        <tt class="py-name">old_tail</tt> <tt class="py-op">=</tt> <tt id="link-3543" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3543', 'root', 'link-212');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3544" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-3544', 'tail', 'link-842');">tail</a></tt> </tt>
+<a name="L3383"></a><tt class="py-lineno">3383</tt>  <tt class="py-line"> </tt>
+<a name="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3545" class="py-name" targets="Function lxml.ElementInclude.include()=lxml.ElementInclude-module.html#include,Method lxml.tests.test_etree.ETreeXIncludeTestCase.include()=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include,Method lxml.tests.test_etree.ElementIncludeTestCase.include()=lxml.tests.test_etree.ElementIncludeTestCase-class.html#include"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3474', 'include', 'link-3474');">include</a></tt><tt class="py-op">(</tt> <tt id="link-3475" class="py-name"><a title="lxml.etree
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3545', 'include', 'link-3545');">include</a></tt><tt class="py-op">(</tt> <tt id="link-3546" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3475', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3476" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3546', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3547" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3476', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3477" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3477', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3330"></a><tt class="py-lineno">3330</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">old_text</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> <tt class="py-op">+</tt> <tt class="py-name">old_tail</tt><tt class="py-op">,</tt> </tt>
-<a name="L3331"></a><tt class="py-lineno">3331</tt>  <tt class="py-line">                          <tt id="link-3478" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3478', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3479" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-3547', 'ElementTree', 'link-460');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-3548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3548', 'root', 'link-212');">root</a></tt><tt class="py-op">)</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3385"></a><tt class="py-lineno">3385</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">old_text</tt> <tt class="py-op">+</tt> <tt class="py-name">content</tt> <tt class="py-op">+</tt> <tt class="py-name">old_tail</tt><tt class="py-op">,</tt> </tt>
+<a name="L3386"></a><tt class="py-lineno">3386</tt>  <tt class="py-line">                          <tt id="link-3549" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-3549', 'root', 'link-212');">root</a></tt><tt class="py-op">.</tt><tt id="link-3550" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3479', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3332"></a><tt class="py-lineno">3332</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude"></a><div id="_XIncludeTestCase.test_xinclude-def"><a name="L3333"></a><tt class="py-lineno">3333</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude-expanded"><a name="L3334"></a><tt class="py-lineno">3334</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3480" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-3550', 'text', 'link-186');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3387"></a><tt class="py-lineno">3387</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude"></a><div id="_XIncludeTestCase.test_xinclude-def"><a name="L3388"></a><tt class="py-lineno">3388</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude">test_xinclude</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude-expanded"><a name="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3551" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3480', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3481" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3551', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3552" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3481', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3482" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3482', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3335"></a><tt class="py-lineno">3335</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3336"></a><tt class="py-lineno">3336</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3337"></a><tt class="py-lineno">3337</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3483" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3483', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3484" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3552', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3553" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3553', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3554" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3554', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3555" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3484', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3338"></a><tt class="py-lineno">3338</tt>  <tt class="py-line">        <tt class="py-comment"># process xincludes</tt> </tt>
-<a name="L3339"></a><tt class="py-lineno">3339</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3485" class="py-name"><a title="lxml.ElementInclude.include
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3555', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3393"></a><tt class="py-lineno">3393</tt>  <tt class="py-line">        <tt class="py-comment"># process xincludes</tt> </tt>
+<a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3556" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3485', 'include', 'link-3474');">include</a></tt><tt class="py-op">(</tt> <tt class="py-name">tree</tt> <tt class="py-op">)</tt> </tt>
-<a name="L3340"></a><tt class="py-lineno">3340</tt>  <tt class="py-line">        <tt class="py-comment"># check whether we find it replaced with included data</tt> </tt>
-<a name="L3341"></a><tt class="py-lineno">3341</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3342"></a><tt class="py-lineno">3342</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
-<a name="L3343"></a><tt class="py-lineno">3343</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3486" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3486', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3487" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3556', 'include', 'link-3545');">include</a></tt><tt class="py-op">(</tt> <tt class="py-name">tree</tt> <tt class="py-op">)</tt> </tt>
+<a name="L3395"></a><tt class="py-lineno">3395</tt>  <tt class="py-line">        <tt class="py-comment"># check whether we find it replaced with included data</tt> </tt>
+<a name="L3396"></a><tt class="py-lineno">3396</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3397"></a><tt class="py-lineno">3397</tt>  <tt class="py-line">            <tt class="py-string">'a'</tt><tt class="py-op">,</tt> </tt>
+<a name="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3557" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3557', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-3558" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3487', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3344"></a><tt class="py-lineno">3344</tt>  <tt class="py-line"> </tt>
-<a name="_XIncludeTestCase.test_xinclude_resolver"></a><div id="_XIncludeTestCase.test_xinclude_resolver-def"><a name="L3345"></a><tt class="py-lineno">3345</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_resolver-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_resolver');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_XIncludeTestCase.test_xinclude_resolver-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_resolver-expanded"><a name="L3346"></a><tt class="py-lineno">3346</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">res</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3347"></a><tt class="py-lineno">3347</tt>  <tt class="py-line">            <tt class="py-name">include_text</tt> <tt class="py-op">=</tt> <tt id="link-3488" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3488', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3489" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3489', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3348"></a><tt class="py-lineno">3348</tt>  <tt class="py-line">            <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L3349"></a><tt class="py-lineno">3349</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3350"></a><tt class="py-lineno">3350</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">".dtd"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3351"></a><tt class="py-lineno">3351</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"dtd"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3352"></a><tt class="py-lineno">3352</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3490" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-3490', 'resolve_filename', 'link-1244');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3353"></a><tt class="py-lineno">3353</tt>  <tt class="py-line">                        <tt id="link-3491" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3491', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-<a name="L3354"></a><tt class="py-lineno">3354</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">"test_xinclude.xml"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3355"></a><tt class="py-lineno">3355</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"input"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3356"></a><tt class="py-lineno">3356</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> <tt class="py-comment"># delegate to default resolver</tt> </tt>
-<a name="L3357"></a><tt class="py-lineno">3357</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L3358"></a><tt class="py-lineno">3358</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"include"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L3359"></a><tt class="py-lineno">3359</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3492" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-3492', 'resolve_string', 'link-1183');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">include_text</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3360"></a><tt class="py-lineno">3360</tt>  <tt class="py-line"> </tt>
-<a name="L3361"></a><tt class="py-lineno">3361</tt>  <tt class="py-line">        <tt class="py-name">res_instance</tt> <tt class="py-op">=</tt> <tt class="py-name">res</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3362"></a><tt class="py-lineno">3362</tt>  <tt class="py-line">        <tt id="link-3493" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3493', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3494" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3494', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3495" class="py-name"><a title="lxml.etree.XMLParser
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-3558', 'tag', 'link-65');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3399"></a><tt class="py-lineno">3399</tt>  <tt class="py-line"> </tt>
+<a name="_XIncludeTestCase.test_xinclude_resolver"></a><div id="_XIncludeTestCase.test_xinclude_resolver-def"><a name="L3400"></a><tt class="py-lineno">3400</tt> <a class="py-toggle" href="#" id="_XIncludeTestCase.test_xinclude_resolver-toggle" onclick="return toggle('_XIncludeTestCase.test_xinclude_resolver');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree._XIncludeTestCase-class.html#test_xinclude_resolver">test_xinclude_resolver</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_XIncludeTestCase.test_xinclude_resolver-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_XIncludeTestCase.test_xinclude_resolver-expanded"><a name="L3401"></a><tt class="py-lineno">3401</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">res</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">Resolver</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line">            <tt class="py-name">include_text</tt> <tt class="py-op">=</tt> <tt id="link-3559" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3559', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3560" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3560', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.xml'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3403"></a><tt class="py-lineno">3403</tt>  <tt class="py-line">            <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L3404"></a><tt class="py-lineno">3404</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">resolve</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">url</tt><tt class="py-op">,</tt> <tt class="py-param">id</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3405"></a><tt class="py-lineno">3405</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">".dtd"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3406"></a><tt class="py-lineno">3406</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"dtd"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3561" class="py-name"><a title="lxml.etree.Resolver.resolve_filename" class="py-name" href="#" onclick="return doclink('link-3561', 'resolve_filename', 'link-1244');">resolve_filename</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3408"></a><tt class="py-lineno">3408</tt>  <tt class="py-line">                        <tt id="link-3562" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3562', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'test.dtd'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+<a name="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">url</tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">"test_xinclude.xml"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"input"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3411"></a><tt class="py-lineno">3411</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">None</tt> <tt class="py-comment"># delegate to default resolver</tt> </tt>
+<a name="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L3413"></a><tt class="py-lineno">3413</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">[</tt><tt class="py-string">"include"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L3414"></a><tt class="py-lineno">3414</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3563" class="py-name"><a title="lxml.etree.Resolver.resolve_string" class="py-name" href="#" onclick="return doclink('link-3563', 'resolve_string', 'link-1183');">resolve_string</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">include_text</tt><tt class="py-op">,</tt> <tt class="py-name">context</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line"> </tt>
+<a name="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line">        <tt class="py-name">res_instance</tt> <tt class="py-op">=</tt> <tt class="py-name">res</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3417"></a><tt class="py-lineno">3417</tt>  <tt class="py-line">        <tt id="link-3564" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3564', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3565" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3565', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3566" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3495', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">load_dtd</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3363"></a><tt class="py-lineno">3363</tt>  <tt class="py-line">        <tt id="link-3496" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3496', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-3497" class="py-name"><a title="lxml.html.CheckboxValues.add
-lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-3497', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
-<a name="L3364"></a><tt class="py-lineno">3364</tt>  <tt class="py-line"> </tt>
-<a name="L3365"></a><tt class="py-lineno">3365</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3498" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-3566', 'XMLParser', 'link-735');">XMLParser</a></tt><tt class="py-op">(</tt><tt class="py-name">load_dtd</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3418"></a><tt class="py-lineno">3418</tt>  <tt class="py-line">        <tt id="link-3567" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3567', 'parser', 'link-740');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">resolvers</tt><tt class="py-op">.</tt><tt id="link-3568" class="py-name"><a title="lxml.html.CheckboxValues.add
+lxml.html.MultipleSelectOptions.add" class="py-name" href="#" onclick="return doclink('link-3568', 'add', 'link-1186');">add</a></tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">)</tt> </tt>
+<a name="L3419"></a><tt class="py-lineno">3419</tt>  <tt class="py-line"> </tt>
+<a name="L3420"></a><tt class="py-lineno">3420</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-3569" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3498', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3499" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3569', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3570" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3499', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3500" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3500', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3366"></a><tt class="py-lineno">3366</tt>  <tt class="py-line">                           <tt id="link-3501" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3501', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3502" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3502', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3367"></a><tt class="py-lineno">3367</tt>  <tt class="py-line"> </tt>
-<a name="L3368"></a><tt class="py-lineno">3368</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3503" class="py-name"><a title="lxml.ElementInclude.include
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3570', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3571" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-3571', 'fileInTestDir', 'link-12');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">'include/test_xinclude.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3421"></a><tt class="py-lineno">3421</tt>  <tt class="py-line">                           <tt id="link-3572" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3572', 'parser', 'link-740');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-3573" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-3573', 'parser', 'link-740');">parser</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line"> </tt>
+<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3574" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3503', 'include', 'link-3474');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L3369"></a><tt class="py-lineno">3369</tt>  <tt class="py-line"> </tt>
-<a name="L3370"></a><tt class="py-lineno">3370</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-3504" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3574', 'include', 'link-3545');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line"> </tt>
+<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">        <tt class="py-name">called</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">res_instance</tt><tt class="py-op">.</tt><tt class="py-name">called</tt><tt class="py-op">.</tt><tt id="link-3575" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3504', 'items', 'link-2171');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3371"></a><tt class="py-lineno">3371</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3372"></a><tt class="py-lineno">3372</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L3373"></a><tt class="py-lineno">3373</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"dtd"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"include"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"input"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
-<a name="L3374"></a><tt class="py-lineno">3374</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3375"></a><tt class="py-lineno">3375</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXIncludeTestCase"></a><div id="ETreeXIncludeTestCase-def"><a name="L3376"></a><tt class="py-lineno">3376</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase-toggle" onclick="return toggle('ETreeXIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html">ETreeXIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXIncludeTestCase-expanded"><a name="ETreeXIncludeTestCase.include"></a><div id="ETreeXIncludeTestCase.include-def"><a name="L3377"></a><tt class="py-lineno">3377</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase.include-toggle" onclick="return toggle('ETreeXIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXIncludeTestCase.include-expanded"><a name="L3378"></a><tt class="py-lineno">3378</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3505" class="py-name" targets="Method lxml.etree._ElementTree.xinclude()=lxml.etree._ElementTree-class.html#xinclude"><a title="lxml.etree._ElementTree.xinclude" class="py-name" href="#" onclick="return doclink('link-3505', 'xinclude', 'link-3505');">xinclude</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3379"></a><tt class="py-lineno">3379</tt>  <tt class="py-line"> </tt>
-<a name="L3380"></a><tt class="py-lineno">3380</tt>  <tt class="py-line"> </tt>
-<a name="ElementIncludeTestCase"></a><div id="ElementIncludeTestCase-def"><a name="L3381"></a><tt class="py-lineno">3381</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase-toggle" onclick="return toggle('ElementIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ElementIncludeTestCase-expanded"><a name="L3382"></a><tt class="py-lineno">3382</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-3506" class="py-name" targets="Package lxml=lxml-module.html"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-3506', 'lxml', 'link-3506');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3507" class="py-name" targets="Module lxml.ElementInclude=lxml.ElementInclude-module.html"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3507', 'ElementInclude', 'link-3507');">ElementInclude</a></tt> </tt>
-<a name="ElementIncludeTestCase.include"></a><div id="ElementIncludeTestCase.include-def"><a name="L3383"></a><tt class="py-lineno">3383</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.include-toggle" onclick="return toggle('ElementIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.include-expanded"><a name="L3384"></a><tt class="py-lineno">3384</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3508" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3508', 'ElementInclude', 'link-3507');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-3509" class="py-name"><a title="lxml.ElementInclude.include
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-3575', 'items', 'link-2240');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3426"></a><tt class="py-lineno">3426</tt>  <tt class="py-line">        <tt class="py-name">called</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt class="py-op">(</tt><tt class="py-string">"dtd"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"include"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt class="py-string">"input"</tt><tt class="py-op">,</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> </tt>
+<a name="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line">            <tt class="py-name">called</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXIncludeTestCase"></a><div id="ETreeXIncludeTestCase-def"><a name="L3431"></a><tt class="py-lineno">3431</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase-toggle" onclick="return toggle('ETreeXIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html">ETreeXIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXIncludeTestCase-expanded"><a name="ETreeXIncludeTestCase.include"></a><div id="ETreeXIncludeTestCase.include-def"><a name="L3432"></a><tt class="py-lineno">3432</tt> <a class="py-toggle" href="#" id="ETreeXIncludeTestCase.include-toggle" onclick="return toggle('ETreeXIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeXIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXIncludeTestCase.include-expanded"><a name="L3433"></a><tt class="py-lineno">3433</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3576" class="py-name" targets="Method lxml.etree._ElementTree.xinclude()=lxml.etree._ElementTree-class.html#xinclude"><a title="lxml.etree._ElementTree.xinclude" class="py-name" href="#" onclick="return doclink('link-3576', 'xinclude', 'link-3576');">xinclude</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3434"></a><tt class="py-lineno">3434</tt>  <tt class="py-line"> </tt>
+<a name="L3435"></a><tt class="py-lineno">3435</tt>  <tt class="py-line"> </tt>
+<a name="ElementIncludeTestCase"></a><div id="ElementIncludeTestCase-def"><a name="L3436"></a><tt class="py-lineno">3436</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase-toggle" onclick="return toggle('ElementIncludeTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html">ElementIncludeTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_XIncludeTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementIncludeTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ElementIncludeTestCase-expanded"><a name="L3437"></a><tt class="py-lineno">3437</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt id="link-3577" class="py-name" targets="Package lxml=lxml-module.html"><a title="lxml" class="py-name" href="#" onclick="return doclink('link-3577', 'lxml', 'link-3577');">lxml</a></tt> <tt class="py-keyword">import</tt> <tt id="link-3578" class="py-name" targets="Module lxml.ElementInclude=lxml.ElementInclude-module.html"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3578', 'ElementInclude', 'link-3578');">ElementInclude</a></tt> </tt>
+<a name="ElementIncludeTestCase.include"></a><div id="ElementIncludeTestCase.include-def"><a name="L3438"></a><tt class="py-lineno">3438</tt> <a class="py-toggle" href="#" id="ElementIncludeTestCase.include-toggle" onclick="return toggle('ElementIncludeTestCase.include');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ElementIncludeTestCase-class.html#include">include</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tree</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementIncludeTestCase.include-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ElementIncludeTestCase.include-expanded"><a name="L3439"></a><tt class="py-lineno">3439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3579" class="py-name"><a title="lxml.ElementInclude" class="py-name" href="#" onclick="return doclink('link-3579', 'ElementInclude', 'link-3578');">ElementInclude</a></tt><tt class="py-op">.</tt><tt id="link-3580" class="py-name"><a title="lxml.ElementInclude.include
 lxml.tests.test_etree.ETreeXIncludeTestCase.include
-lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3509', 'include', 'link-3474');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3510" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3510', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3385"></a><tt class="py-lineno">3385</tt>  <tt class="py-line"> </tt>
-<a name="L3386"></a><tt class="py-lineno">3386</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase"></a><div id="ETreeC14NTestCase-def"><a name="L3387"></a><tt class="py-lineno">3387</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase-toggle" onclick="return toggle('ETreeC14NTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeC14NTestCase-expanded"><a name="ETreeC14NTestCase.test_c14n"></a><div id="ETreeC14NTestCase.test_c14n-def"><a name="L3388"></a><tt class="py-lineno">3388</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n-expanded"><a name="L3389"></a><tt class="py-lineno">3389</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3511" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_etree.ElementIncludeTestCase.include" class="py-name" href="#" onclick="return doclink('link-3580', 'include', 'link-3545');">include</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3581" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3581', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line"> </tt>
+<a name="L3441"></a><tt class="py-lineno">3441</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase"></a><div id="ETreeC14NTestCase-def"><a name="L3442"></a><tt class="py-lineno">3442</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase-toggle" onclick="return toggle('ETreeC14NTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html">ETreeC14NTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeC14NTestCase-expanded"><a name="ETreeC14NTestCase.test_c14n"></a><div id="ETreeC14NTestCase.test_c14n-def"><a name="L3443"></a><tt class="py-lineno">3443</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n">test_c14n</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n-expanded"><a name="L3444"></a><tt class="py-lineno">3444</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3582" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3511', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3512" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3512', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3390"></a><tt class="py-lineno">3390</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3391"></a><tt class="py-lineno">3391</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3513" class="py-name" targets="Method lxml.etree._ElementTree.write_c14n()=lxml.etree._ElementTree-class.html#write_c14n"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3513', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3392"></a><tt class="py-lineno">3392</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3393"></a><tt class="py-lineno">3393</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3514" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3514', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3394"></a><tt class="py-lineno">3394</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3395"></a><tt class="py-lineno">3395</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_gzip"></a><div id="ETreeC14NTestCase.test_c14n_gzip-def"><a name="L3396"></a><tt class="py-lineno">3396</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_gzip-expanded"><a name="L3397"></a><tt class="py-lineno">3397</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3515" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3582', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3583" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3583', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3584" class="py-name" targets="Method lxml.etree._ElementTree.write_c14n()=lxml.etree._ElementTree-class.html#write_c14n"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3584', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3585" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3585', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_gzip"></a><div id="ETreeC14NTestCase.test_c14n_gzip-def"><a name="L3451"></a><tt class="py-lineno">3451</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_gzip">test_c14n_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_gzip-expanded"><a name="L3452"></a><tt class="py-lineno">3452</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3586" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3515', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3516" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3516', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3398"></a><tt class="py-lineno">3398</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3399"></a><tt class="py-lineno">3399</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3517" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3517', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3400"></a><tt class="py-lineno">3400</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3401"></a><tt class="py-lineno">3401</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3402"></a><tt class="py-lineno">3402</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3518" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3518', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3403"></a><tt class="py-lineno">3403</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3404"></a><tt class="py-lineno">3404</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3519" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3519', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3405"></a><tt class="py-lineno">3405</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3520" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3520', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3406"></a><tt class="py-lineno">3406</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3407"></a><tt class="py-lineno">3407</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_file"></a><div id="ETreeC14NTestCase.test_c14n_file-def"><a name="L3408"></a><tt class="py-lineno">3408</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file-expanded"><a name="L3409"></a><tt class="py-lineno">3409</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3521" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3586', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3587" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3587', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3454"></a><tt class="py-lineno">3454</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3588" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3588', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3455"></a><tt class="py-lineno">3455</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3457"></a><tt class="py-lineno">3457</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3589" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3589', 'read', 'link-3589');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3458"></a><tt class="py-lineno">3458</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3590" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3590', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3460"></a><tt class="py-lineno">3460</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3591" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3591', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3462"></a><tt class="py-lineno">3462</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_file"></a><div id="ETreeC14NTestCase.test_c14n_file-def"><a name="L3463"></a><tt class="py-lineno">3463</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file">test_c14n_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file-expanded"><a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3592" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3521', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3522" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3522', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3410"></a><tt class="py-lineno">3410</tt>  <tt class="py-line">        <tt id="link-3523" class="py-name" targets="Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3592', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3593" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3593', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line">        <tt id="link-3594" class="py-name" targets="Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3523', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3524" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3524', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3411"></a><tt class="py-lineno">3411</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3412"></a><tt class="py-lineno">3412</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3525" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3525', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3526" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3526', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3413"></a><tt class="py-lineno">3413</tt>  <tt class="py-line">            <tt id="link-3527" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3527', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3528" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3528', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3529" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3529', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3414"></a><tt class="py-lineno">3414</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3415"></a><tt class="py-lineno">3415</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3530" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3530', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3531" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3594', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3595" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3595', 'filename', 'link-3532');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3466"></a><tt class="py-lineno">3466</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3467"></a><tt class="py-lineno">3467</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3596" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3596', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3597" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3597', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3468"></a><tt class="py-lineno">3468</tt>  <tt class="py-line">            <tt id="link-3598" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3598', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3599" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3599', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3600" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3600', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3470"></a><tt class="py-lineno">3470</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3601" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3601', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3602" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3531', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3416"></a><tt class="py-lineno">3416</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3532" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3602', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3471"></a><tt class="py-lineno">3471</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3603" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3532', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3533" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3533', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3417"></a><tt class="py-lineno">3417</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3534" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3534', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3418"></a><tt class="py-lineno">3418</tt>  <tt class="py-line">                          <tt id="link-3535" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3535', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3419"></a><tt class="py-lineno">3419</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n_file_gzip-def"><a name="L3420"></a><tt class="py-lineno">3420</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file_gzip-expanded"><a name="L3421"></a><tt class="py-lineno">3421</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3536" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3603', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3604" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3604', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3472"></a><tt class="py-lineno">3472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3605" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3605', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3473"></a><tt class="py-lineno">3473</tt>  <tt class="py-line">                          <tt id="link-3606" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3606', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_file_gzip"></a><div id="ETreeC14NTestCase.test_c14n_file_gzip-def"><a name="L3475"></a><tt class="py-lineno">3475</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_file_gzip-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_file_gzip">test_c14n_file_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_file_gzip-expanded"><a name="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3607" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3536', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3537" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3537', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3422"></a><tt class="py-lineno">3422</tt>  <tt class="py-line">        <tt id="link-3538" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3607', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3608" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3608', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line">        <tt id="link-3609" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3538', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3539" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3539', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3423"></a><tt class="py-lineno">3423</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3424"></a><tt class="py-lineno">3424</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3540" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3540', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3541" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3541', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3425"></a><tt class="py-lineno">3425</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3542" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3542', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3426"></a><tt class="py-lineno">3426</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3427"></a><tt class="py-lineno">3427</tt>  <tt class="py-line">                <tt id="link-3543" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3543', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3544" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3544', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3428"></a><tt class="py-lineno">3428</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3429"></a><tt class="py-lineno">3429</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3545" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3545', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3430"></a><tt class="py-lineno">3430</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3431"></a><tt class="py-lineno">3431</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3546" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3546', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3547" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3609', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3610" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3610', 'filename', 'link-3532');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3478"></a><tt class="py-lineno">3478</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3479"></a><tt class="py-lineno">3479</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3611" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3611', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt id="link-3612" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3612', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3613" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3613', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3481"></a><tt class="py-lineno">3481</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">                <tt id="link-3614" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3614', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3615" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3615', 'read', 'link-3589');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3483"></a><tt class="py-lineno">3483</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3616" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3616', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3486"></a><tt class="py-lineno">3486</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3617" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3617', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3618" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3547', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3432"></a><tt class="py-lineno">3432</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3548" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3618', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3487"></a><tt class="py-lineno">3487</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3619" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3548', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3549" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3549', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3433"></a><tt class="py-lineno">3433</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3550" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3550', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3434"></a><tt class="py-lineno">3434</tt>  <tt class="py-line">                          <tt id="link-3551" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3551', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3435"></a><tt class="py-lineno">3435</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_with_comments-def"><a name="L3436"></a><tt class="py-lineno">3436</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_with_comments-expanded"><a name="L3437"></a><tt class="py-lineno">3437</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3552" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3619', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3620" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3620', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3621" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3621', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b&gt;&lt;/b&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3489"></a><tt class="py-lineno">3489</tt>  <tt class="py-line">                          <tt id="link-3622" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3622', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3490"></a><tt class="py-lineno">3490</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_with_comments-def"><a name="L3491"></a><tt class="py-lineno">3491</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_with_comments">test_c14n_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_with_comments-expanded"><a name="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3623" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3552', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3553" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3553', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3438"></a><tt class="py-lineno">3438</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3439"></a><tt class="py-lineno">3439</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3554" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3554', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3440"></a><tt class="py-lineno">3440</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3441"></a><tt class="py-lineno">3441</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3555" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3555', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3442"></a><tt class="py-lineno">3442</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3443"></a><tt class="py-lineno">3443</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3444"></a><tt class="py-lineno">3444</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3556" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3556', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3445"></a><tt class="py-lineno">3445</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3446"></a><tt class="py-lineno">3446</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3557" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3557', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3447"></a><tt class="py-lineno">3447</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3448"></a><tt class="py-lineno">3448</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3449"></a><tt class="py-lineno">3449</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3558" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3558', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3450"></a><tt class="py-lineno">3450</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3451"></a><tt class="py-lineno">3451</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3559" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3559', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3452"></a><tt class="py-lineno">3452</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3453"></a><tt class="py-lineno">3453</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-def"><a name="L3454"></a><tt class="py-lineno">3454</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-expanded"><a name="L3455"></a><tt class="py-lineno">3455</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3560" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3623', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3624" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3624', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3625" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3625', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3495"></a><tt class="py-lineno">3495</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3626" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3626', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3499"></a><tt class="py-lineno">3499</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3627" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3627', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3500"></a><tt class="py-lineno">3500</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3628" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3628', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3502"></a><tt class="py-lineno">3502</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3503"></a><tt class="py-lineno">3503</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3629" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3629', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3630" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3630', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-def"><a name="L3509"></a><tt class="py-lineno">3509</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_with_comments">test_c14n_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_with_comments-expanded"><a name="L3510"></a><tt class="py-lineno">3510</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3631" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3560', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3561" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3561', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3456"></a><tt class="py-lineno">3456</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3562" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3631', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3632" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3632', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3511"></a><tt class="py-lineno">3511</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3633" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3562', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3563" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3563', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3564" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3564', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3457"></a><tt class="py-lineno">3457</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3565" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3565', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3458"></a><tt class="py-lineno">3458</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3459"></a><tt class="py-lineno">3459</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3566" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3633', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3634" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3634', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3635" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3635', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3512"></a><tt class="py-lineno">3512</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3636" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3636', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3637" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3566', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3567" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3567', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3568" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3568', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3460"></a><tt class="py-lineno">3460</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3569" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3569', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3461"></a><tt class="py-lineno">3461</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3462"></a><tt class="py-lineno">3462</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3570" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3637', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3638" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3638', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3639" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3639', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3515"></a><tt class="py-lineno">3515</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3640" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3640', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;\n&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;\n&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3641" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3570', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3571" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3571', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3572" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3572', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3463"></a><tt class="py-lineno">3463</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3573" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3573', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3464"></a><tt class="py-lineno">3464</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3465"></a><tt class="py-lineno">3465</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_element_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-def"><a name="L3466"></a><tt class="py-lineno">3466</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-expanded"><a name="L3467"></a><tt class="py-lineno">3467</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3574" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3641', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3642" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3642', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3643" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3643', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3644" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3644', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3520"></a><tt class="py-lineno">3520</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_element_tostring_with_comments"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-def"><a name="L3521"></a><tt class="py-lineno">3521</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_with_comments');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_with_comments">test_c14n_element_tostring_with_comments</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_with_comments-expanded"><a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3645" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3574', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3575" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3575', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3468"></a><tt class="py-lineno">3468</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3576" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3645', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3646" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3646', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;!--hi--&gt;&lt;a&gt;&lt;!--ho--&gt;&lt;b/&gt;&lt;/a&gt;&lt;!--hu--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3523"></a><tt class="py-lineno">3523</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3647" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3576', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3577" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3577', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3578" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3578', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3579" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3579', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3469"></a><tt class="py-lineno">3469</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3580" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3580', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3470"></a><tt class="py-lineno">3470</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3471"></a><tt class="py-lineno">3471</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3581" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3647', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3648" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3648', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3649" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3649', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3650" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3650', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3651" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3651', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3526"></a><tt class="py-lineno">3526</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3652" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3581', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3582" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3582', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3583" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3583', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3584" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3584', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3472"></a><tt class="py-lineno">3472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3585" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3585', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3473"></a><tt class="py-lineno">3473</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3474"></a><tt class="py-lineno">3474</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3586" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3652', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3653" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3653', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3654" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3654', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3655" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3655', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3527"></a><tt class="py-lineno">3527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3656" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3656', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;!--ho--&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3657" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3586', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3587" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3587', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3588" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3588', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3589" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3589', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3475"></a><tt class="py-lineno">3475</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3590" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3590', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3476"></a><tt class="py-lineno">3476</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3477"></a><tt class="py-lineno">3477</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_exclusive-def"><a name="L3478"></a><tt class="py-lineno">3478</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_exclusive-expanded"><a name="L3479"></a><tt class="py-lineno">3479</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3591" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3657', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3658" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3658', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3659" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3659', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3660" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3660', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">with_comments</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3661" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3661', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3531"></a><tt class="py-lineno">3531</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_exclusive-def"><a name="L3533"></a><tt class="py-lineno">3533</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_exclusive">test_c14n_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_exclusive-expanded"><a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3662" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3591', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3592" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3592', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3480"></a><tt class="py-lineno">3480</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3481"></a><tt class="py-lineno">3481</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3482"></a><tt class="py-lineno">3482</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3593" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3593', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3483"></a><tt class="py-lineno">3483</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3484"></a><tt class="py-lineno">3484</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3594" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3594', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3485"></a><tt class="py-lineno">3485</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3486"></a><tt class="py-lineno">3486</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3487"></a><tt class="py-lineno">3487</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3595" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3595', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3488"></a><tt class="py-lineno">3488</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3489"></a><tt class="py-lineno">3489</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3596" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3596', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3490"></a><tt class="py-lineno">3490</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3491"></a><tt class="py-lineno">3491</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3492"></a><tt class="py-lineno">3492</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3597" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3597', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3493"></a><tt class="py-lineno">3493</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3494"></a><tt class="py-lineno">3494</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3598" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3598', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3495"></a><tt class="py-lineno">3495</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3496"></a><tt class="py-lineno">3496</tt>  <tt class="py-line"> </tt>
-<a name="L3497"></a><tt class="py-lineno">3497</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3498"></a><tt class="py-lineno">3498</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3599" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3599', 'write_c14n', 'link-3513');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3499"></a><tt class="py-lineno">3499</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3500"></a><tt class="py-lineno">3500</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3600" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3600', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3501"></a><tt class="py-lineno">3501</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3502"></a><tt class="py-lineno">3502</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-def"><a name="L3503"></a><tt class="py-lineno">3503</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-expanded"><a name="L3504"></a><tt class="py-lineno">3504</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3601" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3662', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3663" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3663', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3537"></a><tt class="py-lineno">3537</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3664" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3664', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3539"></a><tt class="py-lineno">3539</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3665" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3665', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3542"></a><tt class="py-lineno">3542</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3666" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3666', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3544"></a><tt class="py-lineno">3544</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3667" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3667', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3545"></a><tt class="py-lineno">3545</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3668" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3668', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3669" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3669', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line"> </tt>
+<a name="L3552"></a><tt class="py-lineno">3552</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3670" class="py-name"><a title="lxml.etree._ElementTree.write_c14n" class="py-name" href="#" onclick="return doclink('link-3670', 'write_c14n', 'link-3584');">write_c14n</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3554"></a><tt class="py-lineno">3554</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3555"></a><tt class="py-lineno">3555</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3671" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3671', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3557"></a><tt class="py-lineno">3557</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-def"><a name="L3558"></a><tt class="py-lineno">3558</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_exclusive">test_c14n_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_exclusive-expanded"><a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3672" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3601', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3602" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3602', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3505"></a><tt class="py-lineno">3505</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3506"></a><tt class="py-lineno">3506</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3603" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3672', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3673" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3673', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3674" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3603', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3604" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3604', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3605" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3605', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3507"></a><tt class="py-lineno">3507</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3606" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3606', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3508"></a><tt class="py-lineno">3508</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3509"></a><tt class="py-lineno">3509</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3607" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3674', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3675" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3675', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3676" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3676', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3677" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3677', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3563"></a><tt class="py-lineno">3563</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3678" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3607', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3608" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3608', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3609" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3609', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3510"></a><tt class="py-lineno">3510</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3610" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3610', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3511"></a><tt class="py-lineno">3511</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3512"></a><tt class="py-lineno">3512</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3611" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3678', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3679" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3679', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3680" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3680', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3681" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3681', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3567"></a><tt class="py-lineno">3567</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3682" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3611', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3612" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3612', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3613" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3613', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3513"></a><tt class="py-lineno">3513</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3614" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3614', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3514"></a><tt class="py-lineno">3514</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3515"></a><tt class="py-lineno">3515</tt>  <tt class="py-line"> </tt>
-<a name="L3516"></a><tt class="py-lineno">3516</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3615" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3682', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3683" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3683', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3684" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3684', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3568"></a><tt class="py-lineno">3568</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3685" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3685', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3569"></a><tt class="py-lineno">3569</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line"> </tt>
+<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3686" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3615', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3616" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3616', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3617" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3617', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3517"></a><tt class="py-lineno">3517</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3618" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3618', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3518"></a><tt class="py-lineno">3518</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3519"></a><tt class="py-lineno">3519</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_element_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-def"><a name="L3520"></a><tt class="py-lineno">3520</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-expanded"><a name="L3521"></a><tt class="py-lineno">3521</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3619" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3686', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3687" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3687', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3688" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3688', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3689" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3689', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3573"></a><tt class="py-lineno">3573</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3574"></a><tt class="py-lineno">3574</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_element_tostring_exclusive"></a><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-def"><a name="L3575"></a><tt class="py-lineno">3575</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_element_tostring_exclusive');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_element_tostring_exclusive">test_c14n_element_tostring_exclusive</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_element_tostring_exclusive-expanded"><a name="L3576"></a><tt class="py-lineno">3576</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3690" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3619', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3620" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3620', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3522"></a><tt class="py-lineno">3522</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3523"></a><tt class="py-lineno">3523</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3621" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3690', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3691" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3691', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3577"></a><tt class="py-lineno">3577</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3692" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3621', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3622" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3622', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3623" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3623', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3624" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3624', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3524"></a><tt class="py-lineno">3524</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3625" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3625', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3525"></a><tt class="py-lineno">3525</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3526"></a><tt class="py-lineno">3526</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3626" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3692', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3693" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3693', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3694" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3694', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3695" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3695', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3696" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3696', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3580"></a><tt class="py-lineno">3580</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3581"></a><tt class="py-lineno">3581</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3697" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3626', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3627" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3627', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3628" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3628', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3629" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3629', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3527"></a><tt class="py-lineno">3527</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3630" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3630', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3528"></a><tt class="py-lineno">3528</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3529"></a><tt class="py-lineno">3529</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3631" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3697', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3698" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3698', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3699" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3699', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3700" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3700', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3582"></a><tt class="py-lineno">3582</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3701" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3701', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3702" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3631', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3632" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3632', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3633" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3633', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3634" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3634', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3530"></a><tt class="py-lineno">3530</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3635" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3635', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3531"></a><tt class="py-lineno">3531</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3532"></a><tt class="py-lineno">3532</tt>  <tt class="py-line"> </tt>
-<a name="L3533"></a><tt class="py-lineno">3533</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3636" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3702', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3703" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3703', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3704" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3704', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-3705" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3705', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3706" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3706', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns="http://abc"&gt;&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3587"></a><tt class="py-lineno">3587</tt>  <tt class="py-line"> </tt>
+<a name="L3588"></a><tt class="py-lineno">3588</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3707" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3636', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3637" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3637', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3638" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3638', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3639" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3639', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
-<a name="L3534"></a><tt class="py-lineno">3534</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3640" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3640', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3535"></a><tt class="py-lineno">3535</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3536"></a><tt class="py-lineno">3536</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3641" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3707', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3708" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3708', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3709" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3709', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3710" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3710', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+<a name="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3711" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3711', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3591"></a><tt class="py-lineno">3591</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3712" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3641', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3642" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3642', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3643" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3643', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3644" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3644', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
-<a name="L3537"></a><tt class="py-lineno">3537</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3645" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3645', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3538"></a><tt class="py-lineno">3538</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-<a name="L3539"></a><tt class="py-lineno">3539</tt>  <tt class="py-line"> </tt>
-<a name="L3540"></a><tt class="py-lineno">3540</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3646" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3646', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3647" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3647', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3648" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3648', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3649" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3649', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3541"></a><tt class="py-lineno">3541</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3650" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3650', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3542"></a><tt class="py-lineno">3542</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3543"></a><tt class="py-lineno">3543</tt>  <tt class="py-line"> </tt>
-<a name="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes"></a><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-def"><a name="L3544"></a><tt class="py-lineno">3544</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-expanded"><a name="L3545"></a><tt class="py-lineno">3545</tt>  <tt class="py-line">        <tt class="py-docstring">""" Regression test to fix memory allocation issues (use 3+ inclusive NS spaces)"""</tt> </tt>
-<a name="L3546"></a><tt class="py-lineno">3546</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3651" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3712', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3713" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3713', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3714" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3714', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3715" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3715', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3716" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3716', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3593"></a><tt class="py-lineno">3593</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L3594"></a><tt class="py-lineno">3594</tt>  <tt class="py-line"> </tt>
+<a name="L3595"></a><tt class="py-lineno">3595</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3717" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3717', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3718" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3718', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3719" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-3719', 'getroot', 'link-692');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-3720" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3720', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'y'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3721" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3721', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;z:b xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;/z:b&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line"> </tt>
+<a name="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes"></a><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-def"><a name="L3599"></a><tt class="py-lineno">3599</tt> <a class="py-toggle" href="#" id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-toggle" onclick="return toggle('ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeC14NTestCase-class.html#test_c14n_tostring_inclusive_ns_prefixes">test_c14n_tostring_inclusive_ns_prefixes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeC14NTestCase.test_c14n_tostring_inclusive_ns_prefixes-expanded"><a name="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line">        <tt class="py-docstring">""" Regression test to fix memory allocation issues (use 3+ inclusive NS spaces)"""</tt> </tt>
+<a name="L3601"></a><tt class="py-lineno">3601</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3722" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3651', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3652" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3652', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3547"></a><tt class="py-lineno">3547</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3548"></a><tt class="py-lineno">3548</tt>  <tt class="py-line"> </tt>
-<a name="L3549"></a><tt class="py-lineno">3549</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3653" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3653', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3654" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3654', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3655" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3655', 'method', 'link-3248');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3550"></a><tt class="py-lineno">3550</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3656" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3656', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3551"></a><tt class="py-lineno">3551</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3552"></a><tt class="py-lineno">3552</tt>  <tt class="py-line"> </tt>
-<a name="L3553"></a><tt class="py-lineno">3553</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase"></a><div id="ETreeWriteTestCase-def"><a name="L3554"></a><tt class="py-lineno">3554</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase-toggle" onclick="return toggle('ETreeWriteTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeWriteTestCase-expanded"><a name="ETreeWriteTestCase.test_write"></a><div id="ETreeWriteTestCase.test_write-def"><a name="L3555"></a><tt class="py-lineno">3555</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write-toggle" onclick="return toggle('ETreeWriteTestCase.test_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write-expanded"><a name="L3556"></a><tt class="py-lineno">3556</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3657" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3722', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3723" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3723', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3602"></a><tt class="py-lineno">3602</tt>  <tt class="py-line">                <tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3603"></a><tt class="py-lineno">3603</tt>  <tt class="py-line"> </tt>
+<a name="L3604"></a><tt class="py-lineno">3604</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt id="link-3724" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3724', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3725" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3725', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt id="link-3726" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-3726', 'method', 'link-3317');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'c14n'</tt><tt class="py-op">,</tt> <tt class="py-name">exclusive</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">,</tt> <tt class="py-name">inclusive_ns_prefixes</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">'x'</tt><tt class="py-op">,</tt> <tt class="py-string">'y'</tt><tt class="py-op">,</tt> <tt class="py-string">'z'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3727" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3727', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a xmlns:x="http://abc" xmlns:y="http://bcd" xmlns:z="http://cde"&gt;&lt;z:b&gt;&lt;/z:b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3606"></a><tt class="py-lineno">3606</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line"> </tt>
+<a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase"></a><div id="ETreeWriteTestCase-def"><a name="L3609"></a><tt class="py-lineno">3609</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase-toggle" onclick="return toggle('ETreeWriteTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html">ETreeWriteTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeWriteTestCase-expanded"><a name="ETreeWriteTestCase.test_write"></a><div id="ETreeWriteTestCase.test_write-def"><a name="L3610"></a><tt class="py-lineno">3610</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write-toggle" onclick="return toggle('ETreeWriteTestCase.test_write');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write">test_write</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write-expanded"><a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3728" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3657', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3658" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3658', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3557"></a><tt class="py-lineno">3557</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3558"></a><tt class="py-lineno">3558</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3659" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3659', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3559"></a><tt class="py-lineno">3559</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3560"></a><tt class="py-lineno">3560</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3660" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3660', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3561"></a><tt class="py-lineno">3561</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3562"></a><tt class="py-lineno">3562</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip"></a><div id="ETreeWriteTestCase.test_write_gzip-def"><a name="L3563"></a><tt class="py-lineno">3563</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip-expanded"><a name="L3564"></a><tt class="py-lineno">3564</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3661" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3728', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3729" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3729', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3612"></a><tt class="py-lineno">3612</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3613"></a><tt class="py-lineno">3613</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3730" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3730', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3731" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3731', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3616"></a><tt class="py-lineno">3616</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip"></a><div id="ETreeWriteTestCase.test_write_gzip-def"><a name="L3618"></a><tt class="py-lineno">3618</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip">test_write_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip-expanded"><a name="L3619"></a><tt class="py-lineno">3619</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3732" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3661', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3662" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3662', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3565"></a><tt class="py-lineno">3565</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3566"></a><tt class="py-lineno">3566</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3663" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3663', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3567"></a><tt class="py-lineno">3567</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3568"></a><tt class="py-lineno">3568</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3569"></a><tt class="py-lineno">3569</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3664" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3664', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3570"></a><tt class="py-lineno">3570</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3571"></a><tt class="py-lineno">3571</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3665" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3665', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3572"></a><tt class="py-lineno">3572</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3666" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3666', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3573"></a><tt class="py-lineno">3573</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3574"></a><tt class="py-lineno">3574</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_gzip_level"></a><div id="ETreeWriteTestCase.test_write_gzip_level-def"><a name="L3575"></a><tt class="py-lineno">3575</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip_level-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip_level');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_gzip_level-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip_level-expanded"><a name="L3576"></a><tt class="py-lineno">3576</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3667" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3732', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3733" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3733', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3734" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3734', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3622"></a><tt class="py-lineno">3622</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3623"></a><tt class="py-lineno">3623</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3624"></a><tt class="py-lineno">3624</tt>  <tt class="py-line">            <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3735" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3735', 'read', 'link-3589');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3625"></a><tt class="py-lineno">3625</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3736" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3736', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3737" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3737', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-line">                          <tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3629"></a><tt class="py-lineno">3629</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_gzip_level"></a><div id="ETreeWriteTestCase.test_write_gzip_level-def"><a name="L3630"></a><tt class="py-lineno">3630</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_gzip_level-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_gzip_level');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_gzip_level">test_write_gzip_level</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_gzip_level-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_gzip_level-expanded"><a name="L3631"></a><tt class="py-lineno">3631</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3738" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3667', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3668" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3668', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3577"></a><tt class="py-lineno">3577</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3578"></a><tt class="py-lineno">3578</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3669" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3669', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3579"></a><tt class="py-lineno">3579</tt>  <tt class="py-line">        <tt class="py-name">s0</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3580"></a><tt class="py-lineno">3580</tt>  <tt class="py-line"> </tt>
-<a name="L3581"></a><tt class="py-lineno">3581</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3582"></a><tt class="py-lineno">3582</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3670" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3670', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3583"></a><tt class="py-lineno">3583</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3584"></a><tt class="py-lineno">3584</tt>  <tt class="py-line"> </tt>
-<a name="L3585"></a><tt class="py-lineno">3585</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3586"></a><tt class="py-lineno">3586</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3671" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3671', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3587"></a><tt class="py-lineno">3587</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3588"></a><tt class="py-lineno">3588</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3589"></a><tt class="py-lineno">3589</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3590"></a><tt class="py-lineno">3590</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3591"></a><tt class="py-lineno">3591</tt>  <tt class="py-line">            <tt class="py-name">s1</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3672" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3672', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3592"></a><tt class="py-lineno">3592</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3593"></a><tt class="py-lineno">3593</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3673" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3673', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3594"></a><tt class="py-lineno">3594</tt>  <tt class="py-line"> </tt>
-<a name="L3595"></a><tt class="py-lineno">3595</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3596"></a><tt class="py-lineno">3596</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3674" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3674', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3597"></a><tt class="py-lineno">3597</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3598"></a><tt class="py-lineno">3598</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3599"></a><tt class="py-lineno">3599</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3600"></a><tt class="py-lineno">3600</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3601"></a><tt class="py-lineno">3601</tt>  <tt class="py-line">            <tt class="py-name">s9</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3675" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3675', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3602"></a><tt class="py-lineno">3602</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3603"></a><tt class="py-lineno">3603</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3676" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3676', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3604"></a><tt class="py-lineno">3604</tt>  <tt class="py-line"> </tt>
-<a name="L3605"></a><tt class="py-lineno">3605</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3677" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3677', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3606"></a><tt class="py-lineno">3606</tt>  <tt class="py-line">                          <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
-<a name="L3607"></a><tt class="py-lineno">3607</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3678" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3678', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3608"></a><tt class="py-lineno">3608</tt>  <tt class="py-line">                          <tt class="py-name">s1</tt><tt class="py-op">)</tt> </tt>
-<a name="L3609"></a><tt class="py-lineno">3609</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3679" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3679', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3610"></a><tt class="py-lineno">3610</tt>  <tt class="py-line">                          <tt class="py-name">s9</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3611"></a><tt class="py-lineno">3611</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file"></a><div id="ETreeWriteTestCase.test_write_file-def"><a name="L3612"></a><tt class="py-lineno">3612</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file-expanded"><a name="L3613"></a><tt class="py-lineno">3613</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3680" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3738', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3739" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3739', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3632"></a><tt class="py-lineno">3632</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3740" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3740', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3634"></a><tt class="py-lineno">3634</tt>  <tt class="py-line">        <tt class="py-name">s0</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3635"></a><tt class="py-lineno">3635</tt>  <tt class="py-line"> </tt>
+<a name="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3741" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3741', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line"> </tt>
+<a name="L3640"></a><tt class="py-lineno">3640</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3641"></a><tt class="py-lineno">3641</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3742" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3742', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3643"></a><tt class="py-lineno">3643</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3646"></a><tt class="py-lineno">3646</tt>  <tt class="py-line">            <tt class="py-name">s1</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3743" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3743', 'read', 'link-3589');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3647"></a><tt class="py-lineno">3647</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3744" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3744', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line"> </tt>
+<a name="L3650"></a><tt class="py-lineno">3650</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3745" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3745', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3652"></a><tt class="py-lineno">3652</tt>  <tt class="py-line">        <tt class="py-name">s</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">getvalue</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3653"></a><tt class="py-lineno">3653</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> <tt class="py-op">&lt;=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">s0</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3654"></a><tt class="py-lineno">3654</tt>  <tt class="py-line">        <tt class="py-name">gzfile</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3655"></a><tt class="py-lineno">3655</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3656"></a><tt class="py-lineno">3656</tt>  <tt class="py-line">            <tt class="py-name">s9</tt> <tt class="py-op">=</tt> <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3746" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3746', 'read', 'link-3589');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3657"></a><tt class="py-lineno">3657</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3658"></a><tt class="py-lineno">3658</tt>  <tt class="py-line">            <tt class="py-name">gzfile</tt><tt class="py-op">.</tt><tt id="link-3747" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3747', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3659"></a><tt class="py-lineno">3659</tt>  <tt class="py-line"> </tt>
+<a name="L3660"></a><tt class="py-lineno">3660</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3748" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3748', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">                          <tt class="py-name">s0</tt><tt class="py-op">)</tt> </tt>
+<a name="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3749" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3749', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3663"></a><tt class="py-lineno">3663</tt>  <tt class="py-line">                          <tt class="py-name">s1</tt><tt class="py-op">)</tt> </tt>
+<a name="L3664"></a><tt class="py-lineno">3664</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3750" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3750', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3665"></a><tt class="py-lineno">3665</tt>  <tt class="py-line">                          <tt class="py-name">s9</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3666"></a><tt class="py-lineno">3666</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file"></a><div id="ETreeWriteTestCase.test_write_file-def"><a name="L3667"></a><tt class="py-lineno">3667</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file">test_write_file</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file-expanded"><a name="L3668"></a><tt class="py-lineno">3668</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3751" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3680', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3681" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3681', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3614"></a><tt class="py-lineno">3614</tt>  <tt class="py-line">        <tt id="link-3682" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3751', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3752" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3752', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line">        <tt id="link-3753" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3682', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3683" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3683', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3615"></a><tt class="py-lineno">3615</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3616"></a><tt class="py-lineno">3616</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3684" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3684', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt id="link-3685" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3685', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3617"></a><tt class="py-lineno">3617</tt>  <tt class="py-line">            <tt id="link-3686" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3686', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3687" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3687', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3688" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3688', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3618"></a><tt class="py-lineno">3618</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3619"></a><tt class="py-lineno">3619</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3689" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3689', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3690" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3753', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3754" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3754', 'filename', 'link-3532');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3670"></a><tt class="py-lineno">3670</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3671"></a><tt class="py-lineno">3671</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3755" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3755', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt id="link-3756" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3756', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">            <tt id="link-3757" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3757', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3758" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-3758', 'read_file', 'link-13');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-3759" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3759', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3760" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3760', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3761" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3690', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3620"></a><tt class="py-lineno">3620</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3691" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3761', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3675"></a><tt class="py-lineno">3675</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3762" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3691', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3692" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3692', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3621"></a><tt class="py-lineno">3621</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3693" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3693', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3622"></a><tt class="py-lineno">3622</tt>  <tt class="py-line">                          <tt id="link-3694" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3694', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3623"></a><tt class="py-lineno">3623</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzip"></a><div id="ETreeWriteTestCase.test_write_file_gzip-def"><a name="L3624"></a><tt class="py-lineno">3624</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip-expanded"><a name="L3625"></a><tt class="py-lineno">3625</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3695" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3762', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3763" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3763', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3676"></a><tt class="py-lineno">3676</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3764" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3764', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line">                          <tt id="link-3765" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3765', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzip"></a><div id="ETreeWriteTestCase.test_write_file_gzip-def"><a name="L3679"></a><tt class="py-lineno">3679</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip">test_write_file_gzip</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file_gzip-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip-expanded"><a name="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3766" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3695', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3696" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3696', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3626"></a><tt class="py-lineno">3626</tt>  <tt class="py-line">        <tt id="link-3697" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3766', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3767" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3767', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">        <tt id="link-3768" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3697', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3698" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3698', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3627"></a><tt class="py-lineno">3627</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3628"></a><tt class="py-lineno">3628</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3699" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3699', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt id="link-3700" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3700', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3629"></a><tt class="py-lineno">3629</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3701" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3701', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3630"></a><tt class="py-lineno">3630</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3631"></a><tt class="py-lineno">3631</tt>  <tt class="py-line">                <tt id="link-3702" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3702', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3703" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3703', 'read', 'link-3518');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3632"></a><tt class="py-lineno">3632</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3633"></a><tt class="py-lineno">3633</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3704" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3704', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3634"></a><tt class="py-lineno">3634</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3635"></a><tt class="py-lineno">3635</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3705" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3705', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3706" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3768', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3769" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3769', 'filename', 'link-3532');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3682"></a><tt class="py-lineno">3682</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3683"></a><tt class="py-lineno">3683</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3770" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3770', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt id="link-3771" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3771', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3684"></a><tt class="py-lineno">3684</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-3772" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3772', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line">                <tt id="link-3773" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3773', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3774" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-3774', 'read', 'link-3589');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3687"></a><tt class="py-lineno">3687</tt>  <tt class="py-line">            <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3688"></a><tt class="py-lineno">3688</tt>  <tt class="py-line">                <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3775" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3775', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3690"></a><tt class="py-lineno">3690</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3776" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3776', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3777" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3706', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3636"></a><tt class="py-lineno">3636</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3707" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3777', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3778" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3707', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3708" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3708', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3637"></a><tt class="py-lineno">3637</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3709" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3709', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3638"></a><tt class="py-lineno">3638</tt>  <tt class="py-line">                          <tt id="link-3710" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3710', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3639"></a><tt class="py-lineno">3639</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzip_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzip_parse-def"><a name="L3640"></a><tt class="py-lineno">3640</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-expanded"><a name="L3641"></a><tt class="py-lineno">3641</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3711" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3778', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3779" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3779', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3692"></a><tt class="py-lineno">3692</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3780" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3780', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line">                          <tt id="link-3781" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3781', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3694"></a><tt class="py-lineno">3694</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzip_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzip_parse-def"><a name="L3695"></a><tt class="py-lineno">3695</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzip_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzip_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzip_parse">test_write_file_gzip_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzip_parse-expanded"><a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3782" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3711', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3712" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3712', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3642"></a><tt class="py-lineno">3642</tt>  <tt class="py-line">        <tt id="link-3713" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3782', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3783" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3783', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3697"></a><tt class="py-lineno">3697</tt>  <tt class="py-line">        <tt id="link-3784" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3713', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3714" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3714', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3643"></a><tt class="py-lineno">3643</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3644"></a><tt class="py-lineno">3644</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3715" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3715', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt id="link-3716" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3716', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3645"></a><tt class="py-lineno">3645</tt>  <tt class="py-line">            <tt id="link-3717" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3717', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3718" class="py-name"><a title="lxml.etree
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3784', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3785" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3785', 'filename', 'link-3532');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3699"></a><tt class="py-lineno">3699</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3786" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3786', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt id="link-3787" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3787', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line">            <tt id="link-3788" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3788', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3789" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3718', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3719" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3719', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3720" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3789', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3790" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3790', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3791" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3720', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3721" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3791', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3792" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3721', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3722" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3722', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3646"></a><tt class="py-lineno">3646</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3647"></a><tt class="py-lineno">3647</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3723" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3723', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3724" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3792', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3793" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3793', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3701"></a><tt class="py-lineno">3701</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3702"></a><tt class="py-lineno">3702</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3794" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3794', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3795" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3724', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3648"></a><tt class="py-lineno">3648</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3725" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3795', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3796" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3725', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3726" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3726', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3649"></a><tt class="py-lineno">3649</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3727" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3727', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3650"></a><tt class="py-lineno">3650</tt>  <tt class="py-line">                          <tt id="link-3728" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3728', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3651"></a><tt class="py-lineno">3651</tt>  <tt class="py-line"> </tt>
-<a name="ETreeWriteTestCase.test_write_file_gzipfile_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-def"><a name="L3652"></a><tt class="py-lineno">3652</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzipfile_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzipfile_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-expanded"><a name="L3653"></a><tt class="py-lineno">3653</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3729" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3796', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3797" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3797', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3704"></a><tt class="py-lineno">3704</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3798" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3798', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3705"></a><tt class="py-lineno">3705</tt>  <tt class="py-line">                          <tt id="link-3799" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3799', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3706"></a><tt class="py-lineno">3706</tt>  <tt class="py-line"> </tt>
+<a name="ETreeWriteTestCase.test_write_file_gzipfile_parse"></a><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-def"><a name="L3707"></a><tt class="py-lineno">3707</tt> <a class="py-toggle" href="#" id="ETreeWriteTestCase.test_write_file_gzipfile_parse-toggle" onclick="return toggle('ETreeWriteTestCase.test_write_file_gzipfile_parse');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeWriteTestCase-class.html#test_write_file_gzipfile_parse">test_write_file_gzipfile_parse</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeWriteTestCase.test_write_file_gzipfile_parse-expanded"><a name="L3708"></a><tt class="py-lineno">3708</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3800" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3729', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3730" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3730', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3654"></a><tt class="py-lineno">3654</tt>  <tt class="py-line">        <tt id="link-3731" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3800', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt id="link-3801" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3801', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3709"></a><tt class="py-lineno">3709</tt>  <tt class="py-line">        <tt id="link-3802" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3731', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3732" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3732', 'filename', 'link-3461');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3655"></a><tt class="py-lineno">3655</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3656"></a><tt class="py-lineno">3656</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3733" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3733', 'write', 'link-3453');">write</a></tt><tt class="py-op">(</tt><tt id="link-3734" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3734', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
-<a name="L3657"></a><tt class="py-lineno">3657</tt>  <tt class="py-line">            <tt id="link-3735" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3735', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3736" class="py-name"><a title="lxml.etree
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3802', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-3803" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3803', 'filename', 'link-3532');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3710"></a><tt class="py-lineno">3710</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3711"></a><tt class="py-lineno">3711</tt>  <tt class="py-line">            <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-3804" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-3804', 'write', 'link-3524');">write</a></tt><tt class="py-op">(</tt><tt id="link-3805" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3805', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L3712"></a><tt class="py-lineno">3712</tt>  <tt class="py-line">            <tt id="link-3806" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3806', 'data', 'link-983');">data</a></tt> <tt class="py-op">=</tt> <tt id="link-3807" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3736', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3737" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3737', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3738" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3807', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3808" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-3808', 'tostring', 'link-589');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-3809" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3738', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3739" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3809', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3810" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3739', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt> </tt>
-<a name="L3658"></a><tt class="py-lineno">3658</tt>  <tt class="py-line">                <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt id="link-3740" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3740', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3659"></a><tt class="py-lineno">3659</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L3660"></a><tt class="py-lineno">3660</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3741" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3741', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3742" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3810', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt> </tt>
+<a name="L3713"></a><tt class="py-lineno">3713</tt>  <tt class="py-line">                <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt id="link-3811" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3811', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3714"></a><tt class="py-lineno">3714</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L3715"></a><tt class="py-lineno">3715</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3812" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3812', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt id="link-3813" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
-lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3742', 'handle', 'link-3523');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3661"></a><tt class="py-lineno">3661</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3743" class="py-name"><a title="lxml.etree._Element.remove
+lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-3813', 'handle', 'link-3594');">handle</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3716"></a><tt class="py-lineno">3716</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-3814" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
-lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3743', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3744" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3744', 'filename', 'link-3461');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L3662"></a><tt class="py-lineno">3662</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3745" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3745', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L3663"></a><tt class="py-lineno">3663</tt>  <tt class="py-line">                          <tt id="link-3746" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3746', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3664"></a><tt class="py-lineno">3664</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest"></a><div id="ETreeErrorLogTest-def"><a name="L3665"></a><tt class="py-lineno">3665</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest-toggle" onclick="return toggle('ETreeErrorLogTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeErrorLogTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeErrorLogTest-expanded"><a name="L3666"></a><tt class="py-lineno">3666</tt>  <tt class="py-line">    <tt id="link-3747" class="py-name"><a title="lxml.etree
+lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-3814', 'remove', 'link-599');">remove</a></tt><tt class="py-op">(</tt><tt id="link-3815" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-3815', 'filename', 'link-3532');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L3717"></a><tt class="py-lineno">3717</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-3816" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-3816', '_bytes', 'link-21');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;'</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;b/&gt;'</tt><tt class="py-op">*</tt><tt class="py-number">200</tt><tt class="py-op">+</tt><tt class="py-string">'&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L3718"></a><tt class="py-lineno">3718</tt>  <tt class="py-line">                          <tt id="link-3817" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-3817', 'data', 'link-983');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3719"></a><tt class="py-lineno">3719</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest"></a><div id="ETreeErrorLogTest-def"><a name="L3720"></a><tt class="py-lineno">3720</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest-toggle" onclick="return toggle('ETreeErrorLogTest');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html">ETreeErrorLogTest</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeErrorLogTest-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeErrorLogTest-expanded"><a name="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line">    <tt id="link-3818" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3747', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3748" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3818', 'etree', 'link-10');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-3819" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3748', 'etree', 'link-10');">etree</a></tt> </tt>
-<a name="L3667"></a><tt class="py-lineno">3667</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest.test_parse_error_logging"></a><div id="ETreeErrorLogTest.test_parse_error_logging-def"><a name="L3668"></a><tt class="py-lineno">3668</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest.test_parse_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest.test_parse_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeErrorLogTest.test_parse_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest.test_parse_error_logging-expanded"><a name="L3669"></a><tt class="py-lineno">3669</tt>  <tt class="py-line">        <tt id="link-3749" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3819', 'etree', 'link-10');">etree</a></tt> </tt>
+<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest.test_parse_error_logging"></a><div id="ETreeErrorLogTest.test_parse_error_logging-def"><a name="L3723"></a><tt class="py-lineno">3723</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest.test_parse_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest.test_parse_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#test_parse_error_logging">test_parse_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeErrorLogTest.test_parse_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest.test_parse_error_logging-expanded"><a name="L3724"></a><tt class="py-lineno">3724</tt>  <tt class="py-line">        <tt id="link-3820" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3749', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3750" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3820', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3821" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3750', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3751" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3821', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3822" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3751', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L3670"></a><tt class="py-lineno">3670</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3671"></a><tt class="py-lineno">3671</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3752" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3822', 'parse', 'link-749');">parse</a></tt> </tt>
+<a name="L3725"></a><tt class="py-lineno">3725</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3726"></a><tt class="py-lineno">3726</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3823" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3752', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3753" class="py-name" targets="Function lxml.etree.clear_error_log()=lxml.etree-module.html#clear_error_log"><a title="lxml.etree.clear_error_log" class="py-name" href="#" onclick="return doclink('link-3753', 'clear_error_log', 'link-3753');">clear_error_log</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3672"></a><tt class="py-lineno">3672</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3673"></a><tt class="py-lineno">3673</tt>  <tt class="py-line">            <tt id="link-3754" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3823', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3824" class="py-name" targets="Function lxml.etree.clear_error_log()=lxml.etree-module.html#clear_error_log"><a title="lxml.etree.clear_error_log" class="py-name" href="#" onclick="return doclink('link-3824', 'clear_error_log', 'link-3824');">clear_error_log</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3727"></a><tt class="py-lineno">3727</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3728"></a><tt class="py-lineno">3728</tt>  <tt class="py-line">            <tt id="link-3825" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3754', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3674"></a><tt class="py-lineno">3674</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L3675"></a><tt class="py-lineno">3675</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3676"></a><tt class="py-lineno">3676</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L3677"></a><tt class="py-lineno">3677</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3755" class="py-name" targets="Variable lxml.etree.XInclude.error_log=lxml.etree.XInclude-class.html#error_log,Variable lxml.etree.XSLT.error_log=lxml.etree.XSLT-class.html#error_log,Variable lxml.etree._Validator.error_log=lxml.etree._Validator-class.html#error_log,Variable lxml.etree._XPathEvaluatorBase.error_log=lxml.etree._XPathEvaluatorBase-class.html#error_log,Variable lxml.etree.iterparse.error_log=lxml.etree.iterparse-class.html#error_log"><a title="lxml.etree.XInclude.error_log
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3825', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3729"></a><tt class="py-lineno">3729</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L3730"></a><tt class="py-lineno">3730</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line">            <tt class="py-name">e</tt> <tt class="py-op">=</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exc_info</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line">            <tt class="py-name">logs</tt> <tt class="py-op">=</tt> <tt class="py-name">e</tt><tt class="py-op">.</tt><tt id="link-3826" class="py-name" targets="Variable lxml.etree.XInclude.error_log=lxml.etree.XInclude-class.html#error_log,Variable lxml.etree.XSLT.error_log=lxml.etree.XSLT-class.html#error_log,Variable lxml.etree._Validator.error_log=lxml.etree._Validator-class.html#error_log,Variable lxml.etree._XPathEvaluatorBase.error_log=lxml.etree._XPathEvaluatorBase-class.html#error_log,Variable lxml.etree.iterparse.error_log=lxml.etree.iterparse-class.html#error_log"><a title="lxml.etree.XInclude.error_log
 lxml.etree.XSLT.error_log
 lxml.etree._Validator.error_log
 lxml.etree._XPathEvaluatorBase.error_log
-lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-3755', 'error_log', 'link-3755');">error_log</a></tt> </tt>
-<a name="L3678"></a><tt class="py-lineno">3678</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3756" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3756', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3679"></a><tt class="py-lineno">3679</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3757" class="py-name" targets="Method lxml.etree.PyErrorLog.log()=lxml.etree.PyErrorLog-class.html#log"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3757', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3758" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3758', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3680"></a><tt class="py-lineno">3680</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-3759" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3759', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3760" class="py-name" targets="Variable lxml.etree._LogEntry.message=lxml.etree._LogEntry-class.html#message"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3760', 'message', 'link-3760');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3681"></a><tt class="py-lineno">3681</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3761" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3761', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3762" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3762', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3682"></a><tt class="py-lineno">3682</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'PARSER'</tt>   <tt class="py-keyword">in</tt> <tt id="link-3763" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3763', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3764" class="py-name" targets="Variable lxml.etree._LogEntry.domain_name=lxml.etree._LogEntry-class.html#domain_name"><a title="lxml.etree._LogEntry.domain_name" class="py-name" href="#" onclick="return doclink('link-3764', 'domain_name', 'link-3764');">domain_name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3683"></a><tt class="py-lineno">3683</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3765" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3765', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3766" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3766', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3684"></a><tt class="py-lineno">3684</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'ERR_TAG_NAME_MISMATCH'</tt> <tt class="py-keyword">in</tt> <tt id="link-3767" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3767', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3768" class="py-name" targets="Variable lxml.etree._LogEntry.type_name=lxml.etree._LogEntry-class.html#type_name"><a title="lxml.etree._LogEntry.type_name" class="py-name" href="#" onclick="return doclink('link-3768', 'type_name', 'link-3768');">type_name</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3685"></a><tt class="py-lineno">3685</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3769" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3769', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3770" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3770', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3686"></a><tt class="py-lineno">3686</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">1</tt> <tt class="py-op">==</tt> <tt id="link-3771" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3771', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3772" class="py-name" targets="Variable lxml.etree._LogEntry.line=lxml.etree._LogEntry-class.html#line"><a title="lxml.etree._LogEntry.line" class="py-name" href="#" onclick="return doclink('link-3772', 'line', 'link-3772');">line</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3687"></a><tt class="py-lineno">3687</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3773" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3773', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3774" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3774', 'log', 'link-3757');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
-<a name="L3688"></a><tt class="py-lineno">3688</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">15</tt> <tt class="py-op">==</tt> <tt id="link-3775" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3775', 'log', 'link-3757');">log</a></tt><tt class="py-op">.</tt><tt id="link-3776" class="py-name" targets="Variable lxml.etree._LogEntry.column=lxml.etree._LogEntry-class.html#column"><a title="lxml.etree._LogEntry.column" class="py-name" href="#" onclick="return doclink('link-3776', 'column', 'link-3776');">column</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L3689"></a><tt class="py-lineno">3689</tt>  <tt class="py-line"> </tt>
-<a name="ETreeErrorLogTest._test_python_error_logging"></a><div id="ETreeErrorLogTest._test_python_error_logging-def"><a name="L3690"></a><tt class="py-lineno">3690</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest._test_python_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest._test_python_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeErrorLogTest._test_python_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest._test_python_error_logging-expanded"><a name="L3691"></a><tt class="py-lineno">3691</tt>  <tt class="py-line">        <tt class="py-docstring">"""This can't really be tested as long as there isn't a way to</tt> </tt>
-<a name="L3692"></a><tt class="py-lineno">3692</tt>  <tt class="py-line"><tt class="py-docstring">        reset the logging setup ...</tt> </tt>
-<a name="L3693"></a><tt class="py-lineno">3693</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L3694"></a><tt class="py-lineno">3694</tt>  <tt class="py-line">        <tt id="link-3777" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.iterparse.error_log" class="py-name" href="#" onclick="return doclink('link-3826', 'error_log', 'link-3826');">error_log</a></tt> </tt>
+<a name="L3733"></a><tt class="py-lineno">3733</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3827" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3827', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3828" class="py-name" targets="Method lxml.etree.PyErrorLog.log()=lxml.etree.PyErrorLog-class.html#log"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3828', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3829" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3829', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3735"></a><tt class="py-lineno">3735</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-3830" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3830', 'log', 'link-3828');">log</a></tt><tt class="py-op">.</tt><tt id="link-3831" class="py-name" targets="Variable lxml.etree._LogEntry.message=lxml.etree._LogEntry-class.html#message"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3831', 'message', 'link-3831');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3832" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3832', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3833" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3833', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3737"></a><tt class="py-lineno">3737</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'PARSER'</tt>   <tt class="py-keyword">in</tt> <tt id="link-3834" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3834', 'log', 'link-3828');">log</a></tt><tt class="py-op">.</tt><tt id="link-3835" class="py-name" targets="Variable lxml.etree._LogEntry.domain_name=lxml.etree._LogEntry-class.html#domain_name"><a title="lxml.etree._LogEntry.domain_name" class="py-name" href="#" onclick="return doclink('link-3835', 'domain_name', 'link-3835');">domain_name</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3738"></a><tt class="py-lineno">3738</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3836" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3836', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3837" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3837', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'ERR_TAG_NAME_MISMATCH'</tt> <tt class="py-keyword">in</tt> <tt id="link-3838" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3838', 'log', 'link-3828');">log</a></tt><tt class="py-op">.</tt><tt id="link-3839" class="py-name" targets="Variable lxml.etree._LogEntry.type_name=lxml.etree._LogEntry-class.html#type_name"><a title="lxml.etree._LogEntry.type_name" class="py-name" href="#" onclick="return doclink('link-3839', 'type_name', 'link-3839');">type_name</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3740"></a><tt class="py-lineno">3740</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3840" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3840', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3841" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3841', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3741"></a><tt class="py-lineno">3741</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">1</tt> <tt class="py-op">==</tt> <tt id="link-3842" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3842', 'log', 'link-3828');">log</a></tt><tt class="py-op">.</tt><tt id="link-3843" class="py-name" targets="Variable lxml.etree._LogEntry.line=lxml.etree._LogEntry-class.html#line"><a title="lxml.etree._LogEntry.line" class="py-name" href="#" onclick="return doclink('link-3843', 'line', 'link-3843');">line</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3742"></a><tt class="py-lineno">3742</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3844" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3844', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3845" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3845', 'log', 'link-3828');">log</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">logs</tt> </tt>
+<a name="L3743"></a><tt class="py-lineno">3743</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-number">15</tt> <tt class="py-op">==</tt> <tt id="link-3846" class="py-name"><a title="lxml.etree.PyErrorLog.log" class="py-name" href="#" onclick="return doclink('link-3846', 'log', 'link-3828');">log</a></tt><tt class="py-op">.</tt><tt id="link-3847" class="py-name" targets="Variable lxml.etree._LogEntry.column=lxml.etree._LogEntry-class.html#column"><a title="lxml.etree._LogEntry.column" class="py-name" href="#" onclick="return doclink('link-3847', 'column', 'link-3847');">column</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L3744"></a><tt class="py-lineno">3744</tt>  <tt class="py-line"> </tt>
+<a name="ETreeErrorLogTest._test_python_error_logging"></a><div id="ETreeErrorLogTest._test_python_error_logging-def"><a name="L3745"></a><tt class="py-lineno">3745</tt> <a class="py-toggle" href="#" id="ETreeErrorLogTest._test_python_error_logging-toggle" onclick="return toggle('ETreeErrorLogTest._test_python_error_logging');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree.ETreeErrorLogTest-class.html#_test_python_error_logging">_test_python_error_logging</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeErrorLogTest._test_python_error_logging-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeErrorLogTest._test_python_error_logging-expanded"><a name="L3746"></a><tt class="py-lineno">3746</tt>  <tt class="py-line">        <tt class="py-docstring">"""This can't really be tested as long as there isn't a way to</tt> </tt>
+<a name="L3747"></a><tt class="py-lineno">3747</tt>  <tt class="py-line"><tt class="py-docstring">        reset the logging setup ...</tt> </tt>
+<a name="L3748"></a><tt class="py-lineno">3748</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L3749"></a><tt class="py-lineno">3749</tt>  <tt class="py-line">        <tt id="link-3848" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3777', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3778" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3848', 'parse', 'link-749');">parse</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3849" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3778', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3779" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3849', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3850" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3779', 'parse', 'link-749');">parse</a></tt> </tt>
-<a name="L3695"></a><tt class="py-lineno">3695</tt>  <tt class="py-line"> </tt>
-<a name="L3696"></a><tt class="py-lineno">3696</tt>  <tt class="py-line">        <tt class="py-name">messages</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L3697"></a><tt class="py-lineno">3697</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Logger</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">PyErrorLog</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3698"></a><tt class="py-lineno">3698</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">log</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">entry</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3699"></a><tt class="py-lineno">3699</tt>  <tt class="py-line">                <tt class="py-name">messages</tt><tt class="py-op">.</tt><tt id="link-3780" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3780', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-3781" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3781', 'message', 'link-3760');">message</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3700"></a><tt class="py-lineno">3700</tt>  <tt class="py-line"> </tt>
-<a name="L3701"></a><tt class="py-lineno">3701</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3782" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3850', 'parse', 'link-749');">parse</a></tt> </tt>
+<a name="L3750"></a><tt class="py-lineno">3750</tt>  <tt class="py-line"> </tt>
+<a name="L3751"></a><tt class="py-lineno">3751</tt>  <tt class="py-line">        <tt class="py-name">messages</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L3752"></a><tt class="py-lineno">3752</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">Logger</tt><tt class="py-op">(</tt><tt class="py-base-class">self</tt><tt class="py-op">.</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">PyErrorLog</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3753"></a><tt class="py-lineno">3753</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">log</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">entry</tt><tt class="py-op">,</tt> <tt class="py-param">message</tt><tt class="py-op">,</tt> <tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3754"></a><tt class="py-lineno">3754</tt>  <tt class="py-line">                <tt class="py-name">messages</tt><tt class="py-op">.</tt><tt id="link-3851" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-3851', 'append', 'link-613');">append</a></tt><tt class="py-op">(</tt><tt id="link-3852" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3852', 'message', 'link-3831');">message</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3755"></a><tt class="py-lineno">3755</tt>  <tt class="py-line"> </tt>
+<a name="L3756"></a><tt class="py-lineno">3756</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-3853" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3782', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3783" class="py-name" targets="Function lxml.etree.use_global_python_log()=lxml.etree-module.html#use_global_python_log"><a title="lxml.etree.use_global_python_log" class="py-name" href="#" onclick="return doclink('link-3783', 'use_global_python_log', 'link-3783');">use_global_python_log</a></tt><tt class="py-op">(</tt><tt class="py-name">Logger</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L3702"></a><tt class="py-lineno">3702</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L3703"></a><tt class="py-lineno">3703</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L3704"></a><tt class="py-lineno">3704</tt>  <tt class="py-line">            <tt id="link-3784" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-3853', 'etree', 'link-10');">etree</a></tt><tt class="py-op">.</tt><tt id="link-3854" class="py-name" targets="Function lxml.etree.use_global_python_log()=lxml.etree-module.html#use_global_python_log"><a title="lxml.etree.use_global_python_log" class="py-name" href="#" onclick="return doclink('link-3854', 'use_global_python_log', 'link-3854');">use_global_python_log</a></tt><tt class="py-op">(</tt><tt class="py-name">Logger</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L3757"></a><tt class="py-lineno">3757</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;&lt;/c&gt;&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L3758"></a><tt class="py-lineno">3758</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L3759"></a><tt class="py-lineno">3759</tt>  <tt class="py-line">            <tt id="link-3855" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3784', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L3705"></a><tt class="py-lineno">3705</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
-<a name="L3706"></a><tt class="py-lineno">3706</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L3707"></a><tt class="py-lineno">3707</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3785" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3785', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3708"></a><tt class="py-lineno">3708</tt>  <tt class="py-line"> </tt>
-<a name="L3709"></a><tt class="py-lineno">3709</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3786" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3786', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3787" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3787', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3710"></a><tt class="py-lineno">3710</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-3788" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3788', 'message', 'link-3760');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3711"></a><tt class="py-lineno">3711</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3789" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3789', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3790" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3790', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3712"></a><tt class="py-lineno">3712</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':PARSER:'</tt>   <tt class="py-keyword">in</tt> <tt id="link-3791" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3791', 'message', 'link-3760');">message</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3713"></a><tt class="py-lineno">3713</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3792" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3792', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3793" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3793', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3714"></a><tt class="py-lineno">3714</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':ERR_TAG_NAME_MISMATCH:'</tt> <tt class="py-keyword">in</tt> <tt id="link-3794" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3794', 'message', 'link-3760');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3715"></a><tt class="py-lineno">3715</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3795" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3795', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3796" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3796', 'message', 'link-3760');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
-<a name="L3716"></a><tt class="py-lineno">3716</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':1:15:'</tt> <tt class="py-keyword">in</tt> <tt id="link-3797" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3797', 'message', 'link-3760');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L3717"></a><tt class="py-lineno">3717</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L3718"></a><tt class="py-lineno">3718</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L3719"></a><tt class="py-lineno">3719</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L3720"></a><tt class="py-lineno">3720</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3798" class="py-name" targets="Class lxml.tests.test_etree.ETreeOnlyTestCase=lxml.tests.test_etree.ETreeOnlyTestCase-class.html"><a title="lxml.tests.test_etree.ETreeOnlyTestCase" class="py-name" href="#" onclick="return doclink('link-3798', 'ETreeOnlyTestCase', 'link-3798');">ETreeOnlyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3721"></a><tt class="py-lineno">3721</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3799" class="py-name" targets="Class lxml.tests.test_etree.ETreeXIncludeTestCase=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ETreeXIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-3799', 'ETreeXIncludeTestCase', 'link-3799');">ETreeXIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3722"></a><tt class="py-lineno">3722</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3800" class="py-name" targets="Class lxml.tests.test_etree.ElementIncludeTestCase=lxml.tests.test_etree.ElementIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ElementIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-3800', 'ElementIncludeTestCase', 'link-3800');">ElementIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3723"></a><tt class="py-lineno">3723</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3801" class="py-name" targets="Class lxml.tests.test_etree.ETreeC14NTestCase=lxml.tests.test_etree.ETreeC14NTestCase-class.html"><a title="lxml.tests.test_etree.ETreeC14NTestCase" class="py-name" href="#" onclick="return doclink('link-3801', 'ETreeC14NTestCase', 'link-3801');">ETreeC14NTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3724"></a><tt class="py-lineno">3724</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3802" class="py-name" targets="Class lxml.tests.test_etree.ETreeWriteTestCase=lxml.tests.test_etree.ETreeWriteTestCase-class.html"><a title="lxml.tests.test_etree.ETreeWriteTestCase" class="py-name" href="#" onclick="return doclink('link-3802', 'ETreeWriteTestCase', 'link-3802');">ETreeWriteTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3725"></a><tt class="py-lineno">3725</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3803" class="py-name" targets="Class lxml.tests.test_etree.ETreeErrorLogTest=lxml.tests.test_etree.ETreeErrorLogTest-class.html"><a title="lxml.tests.test_etree.ETreeErrorLogTest" class="py-name" href="#" onclick="return doclink('link-3803', 'ETreeErrorLogTest', 'link-3803');">ETreeErrorLogTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3726"></a><tt class="py-lineno">3726</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L3727"></a><tt class="py-lineno">3727</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3804" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3804', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/tutorial.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3728"></a><tt class="py-lineno">3728</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L3729"></a><tt class="py-lineno">3729</tt>  <tt class="py-line">        <tt class="py-comment"># now requires the 'with' statement</tt> </tt>
-<a name="L3730"></a><tt class="py-lineno">3730</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L3731"></a><tt class="py-lineno">3731</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt id="link-3805" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3805', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/api.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3732"></a><tt class="py-lineno">3732</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L3733"></a><tt class="py-lineno">3733</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3806" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3806', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/FAQ.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3734"></a><tt class="py-lineno">3734</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L3735"></a><tt class="py-lineno">3735</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3807" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3807', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/parsing.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3736"></a><tt class="py-lineno">3736</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L3737"></a><tt class="py-lineno">3737</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3808" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3808', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/resolvers.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L3738"></a><tt class="py-lineno">3738</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L3739"></a><tt class="py-lineno">3739</tt>  <tt class="py-line"> </tt>
-<a name="L3740"></a><tt class="py-lineno">3740</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
-<a name="L3741"></a><tt class="py-lineno">3741</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
-<a name="L3742"></a><tt class="py-lineno">3742</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-3855', 'parse', 'link-749');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
+<a name="L3760"></a><tt class="py-lineno">3760</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt><tt class="py-op">:</tt> </tt>
+<a name="L3761"></a><tt class="py-lineno">3761</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L3762"></a><tt class="py-lineno">3762</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-3856" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-3856', 'close', 'link-949');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3763"></a><tt class="py-lineno">3763</tt>  <tt class="py-line"> </tt>
+<a name="L3764"></a><tt class="py-lineno">3764</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3857" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3857', 'message', 'link-3831');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3858" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3858', 'message', 'link-3831');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L3765"></a><tt class="py-lineno">3765</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">'mismatch'</tt> <tt class="py-keyword">in</tt> <tt id="link-3859" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3859', 'message', 'link-3831');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3766"></a><tt class="py-lineno">3766</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3860" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3860', 'message', 'link-3831');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3861" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3861', 'message', 'link-3831');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L3767"></a><tt class="py-lineno">3767</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':PARSER:'</tt>   <tt class="py-keyword">in</tt> <tt id="link-3862" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3862', 'message', 'link-3831');">message</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3768"></a><tt class="py-lineno">3768</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3863" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3863', 'message', 'link-3831');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3864" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3864', 'message', 'link-3831');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L3769"></a><tt class="py-lineno">3769</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':ERR_TAG_NAME_MISMATCH:'</tt> <tt class="py-keyword">in</tt> <tt id="link-3865" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3865', 'message', 'link-3831');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3770"></a><tt class="py-lineno">3770</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt id="link-3866" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3866', 'message', 'link-3831');">message</a></tt> <tt class="py-keyword">for</tt> <tt id="link-3867" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3867', 'message', 'link-3831');">message</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">messages</tt> </tt>
+<a name="L3771"></a><tt class="py-lineno">3771</tt>  <tt class="py-line">                       <tt class="py-keyword">if</tt> <tt class="py-string">':1:15:'</tt> <tt class="py-keyword">in</tt> <tt id="link-3868" class="py-name"><a title="lxml.etree._LogEntry.message" class="py-name" href="#" onclick="return doclink('link-3868', 'message', 'link-3831');">message</a></tt> <tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L3772"></a><tt class="py-lineno">3772</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L3773"></a><tt class="py-lineno">3773</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_etree-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L3774"></a><tt class="py-lineno">3774</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L3775"></a><tt class="py-lineno">3775</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3869" class="py-name" targets="Class lxml.tests.test_etree.ETreeOnlyTestCase=lxml.tests.test_etree.ETreeOnlyTestCase-class.html"><a title="lxml.tests.test_etree.ETreeOnlyTestCase" class="py-name" href="#" onclick="return doclink('link-3869', 'ETreeOnlyTestCase', 'link-3869');">ETreeOnlyTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3776"></a><tt class="py-lineno">3776</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3870" class="py-name" targets="Class lxml.tests.test_etree.ETreeXIncludeTestCase=lxml.tests.test_etree.ETreeXIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ETreeXIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-3870', 'ETreeXIncludeTestCase', 'link-3870');">ETreeXIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3777"></a><tt class="py-lineno">3777</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3871" class="py-name" targets="Class lxml.tests.test_etree.ElementIncludeTestCase=lxml.tests.test_etree.ElementIncludeTestCase-class.html"><a title="lxml.tests.test_etree.ElementIncludeTestCase" class="py-name" href="#" onclick="return doclink('link-3871', 'ElementIncludeTestCase', 'link-3871');">ElementIncludeTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3778"></a><tt class="py-lineno">3778</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3872" class="py-name" targets="Class lxml.tests.test_etree.ETreeC14NTestCase=lxml.tests.test_etree.ETreeC14NTestCase-class.html"><a title="lxml.tests.test_etree.ETreeC14NTestCase" class="py-name" href="#" onclick="return doclink('link-3872', 'ETreeC14NTestCase', 'link-3872');">ETreeC14NTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3779"></a><tt class="py-lineno">3779</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3873" class="py-name" targets="Class lxml.tests.test_etree.ETreeWriteTestCase=lxml.tests.test_etree.ETreeWriteTestCase-class.html"><a title="lxml.tests.test_etree.ETreeWriteTestCase" class="py-name" href="#" onclick="return doclink('link-3873', 'ETreeWriteTestCase', 'link-3873');">ETreeWriteTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3780"></a><tt class="py-lineno">3780</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-3874" class="py-name" targets="Class lxml.tests.test_etree.ETreeErrorLogTest=lxml.tests.test_etree.ETreeErrorLogTest-class.html"><a title="lxml.tests.test_etree.ETreeErrorLogTest" class="py-name" href="#" onclick="return doclink('link-3874', 'ETreeErrorLogTest', 'link-3874');">ETreeErrorLogTest</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3781"></a><tt class="py-lineno">3781</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L3782"></a><tt class="py-lineno">3782</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3875" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3875', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/tutorial.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3783"></a><tt class="py-lineno">3783</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">version_info</tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">6</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L3784"></a><tt class="py-lineno">3784</tt>  <tt class="py-line">        <tt class="py-comment"># now requires the 'with' statement</tt> </tt>
+<a name="L3785"></a><tt class="py-lineno">3785</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L3786"></a><tt class="py-lineno">3786</tt>  <tt class="py-line">            <tt class="py-op">[</tt><tt id="link-3876" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3876', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/api.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3787"></a><tt class="py-lineno">3787</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L3788"></a><tt class="py-lineno">3788</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3877" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3877', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/FAQ.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3789"></a><tt class="py-lineno">3789</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L3790"></a><tt class="py-lineno">3790</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3878" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3878', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/parsing.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3791"></a><tt class="py-lineno">3791</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L3792"></a><tt class="py-lineno">3792</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-3879" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-3879', 'make_doctest', 'link-17');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/resolvers.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L3793"></a><tt class="py-lineno">3793</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L3794"></a><tt class="py-lineno">3794</tt>  <tt class="py-line"> </tt>
+<a name="L3795"></a><tt class="py-lineno">3795</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L3796"></a><tt class="py-lineno">3796</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
+<a name="L3797"></a><tt class="py-lineno">3797</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -9532,7 +9697,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:11 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2c097ed9f499099ada4d33a39a425c3fd00ab93c..333cc114cdf61200b898a75c7323084f03ed9019 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1e2f4a68a80147f5fa332c0619f790b532a028e4..efef02b49727219f76e9282bec5754c75bd609eb 100644 (file)
@@ -402,7 +402,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6c96868cafe9eafad984b80252f1fd9299124cf2..7805baba12cbc53ee76d7569523b708864605e64 100644 (file)
@@ -1636,6 +1636,22 @@ Tests only for etree, not ElementTree
         </tr>
       </table>
       
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_append_recursive_error"></a><span class="summary-sig-name">test_append_recursive_error</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_append_recursive_error">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
     </td>
   </tr>
 <tr>
@@ -1668,6 +1684,38 @@ Tests only for etree, not ElementTree
         </tr>
       </table>
       
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_addprevious_noops"></a><span class="summary-sig-name">test_addprevious_noops</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_addprevious_noops">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_addnext_noops"></a><span class="summary-sig-name">test_addnext_noops</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_addnext_noops">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
     </td>
   </tr>
 <tr>
@@ -3638,6 +3686,22 @@ Tests only for etree, not ElementTree
         </tr>
       </table>
       
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_element_refcycle"></a><span class="summary-sig-name">test_element_refcycle</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_etree-pysrc.html#ETreeOnlyTestCase.test_element_refcycle">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
     </td>
   </tr>
 <tr class="private">
@@ -3912,7 +3976,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4498b73657e8616d62afcd8e7c260bf76101846b..0c8cc52f060a6fbc1cada5a43dd56933f798c921 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0391e0eeeff288d127cfcc136c39423ed3ec02e0..2e4c6a4a0b62aecee12b04982834bc718506d265 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 107fac9f0f637d3a9ae92ee8ab10844af10db779..a48c63aecf8bfb2593464b8a0d7c38bcd8e9cb56 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 560c8301f98e0a5cda7789cb3e5083046e0768ed..03e382358e822e588bc32d1da45b8d8aa7465db9 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 0a0d158211201afc4067fdf842025821448002d7..49bccc6a1a82e6be01bd40a7534823e49c545ad5 100644 (file)
@@ -232,7 +232,7 @@ HTML parser test cases for etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index edbc9362657c16a5e64ed96261c44c6cd27e94da..dee02f01ed4f946b5da7b0c677d1c4638419c2f0 100644 (file)
@@ -1278,7 +1278,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 7d74109fc8d88b8fce432313c15cbf8b7ccf3cc9..3790094fd9203ac7a97ddb309de690b0b53131f1 100644 (file)
@@ -1004,7 +1004,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ed220f89962514d3ded2d3a8ec2ca8bf19a0c0d0..ea14e20612323d25e8d77b0ad9d5e9230e383507 100644 (file)
@@ -223,7 +223,7 @@ Web IO test cases that need Python 2.5+ (wsgiref)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bfaf3e60e82783e232b284f0c28ad22220d20abc..7cf3e967fc8d83f837055ceaf79604fb08e2e5da 100644 (file)
@@ -447,7 +447,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:13 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9bc253f8730706e56ef610da1a64564b235d7b38..dc3e35fdad817760fd5f7f375f0b068bd90e70e4 100644 (file)
@@ -468,7 +468,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f2efd38627959efa5554b7edaa4ce536c3526209..04127b41a94fda3efc15a5dfde8fb0ef917c24c1 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f87cb8ca994d5e27a834419472ee07632fd92c45..41ad53be7dc5fd744e1340fd3802510880673a99 100644 (file)
@@ -552,7 +552,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e0f646af35141741f07ed77c24714e103b34b129..646707d8272a3b3cf7504e6d176162370e0e9996 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2b07d8b40b3e756a7707b43efdc3a11962a36fa2..490fd3c563d37dcd5e2cecb2f20c137ad65ed030 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 71bbbce8bfe3b0bd8cfa4ef515f1f4b74625abe1..af21a395750b161a9119b3ee2846c237536ab1bc 100644 (file)
@@ -225,7 +225,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3aef49e7120a549a49dae55cbe57ae7f7f4c4c5e..3d31940ae4d8ab79ba9ab038fc4457be0d17f1ac 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 675f4bd3dfccd6b2e68c2834a77642eb9a5a2661..ad5064c668b3855c6847ac6e6e569d308cc40f26 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4f9dd3361e7b262d4957d35d07a665cdff1a8b9c..7f219e3e8b1300243108a176436986e2a3c06531 100644 (file)
@@ -238,7 +238,7 @@ IO test cases that apply to both etree and ElementTree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2a6dfb9ca087417d545b3b9802399f3b71b6de56..f62cd6912e3bbcf5721aa9597457e8d8c0c9f9e2 100644 (file)
@@ -146,21 +146,22 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-10', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">,</tt> <tt id="link-11" class="py-name" targets="Function lxml.tests.common_imports.fileInTestDir()=lxml.tests.common_imports-module.html#fileInTestDir"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-11', 'fileInTestDir', 'link-11');">fileInTestDir</a></tt><tt class="py-op">,</tt> <tt id="link-12" class="py-name" targets="Function lxml.tests.common_imports._str()=lxml.tests.common_imports-module.html#_str"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-12', '_str', 'link-12');">_str</a></tt><tt class="py-op">,</tt> <tt id="link-13" class="py-name" targets="Function lxml.tests.common_imports._bytes()=lxml.tests.common_imports-module.html#_bytes"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-13', '_bytes', 'link-13');">_bytes</a></tt> </tt>
 <a name="L15"></a><tt class="py-lineno"> 15</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-14" class="py-name"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-14', 'common_imports', 'link-8');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-15" class="py-name" targets="Class lxml.tests.common_imports.SillyFileLike=lxml.tests.common_imports.SillyFileLike-class.html"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-15', 'SillyFileLike', 'link-15');">SillyFileLike</a></tt><tt class="py-op">,</tt> <tt id="link-16" class="py-name" targets="Class lxml.tests.common_imports.LargeFileLike=lxml.tests.common_imports.LargeFileLike-class.html"><a title="lxml.tests.common_imports.LargeFileLike" class="py-name" href="#" onclick="return doclink('link-16', 'LargeFileLike', 'link-16');">LargeFileLike</a></tt><tt class="py-op">,</tt> <tt id="link-17" class="py-name" targets="Class lxml.tests.common_imports.HelperTestCase=lxml.tests.common_imports.HelperTestCase-class.html"><a title="lxml.tests.common_imports.HelperTestCase" class="py-name" href="#" onclick="return doclink('link-17', 'HelperTestCase', 'link-17');">HelperTestCase</a></tt> </tt>
-<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-18" class="py-name"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-18', 'common_imports', 'link-8');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Function lxml.tests.common_imports.read_file()=lxml.tests.common_imports-module.html#read_file"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-19', 'read_file', 'link-19');">read_file</a></tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name" targets="Function lxml.tests.common_imports.write_to_file()=lxml.tests.common_imports-module.html#write_to_file"><a title="lxml.tests.common_imports.write_to_file" class="py-name" href="#" onclick="return doclink('link-20', 'write_to_file', 'link-20');">write_to_file</a></tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt>  <tt class="py-line"><tt class="py-keyword">from</tt> <tt id="link-18" class="py-name"><a title="lxml.tests.common_imports" class="py-name" href="#" onclick="return doclink('link-18', 'common_imports', 'link-8');">common_imports</a></tt> <tt class="py-keyword">import</tt> <tt id="link-19" class="py-name" targets="Function lxml.tests.common_imports.read_file()=lxml.tests.common_imports-module.html#read_file"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-19', 'read_file', 'link-19');">read_file</a></tt><tt class="py-op">,</tt> <tt id="link-20" class="py-name" targets="Function lxml.tests.common_imports.write_to_file()=lxml.tests.common_imports-module.html#write_to_file"><a title="lxml.tests.common_imports.write_to_file" class="py-name" href="#" onclick="return doclink('link-20', 'write_to_file', 'link-20');">write_to_file</a></tt><tt class="py-op">,</tt> <tt class="py-name">BytesIO</tt> </tt>
 <a name="L17"></a><tt class="py-lineno"> 17</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase"></a><div id="_IOTestCaseBase-def"><a name="L18"></a><tt class="py-lineno"> 18</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase-toggle" onclick="return toggle('_IOTestCaseBase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html">_IOTestCaseBase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_IOTestCaseBase-expanded"><a name="L19"></a><tt class="py-lineno"> 19</tt>  <tt class="py-line">    <tt class="py-docstring">"""(c)ElementTree compatibility for IO functions/methods</tt> </tt>
-<a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
-<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line">    <tt id="link-21" class="py-name"><a title="lxml.etree
+<a name="L18"></a><tt class="py-lineno"> 18</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase"></a><div id="_IOTestCaseBase-def"><a name="L19"></a><tt class="py-lineno"> 19</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase-toggle" onclick="return toggle('_IOTestCaseBase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html">_IOTestCaseBase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="_IOTestCaseBase-expanded"><a name="L20"></a><tt class="py-lineno"> 20</tt>  <tt class="py-line">    <tt class="py-docstring">"""(c)ElementTree compatibility for IO functions/methods</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt>  <tt class="py-line"><tt class="py-docstring">    """</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">    <tt id="link-21" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-21', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L22"></a><tt class="py-lineno"> 22</tt>  <tt class="py-line">     </tt>
-<a name="_IOTestCaseBase.setUp"></a><div id="_IOTestCaseBase.setUp-def"><a name="L23"></a><tt class="py-lineno"> 23</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.setUp-toggle" onclick="return toggle('_IOTestCaseBase.setUp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#setUp">setUp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.setUp-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.setUp-expanded"><a name="L24"></a><tt class="py-lineno"> 24</tt>  <tt class="py-line">        <tt class="py-docstring">"""Setting up a minimal tree</tt> </tt>
-<a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
-<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-22', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="lxml.etree
+<a name="L23"></a><tt class="py-lineno"> 23</tt>  <tt class="py-line">     </tt>
+<a name="_IOTestCaseBase.setUp"></a><div id="_IOTestCaseBase.setUp-def"><a name="L24"></a><tt class="py-lineno"> 24</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.setUp-toggle" onclick="return toggle('_IOTestCaseBase.setUp');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#setUp">setUp</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.setUp-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.setUp-expanded"><a name="L25"></a><tt class="py-lineno"> 25</tt>  <tt class="py-line">        <tt class="py-docstring">"""Setting up a minimal tree</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt>  <tt class="py-line"><tt class="py-docstring">        """</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-22" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-22', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-23" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -168,33 +169,33 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-24', 'Element', 'link-24');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
-<a name="L27"></a><tt class="py-lineno"> 27</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="lxml.etree
+<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-25" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-25', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-26" class="py-name" targets="Method lxml.etree.XSLT.tostring()=lxml.etree.XSLT-class.html#tostring,Function lxml.etree.tostring()=lxml.etree-module.html#tostring"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-26', 'tostring', 'link-26');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-27', 'root', 'link-22');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L28"></a><tt class="py-lineno"> 28</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="lxml.etree
+<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-28" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-28', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-29', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-30" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-30', 'root', 'link-22');">root</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L29"></a><tt class="py-lineno"> 29</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_temp_dir</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkdtemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">         </tt>
-<a name="_IOTestCaseBase.tearDown"></a><div id="_IOTestCaseBase.tearDown-def"><a name="L31"></a><tt class="py-lineno"> 31</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.tearDown-toggle" onclick="return toggle('_IOTestCaseBase.tearDown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#tearDown">tearDown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.tearDown-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.tearDown-expanded"><a name="L32"></a><tt class="py-lineno"> 32</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-name">shutil</tt><tt class="py-op">.</tt><tt class="py-name">rmtree</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_temp_dir</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.getTestFilePath"></a><div id="_IOTestCaseBase.getTestFilePath-def"><a name="L35"></a><tt class="py-lineno"> 35</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.getTestFilePath-toggle" onclick="return toggle('_IOTestCaseBase.getTestFilePath');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#getTestFilePath">getTestFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.getTestFilePath-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.getTestFilePath-expanded"><a name="L36"></a><tt class="py-lineno"> 36</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-31', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_temp_dir</tt><tt class="py-op">,</tt> <tt id="link-32" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
+<a name="L30"></a><tt class="py-lineno"> 30</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_temp_dir</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkdtemp</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L31"></a><tt class="py-lineno"> 31</tt>  <tt class="py-line">         </tt>
+<a name="_IOTestCaseBase.tearDown"></a><div id="_IOTestCaseBase.tearDown-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.tearDown-toggle" onclick="return toggle('_IOTestCaseBase.tearDown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#tearDown">tearDown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.tearDown-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.tearDown-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt>  <tt class="py-line">        <tt class="py-name">gc</tt><tt class="py-op">.</tt><tt class="py-name">collect</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt>  <tt class="py-line">        <tt class="py-name">shutil</tt><tt class="py-op">.</tt><tt class="py-name">rmtree</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_temp_dir</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L35"></a><tt class="py-lineno"> 35</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.getTestFilePath"></a><div id="_IOTestCaseBase.getTestFilePath-def"><a name="L36"></a><tt class="py-lineno"> 36</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.getTestFilePath-toggle" onclick="return toggle('_IOTestCaseBase.getTestFilePath');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#getTestFilePath">getTestFilePath</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">name</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.getTestFilePath-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.getTestFilePath-expanded"><a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-31" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-31', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_temp_dir</tt><tt class="py-op">,</tt> <tt id="link-32" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
 lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-32', 'name', 'link-32');">name</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L37"></a><tt class="py-lineno"> 37</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.buildNodes"></a><div id="_IOTestCaseBase.buildNodes-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.buildNodes-toggle" onclick="return toggle('_IOTestCaseBase.buildNodes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#buildNodes">buildNodes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">children</tt><tt class="py-op">,</tt> <tt class="py-param">depth</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.buildNodes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.buildNodes-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt>  <tt class="py-line">        <tt id="link-33" class="py-name"><a title="lxml.etree.Element
+</div><a name="L38"></a><tt class="py-lineno"> 38</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.buildNodes"></a><div id="_IOTestCaseBase.buildNodes-def"><a name="L39"></a><tt class="py-lineno"> 39</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.buildNodes-toggle" onclick="return toggle('_IOTestCaseBase.buildNodes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#buildNodes">buildNodes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">children</tt><tt class="py-op">,</tt> <tt class="py-param">depth</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.buildNodes-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.buildNodes-expanded"><a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">        <tt id="link-33" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-33', 'Element', 'link-24');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-34" class="py-name"><a title="lxml.etree
@@ -205,19 +206,19 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-35', 'Element', 'link-24');">Element</a></tt> </tt>
-<a name="L40"></a><tt class="py-lineno"> 40</tt>  <tt class="py-line">         </tt>
-<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">depth</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
-<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
-<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">children</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="lxml.etree.Element
+<a name="L41"></a><tt class="py-lineno"> 41</tt>  <tt class="py-line">         </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">depth</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">children</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">            <tt class="py-name">new_element</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-36', 'Element', 'link-24');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'element_%s_%s'</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">depth</tt><tt class="py-op">,</tt> <tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L45"></a><tt class="py-lineno"> 45</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method lxml.tests.test_io._IOTestCaseBase.buildNodes()=lxml.tests.test_io._IOTestCaseBase-class.html#buildNodes"><a title="lxml.tests.test_io._IOTestCaseBase.buildNodes" class="py-name" href="#" onclick="return doclink('link-37', 'buildNodes', 'link-37');">buildNodes</a></tt><tt class="py-op">(</tt><tt class="py-name">new_element</tt><tt class="py-op">,</tt> <tt class="py-name">children</tt><tt class="py-op">,</tt> <tt class="py-name">depth</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-38', 'append', 'link-38');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_tree_io"></a><div id="_IOTestCaseBase.test_tree_io-def"><a name="L48"></a><tt class="py-lineno"> 48</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_tree_io-toggle" onclick="return toggle('_IOTestCaseBase.test_tree_io');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io">test_tree_io</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_tree_io-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_tree_io-expanded"><a name="L49"></a><tt class="py-lineno"> 49</tt>  <tt class="py-line">        <tt id="link-39" class="py-name"><a title="lxml.etree.Element
+<a name="L46"></a><tt class="py-lineno"> 46</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-37" class="py-name" targets="Method lxml.tests.test_io._IOTestCaseBase.buildNodes()=lxml.tests.test_io._IOTestCaseBase-class.html#buildNodes"><a title="lxml.tests.test_io._IOTestCaseBase.buildNodes" class="py-name" href="#" onclick="return doclink('link-37', 'buildNodes', 'link-37');">buildNodes</a></tt><tt class="py-op">(</tt><tt class="py-name">new_element</tt><tt class="py-op">,</tt> <tt class="py-name">children</tt><tt class="py-op">,</tt> <tt class="py-name">depth</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt>  <tt class="py-line">            <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-38" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-38', 'append', 'link-38');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">new_element</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L48"></a><tt class="py-lineno"> 48</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_tree_io"></a><div id="_IOTestCaseBase.test_tree_io-def"><a name="L49"></a><tt class="py-lineno"> 49</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_tree_io-toggle" onclick="return toggle('_IOTestCaseBase.test_tree_io');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io">test_tree_io</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_tree_io-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_tree_io-expanded"><a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt id="link-39" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-39', 'Element', 'link-24');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="lxml.etree
@@ -228,7 +229,7 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-41', 'Element', 'link-24');">Element</a></tt> </tt>
-<a name="L50"></a><tt class="py-lineno"> 50</tt>  <tt class="py-line">        <tt id="link-42" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">        <tt id="link-42" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-42', 'ElementTree', 'link-10');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -237,48 +238,48 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-43', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-44', 'ElementTree', 'link-10');">ElementTree</a></tt> </tt>
-<a name="L51"></a><tt class="py-lineno"> 51</tt>  <tt class="py-line">     </tt>
-<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">        <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name"><a title="lxml.etree.Element
+<a name="L52"></a><tt class="py-lineno"> 52</tt>  <tt class="py-line">     </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt id="link-45" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-45', 'Element', 'link-24');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'top'</tt><tt class="py-op">)</tt> </tt>
-<a name="L53"></a><tt class="py-lineno"> 53</tt>  <tt class="py-line">        <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><a title="lxml.etree.QName.text
+<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-46" class="py-name" targets="Variable lxml.etree.QName.text=lxml.etree.QName-class.html#text,Variable lxml.etree._Element.text=lxml.etree._Element-class.html#text,Variable lxml.etree._Entity.text=lxml.etree._Entity-class.html#text,Variable lxml.objectify.ObjectifiedElement.text=lxml.objectify.ObjectifiedElement-class.html#text,Variable xml.etree.ElementTree.Element.text=xml.etree.ElementTree.Element-class.html#text"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-46', 'text', 'link-46');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-47', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"qwrtio&#252;&#246;&#228;\uAABB"</tt><tt class="py-op">)</tt> </tt>
-<a name="L54"></a><tt class="py-lineno"> 54</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-48', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
-<a name="L55"></a><tt class="py-lineno"> 55</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.buildNodes" class="py-name" href="#" onclick="return doclink('link-49', 'buildNodes', 'link-37');">buildNodes</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method lxml.tests.test_io._IOTestCaseBase.getTestFilePath()=lxml.tests.test_io._IOTestCaseBase-class.html#getTestFilePath"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-50', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method lxml.etree._ElementTree.write()=lxml.etree._ElementTree-class.html#write"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-51', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-52" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-52', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method lxml.etree.TreeBuilder.close()=lxml.etree.TreeBuilder-class.html#close,Method lxml.etree._FeedParser.close()=lxml.etree._FeedParser-class.html#close"><a title="lxml.etree.TreeBuilder.close
+<a name="L56"></a><tt class="py-lineno"> 56</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-49" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.buildNodes" class="py-name" href="#" onclick="return doclink('link-49', 'buildNodes', 'link-37');">buildNodes</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-50" class="py-name" targets="Method lxml.tests.test_io._IOTestCaseBase.getTestFilePath()=lxml.tests.test_io._IOTestCaseBase-class.html#getTestFilePath"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-50', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-51" class="py-name" targets="Method lxml.etree._ElementTree.write()=lxml.etree._ElementTree-class.html#write"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-51', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-52" class="py-name" targets="Variable lxml.etree.DocInfo.encoding=lxml.etree.DocInfo-class.html#encoding"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-52', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-53" class="py-name" targets="Method lxml.etree.TreeBuilder.close()=lxml.etree.TreeBuilder-class.html#close,Method lxml.etree._FeedParser.close()=lxml.etree._FeedParser-class.html#close"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-53', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L59"></a><tt class="py-lineno"> 59</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-54', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L60"></a><tt class="py-lineno"> 60</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-54" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-54', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-55', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L61"></a><tt class="py-lineno"> 61</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-56" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-56', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L62"></a><tt class="py-lineno"> 62</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-57', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump2.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-58', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-59" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-59', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
-<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L63"></a><tt class="py-lineno"> 63</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-57" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-57', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump2.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-58" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-58', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-59" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-59', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'UTF-8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-60" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-60', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L65"></a><tt class="py-lineno"> 65</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-61', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-name">data1</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
+<a name="L66"></a><tt class="py-lineno"> 66</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-61" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-61', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">data1</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-62" class="py-name" targets="Method lxml.tests.common_imports.LargeFileLike.read()=lxml.tests.common_imports.LargeFileLike-class.html#read,Method lxml.tests.common_imports.SillyFileLike.read()=lxml.tests.common_imports.SillyFileLike-class.html#read"><a title="lxml.tests.common_imports.LargeFileLike.read
 lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-62', 'read', 'link-62');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L67"></a><tt class="py-lineno"> 67</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-63" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-63', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L68"></a><tt class="py-lineno"> 68</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-64', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump2.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-name">data2</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+<a name="L69"></a><tt class="py-lineno"> 69</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-64" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-64', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump2.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-name">data2</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
 lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-65', 'read', 'link-62');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L70"></a><tt class="py-lineno"> 70</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-66', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L71"></a><tt class="py-lineno"> 71</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">data1</tt><tt class="py-op">,</tt> <tt class="py-name">data2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_tree_io_latin1"></a><div id="_IOTestCaseBase.test_tree_io_latin1-def"><a name="L73"></a><tt class="py-lineno"> 73</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_tree_io_latin1-toggle" onclick="return toggle('_IOTestCaseBase.test_tree_io_latin1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_tree_io_latin1-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_tree_io_latin1-expanded"><a name="L74"></a><tt class="py-lineno"> 74</tt>  <tt class="py-line">        <tt id="link-67" class="py-name"><a title="lxml.etree.Element
+<a name="L72"></a><tt class="py-lineno"> 72</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">data1</tt><tt class="py-op">,</tt> <tt class="py-name">data2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L73"></a><tt class="py-lineno"> 73</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_tree_io_latin1"></a><div id="_IOTestCaseBase.test_tree_io_latin1-def"><a name="L74"></a><tt class="py-lineno"> 74</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_tree_io_latin1-toggle" onclick="return toggle('_IOTestCaseBase.test_tree_io_latin1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_tree_io_latin1">test_tree_io_latin1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_tree_io_latin1-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_tree_io_latin1-expanded"><a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt id="link-67" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-67', 'Element', 'link-24');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-68" class="py-name"><a title="lxml.etree
@@ -289,7 +290,7 @@ lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="retu
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-69', 'Element', 'link-24');">Element</a></tt> </tt>
-<a name="L75"></a><tt class="py-lineno"> 75</tt>  <tt class="py-line">        <tt id="link-70" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line">        <tt id="link-70" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-70', 'ElementTree', 'link-10');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-71" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
@@ -298,95 +299,95 @@ lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-71', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-72" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-72', 'ElementTree', 'link-10');">ElementTree</a></tt> </tt>
-<a name="L76"></a><tt class="py-lineno"> 76</tt>  <tt class="py-line"> </tt>
-<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line">        <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="lxml.etree.Element
+<a name="L77"></a><tt class="py-lineno"> 77</tt>  <tt class="py-line"> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-name">element</tt> <tt class="py-op">=</tt> <tt id="link-73" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
 xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-73', 'Element', 'link-24');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'top'</tt><tt class="py-op">)</tt> </tt>
-<a name="L78"></a><tt class="py-lineno"> 78</tt>  <tt class="py-line">        <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="lxml.etree.QName.text
+<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">element</tt><tt class="py-op">.</tt><tt id="link-74" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
 xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-74', 'text', 'link-46');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-75" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-75', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"qwrtio&#252;&#246;&#228;&#223;&#195;&#161;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L79"></a><tt class="py-lineno"> 79</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-76" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-76', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt> </tt>
-<a name="L80"></a><tt class="py-lineno"> 80</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.buildNodes" class="py-name" href="#" onclick="return doclink('link-77', 'buildNodes', 'link-37');">buildNodes</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-78', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-79', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-80" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-80', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L81"></a><tt class="py-lineno"> 81</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-77" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.buildNodes" class="py-name" href="#" onclick="return doclink('link-77', 'buildNodes', 'link-37');">buildNodes</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">,</tt> <tt class="py-number">10</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-78" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-78', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-79" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-79', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-80" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-80', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-81" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-81', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L84"></a><tt class="py-lineno"> 84</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-82', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L85"></a><tt class="py-lineno"> 85</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-82" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-82', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-83" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-83', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">=</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L86"></a><tt class="py-lineno"> 86</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-84" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-84', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L87"></a><tt class="py-lineno"> 87</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-85', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump2.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-86', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-87" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-87', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
-<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L88"></a><tt class="py-lineno"> 88</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-85" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-85', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump2.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-86" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-86', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">,</tt> <tt id="link-87" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-87', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'iso-8859-1'</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-88" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-88', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L90"></a><tt class="py-lineno"> 90</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-89', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">data1</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+<a name="L91"></a><tt class="py-lineno"> 91</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-89" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-89', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">data1</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-90" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
 lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-90', 'read', 'link-62');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L92"></a><tt class="py-lineno"> 92</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-91" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-91', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L93"></a><tt class="py-lineno"> 93</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-92', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump2.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-name">data2</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+<a name="L94"></a><tt class="py-lineno"> 94</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-92" class="py-name"><a title="lxml.tests.test_io._IOTestCaseBase.getTestFilePath" class="py-name" href="#" onclick="return doclink('link-92', 'getTestFilePath', 'link-50');">getTestFilePath</a></tt><tt class="py-op">(</tt><tt class="py-string">'testdump2.xml'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-name">data2</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-93" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
 lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-93', 'read', 'link-62');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L95"></a><tt class="py-lineno"> 95</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-94" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-94', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L96"></a><tt class="py-lineno"> 96</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">data1</tt><tt class="py-op">,</tt> <tt class="py-name">data2</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">         </tt>
-<a name="_IOTestCaseBase.test_write_filename"></a><div id="_IOTestCaseBase.test_write_filename-def"><a name="L98"></a><tt class="py-lineno"> 98</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_write_filename-toggle" onclick="return toggle('_IOTestCaseBase.test_write_filename');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_filename">test_write_filename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_write_filename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_write_filename-expanded"><a name="L99"></a><tt class="py-lineno"> 99</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree  supports filename strings as write argument</tt> </tt>
-<a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">         </tt>
-<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">        <tt id="link-95" class="py-name" targets="Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+<a name="L97"></a><tt class="py-lineno"> 97</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">data1</tt><tt class="py-op">,</tt> <tt class="py-name">data2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L98"></a><tt class="py-lineno"> 98</tt>  <tt class="py-line">         </tt>
+<a name="_IOTestCaseBase.test_write_filename"></a><div id="_IOTestCaseBase.test_write_filename-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_write_filename-toggle" onclick="return toggle('_IOTestCaseBase.test_write_filename');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_filename">test_write_filename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_write_filename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_write_filename-expanded"><a name="L100"></a><tt class="py-lineno">100</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree  supports filename strings as write argument</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt>  <tt class="py-line">         </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt id="link-95" class="py-name" targets="Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker-class.html#handle,Method lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle()=lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker-class.html#handle"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-95', 'handle', 'link-95');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-96" class="py-name" targets="Variable lxml.etree._LogEntry.filename=lxml.etree._LogEntry-class.html#filename"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-96', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">".xml"</tt><tt class="py-op">)</tt> </tt>
-<a name="L102"></a><tt class="py-lineno">102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-97', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-98', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-99', 'read_file', 'link-19');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-100" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-100', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-101', 'replace', 'link-101');">replace</a></tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-102', '_bytes', 'link-13');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-103" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-103', '_bytes', 'link-13');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">                             <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">)</tt> </tt>
-<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L103"></a><tt class="py-lineno">103</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-97" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-97', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt id="link-98" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-98', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-99" class="py-name"><a title="lxml.tests.common_imports.read_file" class="py-name" href="#" onclick="return doclink('link-99', 'read_file', 'link-19');">read_file</a></tt><tt class="py-op">(</tt><tt id="link-100" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-100', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-101" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-101', 'replace', 'link-101');">replace</a></tt><tt class="py-op">(</tt><tt id="link-102" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-102', '_bytes', 'link-13');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt id="link-103" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-103', '_bytes', 'link-13');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt>  <tt class="py-line">                             <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">)</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-104" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-104', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt id="link-105" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-105', 'handle', 'link-95');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L108"></a><tt class="py-lineno">108</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
+<a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-106" class="py-name" targets="Method lxml.etree._Element.remove()=lxml.etree._Element-class.html#remove,Method lxml.html.CheckboxValues.remove()=lxml.html.CheckboxValues-class.html#remove,Method lxml.html.MultipleSelectOptions.remove()=lxml.html.MultipleSelectOptions-class.html#remove"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-106', 'remove', 'link-106');">remove</a></tt><tt class="py-op">(</tt><tt id="link-107" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-107', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L109"></a><tt class="py-lineno">109</tt>  <tt class="py-line">         </tt>
-<a name="_IOTestCaseBase.test_write_invalid_filename"></a><div id="_IOTestCaseBase.test_write_invalid_filename-def"><a name="L110"></a><tt class="py-lineno">110</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_write_invalid_filename-toggle" onclick="return toggle('_IOTestCaseBase.test_write_invalid_filename');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_invalid_filename">test_write_invalid_filename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_write_invalid_filename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_write_invalid_filename-expanded"><a name="L111"></a><tt class="py-lineno">111</tt>  <tt class="py-line">        <tt id="link-108" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-108', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-109', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt> </tt>
-<a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-110', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'hopefullynonexistingpathname'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-string">'invalid_file.xml'</tt><tt class="py-op">)</tt> </tt>
-<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-111', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt id="link-112" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-112', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
-<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt> </tt>
-<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">                <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-string">"writing to an invalid file path should fail"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_module_parse_gzipobject"></a><div id="_IOTestCaseBase.test_module_parse_gzipobject-def"><a name="L122"></a><tt class="py-lineno">122</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_gzipobject-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_gzipobject');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_gzipobject">test_module_parse_gzipobject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_module_parse_gzipobject-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_gzipobject-expanded"><a name="L123"></a><tt class="py-lineno">123</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree supports gzip instance as parse argument</tt> </tt>
-<a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt id="link-113" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+</div><a name="L110"></a><tt class="py-lineno">110</tt>  <tt class="py-line">         </tt>
+<a name="_IOTestCaseBase.test_write_invalid_filename"></a><div id="_IOTestCaseBase.test_write_invalid_filename-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_write_invalid_filename-toggle" onclick="return toggle('_IOTestCaseBase.test_write_invalid_filename');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_write_invalid_filename">test_write_invalid_filename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_write_invalid_filename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_write_invalid_filename-expanded"><a name="L112"></a><tt class="py-lineno">112</tt>  <tt class="py-line">        <tt id="link-108" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-108', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-109" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-109', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-110" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-110', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-string">'hopefullynonexistingpathname'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt>  <tt class="py-line">            <tt class="py-string">'invalid_file.xml'</tt><tt class="py-op">)</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-111" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-111', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt id="link-112" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-112', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">IOError</tt><tt class="py-op">:</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt>  <tt class="py-line">                <tt class="py-name">False</tt><tt class="py-op">,</tt> <tt class="py-string">"writing to an invalid file path should fail"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L122"></a><tt class="py-lineno">122</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_module_parse_gzipobject"></a><div id="_IOTestCaseBase.test_module_parse_gzipobject-def"><a name="L123"></a><tt class="py-lineno">123</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_gzipobject-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_gzipobject');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_gzipobject">test_module_parse_gzipobject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_module_parse_gzipobject-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_gzipobject-expanded"><a name="L124"></a><tt class="py-lineno">124</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree supports gzip instance as parse argument</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt id="link-113" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-113', 'handle', 'link-95');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-114" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-114', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">".xml.gz"</tt><tt class="py-op">)</tt> </tt>
-<a name="L125"></a><tt class="py-lineno">125</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-115" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-115', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-116', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">)</tt> </tt>
-<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L126"></a><tt class="py-lineno">126</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-115" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-115', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-116" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-116', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">)</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-117" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-117', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L128"></a><tt class="py-lineno">128</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">            <tt class="py-name">f_gz</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-118', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="lxml.etree
+<a name="L129"></a><tt class="py-lineno">129</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt>  <tt class="py-line">            <tt class="py-name">f_gz</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-118" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-118', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-119" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -397,203 +398,203 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-120', 'parse', 'link-120');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f_gz</tt><tt class="py-op">)</tt> </tt>
-<a name="L131"></a><tt class="py-lineno">131</tt>  <tt class="py-line">            <tt class="py-name">f_gz</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-name">f_gz</tt><tt class="py-op">.</tt><tt id="link-121" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-121', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L132"></a><tt class="py-lineno">132</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="lxml.etree
+<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-122" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-122', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-123" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-123', 'tostring', 'link-26');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-124" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-124', 'getroot', 'link-124');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">)</tt> </tt>
-<a name="L133"></a><tt class="py-lineno">133</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L134"></a><tt class="py-lineno">134</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-125" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-125', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt id="link-126" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-126', 'handle', 'link-95');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L135"></a><tt class="py-lineno">135</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="lxml.etree._Element.remove
+<a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-127" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-127', 'remove', 'link-106');">remove</a></tt><tt class="py-op">(</tt><tt id="link-128" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-128', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L136"></a><tt class="py-lineno">136</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_class_parse_filename"></a><div id="_IOTestCaseBase.test_class_parse_filename-def"><a name="L137"></a><tt class="py-lineno">137</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_class_parse_filename-toggle" onclick="return toggle('_IOTestCaseBase.test_class_parse_filename');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename">test_class_parse_filename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_class_parse_filename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_class_parse_filename-expanded"><a name="L138"></a><tt class="py-lineno">138</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree class ElementTree has a 'parse' method that returns</tt> </tt>
-<a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-comment"># the root of the tree</tt> </tt>
-<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line"> </tt>
-<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line">        <tt class="py-comment"># parse from filename</tt> </tt>
-<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">         </tt>
-<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">        <tt id="link-129" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+</div><a name="L137"></a><tt class="py-lineno">137</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_class_parse_filename"></a><div id="_IOTestCaseBase.test_class_parse_filename-def"><a name="L138"></a><tt class="py-lineno">138</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_class_parse_filename-toggle" onclick="return toggle('_IOTestCaseBase.test_class_parse_filename');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename">test_class_parse_filename</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_class_parse_filename-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_class_parse_filename-expanded"><a name="L139"></a><tt class="py-lineno">139</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree class ElementTree has a 'parse' method that returns</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt>  <tt class="py-line">        <tt class="py-comment"># the root of the tree</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt>  <tt class="py-line"> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt>  <tt class="py-line">        <tt class="py-comment"># parse from filename</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt>  <tt class="py-line">         </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt id="link-129" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-129', 'handle', 'link-95');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-130" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-130', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">".xml"</tt><tt class="py-op">)</tt> </tt>
-<a name="L144"></a><tt class="py-lineno">144</tt>  <tt class="py-line">        <tt id="link-131" class="py-name"><a title="lxml.tests.common_imports.write_to_file" class="py-name" href="#" onclick="return doclink('link-131', 'write_to_file', 'link-20');">write_to_file</a></tt><tt class="py-op">(</tt><tt id="link-132" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-132', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="lxml.etree
+<a name="L145"></a><tt class="py-lineno">145</tt>  <tt class="py-line">        <tt id="link-131" class="py-name"><a title="lxml.tests.common_imports.write_to_file" class="py-name" href="#" onclick="return doclink('link-131', 'write_to_file', 'link-20');">write_to_file</a></tt><tt class="py-op">(</tt><tt id="link-132" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-132', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-133" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-133', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-134" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-134', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L147"></a><tt class="py-lineno">147</tt>  <tt class="py-line">            <tt id="link-135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-135', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">            <tt id="link-135" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-135', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-136" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-136', 'parse', 'link-120');">parse</a></tt><tt class="py-op">(</tt><tt id="link-137" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-137', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L148"></a><tt class="py-lineno">148</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.etree
+<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-138" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-138', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-139" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-139', 'tostring', 'link-26');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-140" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-140', 'root', 'link-22');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">)</tt> </tt>
-<a name="L149"></a><tt class="py-lineno">149</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L150"></a><tt class="py-lineno">150</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-141" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-141', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt id="link-142" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-142', 'handle', 'link-95');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L151"></a><tt class="py-lineno">151</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="lxml.etree._Element.remove
+<a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-143" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-143', 'remove', 'link-106');">remove</a></tt><tt class="py-op">(</tt><tt id="link-144" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-144', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L152"></a><tt class="py-lineno">152</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_class_parse_filename_remove_previous"></a><div id="_IOTestCaseBase.test_class_parse_filename_remove_previous-def"><a name="L153"></a><tt class="py-lineno">153</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_class_parse_filename_remove_previous-toggle" onclick="return toggle('_IOTestCaseBase.test_class_parse_filename_remove_previous');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename_remove_previous">test_class_parse_filename_remove_previous</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_class_parse_filename_remove_previous-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_class_parse_filename_remove_previous-expanded"><a name="L154"></a><tt class="py-lineno">154</tt>  <tt class="py-line">        <tt id="link-145" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+</div><a name="L153"></a><tt class="py-lineno">153</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_class_parse_filename_remove_previous"></a><div id="_IOTestCaseBase.test_class_parse_filename_remove_previous-def"><a name="L154"></a><tt class="py-lineno">154</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_class_parse_filename_remove_previous-toggle" onclick="return toggle('_IOTestCaseBase.test_class_parse_filename_remove_previous');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_filename_remove_previous">test_class_parse_filename_remove_previous</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_class_parse_filename_remove_previous-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_class_parse_filename_remove_previous-expanded"><a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt id="link-145" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-145', 'handle', 'link-95');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-146" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-146', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">".xml"</tt><tt class="py-op">)</tt> </tt>
-<a name="L155"></a><tt class="py-lineno">155</tt>  <tt class="py-line">        <tt id="link-147" class="py-name"><a title="lxml.tests.common_imports.write_to_file" class="py-name" href="#" onclick="return doclink('link-147', 'write_to_file', 'link-20');">write_to_file</a></tt><tt class="py-op">(</tt><tt id="link-148" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-148', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="lxml.etree
+<a name="L156"></a><tt class="py-lineno">156</tt>  <tt class="py-line">        <tt id="link-147" class="py-name"><a title="lxml.tests.common_imports.write_to_file" class="py-name" href="#" onclick="return doclink('link-147', 'write_to_file', 'link-20');">write_to_file</a></tt><tt class="py-op">(</tt><tt id="link-148" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-148', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">,</tt> <tt class="py-string">'wb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-149" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-149', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-150" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-150', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L158"></a><tt class="py-lineno">158</tt>  <tt class="py-line">            <tt id="link-151" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-151', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt id="link-151" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-151', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-152" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-152', 'parse', 'link-120');">parse</a></tt><tt class="py-op">(</tt><tt id="link-153" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-153', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L159"></a><tt class="py-lineno">159</tt>  <tt class="py-line">            <tt class="py-comment"># and now do it again; previous content should still be there</tt> </tt>
-<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">            <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L160"></a><tt class="py-lineno">160</tt>  <tt class="py-line">            <tt class="py-comment"># and now do it again; previous content should still be there</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">            <tt class="py-name">root2</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-154" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-154', 'parse', 'link-120');">parse</a></tt><tt class="py-op">(</tt><tt id="link-155" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-155', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L161"></a><tt class="py-lineno">161</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-156" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-156', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
+<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-156" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-156', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-157" class="py-name" targets="Variable lxml.etree._Comment.tag=lxml.etree._Comment-class.html#tag,Variable lxml.etree._Element.tag=lxml.etree._Element-class.html#tag,Variable lxml.etree._Entity.tag=lxml.etree._Entity-class.html#tag,Variable lxml.etree._ProcessingInstruction.tag=lxml.etree._ProcessingInstruction-class.html#tag,Function lxml.tests.test_xpathevaluator.tag()=lxml.tests.test_xpathevaluator-module.html#tag,Variable xml.etree.ElementTree.Element.tag=xml.etree.ElementTree.Element-class.html#tag"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-157', 'tag', 'link-157');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L162"></a><tt class="py-lineno">162</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">root2</tt><tt class="py-op">.</tt><tt id="link-158" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-158', 'tag', 'link-157');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L163"></a><tt class="py-lineno">163</tt>  <tt class="py-line">            <tt class="py-comment"># now remove all references to root2, and parse again</tt> </tt>
-<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">root2</tt> </tt>
-<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">            <tt class="py-name">root3</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L164"></a><tt class="py-lineno">164</tt>  <tt class="py-line">            <tt class="py-comment"># now remove all references to root2, and parse again</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">root2</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">            <tt class="py-name">root3</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-159" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-159', 'parse', 'link-120');">parse</a></tt><tt class="py-op">(</tt><tt id="link-160" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-160', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L166"></a><tt class="py-lineno">166</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-161" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-161', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt id="link-161" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-161', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-162" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-162', 'tag', 'link-157');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L167"></a><tt class="py-lineno">167</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">root3</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'a'</tt><tt class="py-op">,</tt> <tt class="py-name">root3</tt><tt class="py-op">.</tt><tt id="link-163" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-163', 'tag', 'link-157');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L168"></a><tt class="py-lineno">168</tt>  <tt class="py-line">            <tt class="py-comment"># root2's memory should've been freed here</tt> </tt>
-<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">            <tt class="py-comment"># XXX how to check?</tt> </tt>
-<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L169"></a><tt class="py-lineno">169</tt>  <tt class="py-line">            <tt class="py-comment"># root2's memory should've been freed here</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt>  <tt class="py-line">            <tt class="py-comment"># XXX how to check?</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-164" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-164', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt id="link-165" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-165', 'handle', 'link-95');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L172"></a><tt class="py-lineno">172</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="lxml.etree._Element.remove
+<a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-166" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-166', 'remove', 'link-106');">remove</a></tt><tt class="py-op">(</tt><tt id="link-167" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-167', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L173"></a><tt class="py-lineno">173</tt>  <tt class="py-line">         </tt>
-<a name="_IOTestCaseBase.test_class_parse_fileobject"></a><div id="_IOTestCaseBase.test_class_parse_fileobject-def"><a name="L174"></a><tt class="py-lineno">174</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_class_parse_fileobject-toggle" onclick="return toggle('_IOTestCaseBase.test_class_parse_fileobject');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject">test_class_parse_fileobject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_class_parse_fileobject-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_class_parse_fileobject-expanded"><a name="L175"></a><tt class="py-lineno">175</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree class ElementTree has a 'parse' method that returns</tt> </tt>
-<a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-comment"># the root of the tree</tt> </tt>
-<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line"> </tt>
-<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line">        <tt class="py-comment"># parse from file object</tt> </tt>
-<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">         </tt>
-<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">        <tt id="link-168" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+</div><a name="L174"></a><tt class="py-lineno">174</tt>  <tt class="py-line">         </tt>
+<a name="_IOTestCaseBase.test_class_parse_fileobject"></a><div id="_IOTestCaseBase.test_class_parse_fileobject-def"><a name="L175"></a><tt class="py-lineno">175</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_class_parse_fileobject-toggle" onclick="return toggle('_IOTestCaseBase.test_class_parse_fileobject');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_fileobject">test_class_parse_fileobject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_class_parse_fileobject-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_class_parse_fileobject-expanded"><a name="L176"></a><tt class="py-lineno">176</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree class ElementTree has a 'parse' method that returns</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt>  <tt class="py-line">        <tt class="py-comment"># the root of the tree</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt>  <tt class="py-line"> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt>  <tt class="py-line">        <tt class="py-comment"># parse from file object</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt>  <tt class="py-line">         </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt id="link-168" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-168', 'handle', 'link-95');">handle</a></tt><tt class="py-op">,</tt> <tt id="link-169" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-169', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkstemp</tt><tt class="py-op">(</tt><tt class="py-name">suffix</tt><tt class="py-op">=</tt><tt class="py-string">".xml"</tt><tt class="py-op">)</tt> </tt>
-<a name="L181"></a><tt class="py-lineno">181</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-170', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt id="link-171" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
+<a name="L182"></a><tt class="py-lineno">182</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-170" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-170', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt id="link-171" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-171', 'handle', 'link-95');">handle</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">)</tt> </tt>
-<a name="L183"></a><tt class="py-lineno">183</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-172" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-172', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
-<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="lxml.etree
+<a name="L184"></a><tt class="py-lineno">184</tt>  <tt class="py-line">            <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt id="link-172" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-172', 'filename', 'link-96');">filename</a></tt><tt class="py-op">,</tt> <tt class="py-string">'rb'</tt><tt class="py-op">)</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-173" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-173', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-174" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
 xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-174', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L185"></a><tt class="py-lineno">185</tt>  <tt class="py-line">            <tt id="link-175" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-175', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="lxml.etree._ElementTree.parse
+<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">            <tt id="link-175" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-175', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-176" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-176', 'parse', 'link-120');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L186"></a><tt class="py-lineno">186</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-177" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-177', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L187"></a><tt class="py-lineno">187</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="lxml.etree
+<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-178" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-178', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-179" class="py-name"><a title="lxml.etree.XSLT.tostring
 lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-179', 'tostring', 'link-26');">tostring</a></tt><tt class="py-op">(</tt><tt id="link-180" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-180', 'root', 'link-22');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">root_str</tt><tt class="py-op">)</tt> </tt>
-<a name="L188"></a><tt class="py-lineno">188</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="lxml.etree.TreeBuilder.close
+<a name="L189"></a><tt class="py-lineno">189</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-181" class="py-name"><a title="lxml.etree.TreeBuilder.close
 lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-181', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt id="link-182" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.ParseAndExtendWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ParseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.ReverseWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.RotateWorker.handle
 lxml.tests.test_threading.ThreadPipelineTestCase.SerialiseWorker.handle" class="py-name" href="#" onclick="return doclink('link-182', 'handle', 'link-95');">handle</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L190"></a><tt class="py-lineno">190</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="lxml.etree._Element.remove
+<a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-183" class="py-name"><a title="lxml.etree._Element.remove
 lxml.html.CheckboxValues.remove
 lxml.html.MultipleSelectOptions.remove" class="py-name" href="#" onclick="return doclink('link-183', 'remove', 'link-106');">remove</a></tt><tt class="py-op">(</tt><tt id="link-184" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-184', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L191"></a><tt class="py-lineno">191</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_class_parse_unamed_fileobject"></a><div id="_IOTestCaseBase.test_class_parse_unamed_fileobject-def"><a name="L192"></a><tt class="py-lineno">192</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_class_parse_unamed_fileobject-toggle" onclick="return toggle('_IOTestCaseBase.test_class_parse_unamed_fileobject');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject">test_class_parse_unamed_fileobject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_class_parse_unamed_fileobject-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_class_parse_unamed_fileobject-expanded"><a name="L193"></a><tt class="py-lineno">193</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree class ElementTree has a 'parse' method that returns</tt> </tt>
-<a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-comment"># the root of the tree</tt> </tt>
-<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line"> </tt>
-<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line">        <tt class="py-comment"># parse from unamed file object    </tt> </tt>
-<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-185" class="py-name"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-185', 'SillyFileLike', 'link-15');">SillyFileLike</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt id="link-186" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-186', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree
+</div><a name="L192"></a><tt class="py-lineno">192</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_class_parse_unamed_fileobject"></a><div id="_IOTestCaseBase.test_class_parse_unamed_fileobject-def"><a name="L193"></a><tt class="py-lineno">193</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_class_parse_unamed_fileobject-toggle" onclick="return toggle('_IOTestCaseBase.test_class_parse_unamed_fileobject');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_class_parse_unamed_fileobject">test_class_parse_unamed_fileobject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_class_parse_unamed_fileobject-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_class_parse_unamed_fileobject-expanded"><a name="L194"></a><tt class="py-lineno">194</tt>  <tt class="py-line">        <tt class="py-comment"># (c)ElementTree class ElementTree has a 'parse' method that returns</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt>  <tt class="py-line">        <tt class="py-comment"># the root of the tree</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt>  <tt class="py-line"> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt>  <tt class="py-line">        <tt class="py-comment"># parse from unamed file object    </tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-185" class="py-name"><a title="lxml.tests.common_imports.SillyFileLike" class="py-name" href="#" onclick="return doclink('link-185', 'SillyFileLike', 'link-15');">SillyFileLike</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt id="link-186" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-186', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-187" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -606,17 +607,17 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-189', 'parse', 'link-120');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L199"></a><tt class="py-lineno">199</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-190', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-190" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-190', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-191" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-191', 'tag', 'link-157');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'foo'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L200"></a><tt class="py-lineno">200</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_module_parse_large_fileobject"></a><div id="_IOTestCaseBase.test_module_parse_large_fileobject-def"><a name="L201"></a><tt class="py-lineno">201</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_large_fileobject-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_large_fileobject');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject">test_module_parse_large_fileobject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_module_parse_large_fileobject-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_large_fileobject-expanded"><a name="L202"></a><tt class="py-lineno">202</tt>  <tt class="py-line">        <tt class="py-comment"># parse from unamed file object</tt> </tt>
-<a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-192" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike" class="py-name" href="#" onclick="return doclink('link-192', 'LargeFileLike', 'link-16');">LargeFileLike</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="lxml.etree
+</div><a name="L201"></a><tt class="py-lineno">201</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_module_parse_large_fileobject"></a><div id="_IOTestCaseBase.test_module_parse_large_fileobject-def"><a name="L202"></a><tt class="py-lineno">202</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_large_fileobject-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_large_fileobject');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_large_fileobject">test_module_parse_large_fileobject</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_module_parse_large_fileobject-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_large_fileobject-expanded"><a name="L203"></a><tt class="py-lineno">203</tt>  <tt class="py-line">        <tt class="py-comment"># parse from unamed file object</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt id="link-192" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike" class="py-name" href="#" onclick="return doclink('link-192', 'LargeFileLike', 'link-16');">LargeFileLike</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-193" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -627,22 +628,22 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-194', 'parse', 'link-120');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L205"></a><tt class="py-lineno">205</tt>  <tt class="py-line">        <tt id="link-195" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-195', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-196', 'getroot', 'link-124');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-197" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-197', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L206"></a><tt class="py-lineno">206</tt>  <tt class="py-line">        <tt id="link-195" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-195', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-196" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-196', 'getroot', 'link-124');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-197" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-197', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-198" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-198', 'tag', 'link-157');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">endswith</tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L207"></a><tt class="py-lineno">207</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_module_parse_fileobject_error"></a><div id="_IOTestCaseBase.test_module_parse_fileobject_error-def"><a name="L208"></a><tt class="py-lineno">208</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_fileobject_error-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_fileobject_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_module_parse_fileobject_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_fileobject_error-expanded"><a name="L209"></a><tt class="py-lineno">209</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">LocalError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestFile</tt><tt class="py-op">:</tt> </tt>
-<a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">read</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">LocalError</tt> </tt>
-</div></div><a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">TestFile</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">LocalError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="lxml.etree
+</div><a name="L208"></a><tt class="py-lineno">208</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_module_parse_fileobject_error"></a><div id="_IOTestCaseBase.test_module_parse_fileobject_error-def"><a name="L209"></a><tt class="py-lineno">209</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_fileobject_error-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_fileobject_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_error">test_module_parse_fileobject_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_module_parse_fileobject_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_fileobject_error-expanded"><a name="L210"></a><tt class="py-lineno">210</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">LocalError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L212"></a><tt class="py-lineno">212</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestFile</tt><tt class="py-op">:</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">read</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">LocalError</tt> </tt>
+</div></div><a name="L215"></a><tt class="py-lineno">215</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">TestFile</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">LocalError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-199" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -653,43 +654,43 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-200', 'parse', 'link-120');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L216"></a><tt class="py-lineno">216</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_module_parse_fileobject_late_error"></a><div id="_IOTestCaseBase.test_module_parse_fileobject_late_error-def"><a name="L217"></a><tt class="py-lineno">217</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_fileobject_late_error-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_fileobject_late_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_module_parse_fileobject_late_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_fileobject_late_error-expanded"><a name="L218"></a><tt class="py-lineno">218</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">LocalError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestFile</tt><tt class="py-op">:</tt> </tt>
-<a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">            <tt id="link-201" class="py-name" targets="Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-201', 'data', 'link-201');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;root&gt;test&lt;/'</tt> </tt>
-<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">                <tt class="py-name">next_char</tt> <tt class="py-op">=</tt> <tt id="link-202" class="py-name" targets="Method lxml.etree._Element.iter()=lxml.etree._Element-class.html#iter,Method lxml.etree._ElementTree.iter()=lxml.etree._ElementTree-class.html#iter"><a title="lxml.etree._Element.iter
+</div><a name="L217"></a><tt class="py-lineno">217</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_module_parse_fileobject_late_error"></a><div id="_IOTestCaseBase.test_module_parse_fileobject_late_error-def"><a name="L218"></a><tt class="py-lineno">218</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_fileobject_late_error-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_fileobject_late_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_late_error">test_module_parse_fileobject_late_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_module_parse_fileobject_late_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_fileobject_late_error-expanded"><a name="L219"></a><tt class="py-lineno">219</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">LocalError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L221"></a><tt class="py-lineno">221</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestFile</tt><tt class="py-op">:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt>  <tt class="py-line">            <tt id="link-201" class="py-name" targets="Method lxml.etree.TreeBuilder.data()=lxml.etree.TreeBuilder-class.html#data"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-201', 'data', 'link-201');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'&lt;root&gt;test&lt;/'</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">                <tt class="py-name">next_char</tt> <tt class="py-op">=</tt> <tt id="link-202" class="py-name" targets="Method lxml.etree._Element.iter()=lxml.etree._Element-class.html#iter,Method lxml.etree._ElementTree.iter()=lxml.etree._ElementTree-class.html#iter"><a title="lxml.etree._Element.iter
 lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-202', 'iter', 'link-202');">iter</a></tt><tt class="py-op">(</tt><tt id="link-203" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-203', 'data', 'link-201');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-204" class="py-name" targets="Method lxml.etree.ElementDepthFirstIterator.next()=lxml.etree.ElementDepthFirstIterator-class.html#next,Method lxml.etree.ElementTextIterator.next()=lxml.etree.ElementTextIterator-class.html#next,Method lxml.etree._ElementIterator.next()=lxml.etree._ElementIterator-class.html#next,Method lxml.etree._ElementMatchIterator.next()=lxml.etree._ElementMatchIterator-class.html#next,Method lxml.etree.iterparse.next()=lxml.etree.iterparse-class.html#next,Method lxml.etree.iterwalk.next()=lxml.etree.iterwalk-class.html#next"><a title="lxml.etree.ElementDepthFirstIterator.next
 lxml.etree.ElementTextIterator.next
 lxml.etree._ElementIterator.next
 lxml.etree._ElementMatchIterator.next
 lxml.etree.iterparse.next
 lxml.etree.iterwalk.next" class="py-name" href="#" onclick="return doclink('link-204', 'next', 'link-204');">next</a></tt> </tt>
-<a name="L224"></a><tt class="py-lineno">224</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">                <tt class="py-comment"># Python 3</tt> </tt>
-<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">                <tt class="py-name">next_char</tt> <tt class="py-op">=</tt> <tt id="link-205" class="py-name"><a title="lxml.etree._Element.iter
+<a name="L225"></a><tt class="py-lineno">225</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt>  <tt class="py-line">                <tt class="py-comment"># Python 3</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">                <tt class="py-name">next_char</tt> <tt class="py-op">=</tt> <tt id="link-205" class="py-name"><a title="lxml.etree._Element.iter
 lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-205', 'iter', 'link-202');">iter</a></tt><tt class="py-op">(</tt><tt id="link-206" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-206', 'data', 'link-201');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-207" class="py-name" targets="Method lxml.etree.ElementDepthFirstIterator.__next__()=lxml.etree.ElementDepthFirstIterator-class.html#__next__,Method lxml.etree.ElementTextIterator.__next__()=lxml.etree.ElementTextIterator-class.html#__next__,Method lxml.etree._ElementIterator.__next__()=lxml.etree._ElementIterator-class.html#__next__,Method lxml.etree._ElementMatchIterator.__next__()=lxml.etree._ElementMatchIterator-class.html#__next__,Method lxml.etree.iterparse.__next__()=lxml.etree.iterparse-class.html#__next__,Method lxml.etree.iterwalk.__next__()=lxml.etree.iterwalk-class.html#__next__"><a title="lxml.etree.ElementDepthFirstIterator.__next__
 lxml.etree.ElementTextIterator.__next__
 lxml.etree._ElementIterator.__next__
 lxml.etree._ElementMatchIterator.__next__
 lxml.etree.iterparse.__next__
 lxml.etree.iterwalk.__next__" class="py-name" href="#" onclick="return doclink('link-207', '__next__', 'link-207');">__next__</a></tt> </tt>
-<a name="L227"></a><tt class="py-lineno">227</tt>  <tt class="py-line">            <tt class="py-name">counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">read</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">amount</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">amount</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">                    <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
-<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+<a name="L228"></a><tt class="py-lineno">228</tt>  <tt class="py-line">            <tt class="py-name">counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">read</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">amount</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">amount</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt>  <tt class="py-line">                    <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-208" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
 lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-208', 'read', 'link-62');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L232"></a><tt class="py-lineno">232</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt id="link-209" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-209', '_bytes', 'link-13');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">next_char</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">StopIteration</tt><tt class="py-op">:</tt> </tt>
-<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> <tt class="py-name">LocalError</tt> </tt>
-</div></div><a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">TestFile</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">LocalError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="lxml.etree
+<a name="L233"></a><tt class="py-lineno">233</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt>  <tt class="py-line">                        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt>  <tt class="py-line">                        <tt class="py-keyword">return</tt> <tt id="link-209" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-209', '_bytes', 'link-13');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">next_char</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">StopIteration</tt><tt class="py-op">:</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt>  <tt class="py-line">                        <tt class="py-keyword">raise</tt> <tt class="py-name">LocalError</tt> </tt>
+</div></div><a name="L239"></a><tt class="py-lineno">239</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">TestFile</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">LocalError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-210" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -700,24 +701,24 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-211', 'parse', 'link-120');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-<a name="L240"></a><tt class="py-lineno">240</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">counter</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-212', 'data', 'link-201');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_module_parse_fileobject_type_error"></a><div id="_IOTestCaseBase.test_module_parse_fileobject_type_error-def"><a name="L242"></a><tt class="py-lineno">242</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_fileobject_type_error-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_fileobject_type_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_module_parse_fileobject_type_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_fileobject_type_error-expanded"><a name="L243"></a><tt class="py-lineno">243</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestFile</tt><tt class="py-op">:</tt> </tt>
-<a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">read</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-number">1</tt> </tt>
-</div></div><a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">TestFile</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line"> </tt>
-<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">            <tt class="py-name">expect_exc</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.etree
+<a name="L241"></a><tt class="py-lineno">241</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt class="py-name">counter</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-212" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-212', 'data', 'link-201');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L242"></a><tt class="py-lineno">242</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_module_parse_fileobject_type_error"></a><div id="_IOTestCaseBase.test_module_parse_fileobject_type_error-def"><a name="L243"></a><tt class="py-lineno">243</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_module_parse_fileobject_type_error-toggle" onclick="return toggle('_IOTestCaseBase.test_module_parse_fileobject_type_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_module_parse_fileobject_type_error">test_module_parse_fileobject_type_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_module_parse_fileobject_type_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_module_parse_fileobject_type_error-expanded"><a name="L244"></a><tt class="py-lineno">244</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">TestFile</tt><tt class="py-op">:</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">read</tt><tt class="py-op">(</tt><tt class="py-op">*</tt><tt class="py-param">args</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> <tt class="py-number">1</tt> </tt>
+</div></div><a name="L247"></a><tt class="py-lineno">247</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">TestFile</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt>  <tt class="py-line"> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">            <tt class="py-name">expect_exc</tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-213" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-213', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-214" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
 xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-214', 'ParseError', 'link-214');">ParseError</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L250"></a><tt class="py-lineno">250</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">            <tt class="py-name">expect_exc</tt> <tt class="py-op">=</tt> <tt class="py-name">TypeError</tt> </tt>
-<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">expect_exc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="lxml.etree
+<a name="L251"></a><tt class="py-lineno">251</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt>  <tt class="py-line">            <tt class="py-name">expect_exc</tt> <tt class="py-op">=</tt> <tt class="py-name">TypeError</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">expect_exc</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-215" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -728,15 +729,15 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-216', 'parse', 'link-120');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">f</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L253"></a><tt class="py-lineno">253</tt>  <tt class="py-line"> </tt>
-<a name="_IOTestCaseBase.test_etree_parse_io_error"></a><div id="_IOTestCaseBase.test_etree_parse_io_error-def"><a name="L254"></a><tt class="py-lineno">254</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_etree_parse_io_error-toggle" onclick="return toggle('_IOTestCaseBase.test_etree_parse_io_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IOTestCaseBase.test_etree_parse_io_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_etree_parse_io_error-expanded"><a name="L255"></a><tt class="py-lineno">255</tt>  <tt class="py-line">        <tt class="py-comment"># this is a directory name that contains characters beyond latin-1</tt> </tt>
-<a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-name">dirnameEN</tt> <tt class="py-op">=</tt> <tt id="link-217" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-217', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Directory'</tt><tt class="py-op">)</tt> </tt>
-<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">        <tt class="py-name">dirnameRU</tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-218', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&#208;&#353;&#208;&#176;&#209;&#8218;&#208;&#176;&#208;&#187;&#208;&#190;&#208;&#179;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">        <tt id="link-219" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-219', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-220" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-220', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'nosuchfile.xml'</tt><tt class="py-op">)</tt> </tt>
-<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">            <tt class="py-name">dn</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkdtemp</tt><tt class="py-op">(</tt><tt id="link-221" class="py-name" targets="Variable lxml.etree._Element.prefix=lxml.etree._Element-class.html#prefix"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-221', 'prefix', 'link-221');">prefix</a></tt><tt class="py-op">=</tt><tt class="py-name">dirnameEN</tt><tt class="py-op">)</tt> </tt>
-<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree
+</div><a name="L254"></a><tt class="py-lineno">254</tt>  <tt class="py-line"> </tt>
+<a name="_IOTestCaseBase.test_etree_parse_io_error"></a><div id="_IOTestCaseBase.test_etree_parse_io_error-def"><a name="L255"></a><tt class="py-lineno">255</tt> <a class="py-toggle" href="#" id="_IOTestCaseBase.test_etree_parse_io_error-toggle" onclick="return toggle('_IOTestCaseBase.test_etree_parse_io_error');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io._IOTestCaseBase-class.html#test_etree_parse_io_error">test_etree_parse_io_error</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="_IOTestCaseBase.test_etree_parse_io_error-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="_IOTestCaseBase.test_etree_parse_io_error-expanded"><a name="L256"></a><tt class="py-lineno">256</tt>  <tt class="py-line">        <tt class="py-comment"># this is a directory name that contains characters beyond latin-1</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt>  <tt class="py-line">        <tt class="py-name">dirnameEN</tt> <tt class="py-op">=</tt> <tt id="link-217" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-217', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'Directory'</tt><tt class="py-op">)</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt>  <tt class="py-line">        <tt class="py-name">dirnameRU</tt> <tt class="py-op">=</tt> <tt id="link-218" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-218', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'&#208;&#353;&#208;&#176;&#209;&#8218;&#208;&#176;&#208;&#187;&#208;&#190;&#208;&#179;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L259"></a><tt class="py-lineno">259</tt>  <tt class="py-line">        <tt id="link-219" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-219', 'filename', 'link-96');">filename</a></tt> <tt class="py-op">=</tt> <tt id="link-220" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-220', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">'nosuchfile.xml'</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt>  <tt class="py-line">        <tt class="py-name">dn</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkdtemp</tt><tt class="py-op">(</tt><tt id="link-221" class="py-name" targets="Variable lxml.etree._Element.prefix=lxml.etree._Element-class.html#prefix"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-221', 'prefix', 'link-221');">prefix</a></tt><tt class="py-op">=</tt><tt class="py-name">dirnameEN</tt><tt class="py-op">)</tt> </tt>
+<a name="L261"></a><tt class="py-lineno">261</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-222" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -747,11 +748,11 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-223', 'parse', 'link-120');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-224" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-224', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">,</tt> <tt id="link-225" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-225', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L262"></a><tt class="py-lineno">262</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">rmdir</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">)</tt> </tt>
-<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">            <tt class="py-name">dn</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkdtemp</tt><tt class="py-op">(</tt><tt id="link-226" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-226', 'prefix', 'link-221');">prefix</a></tt><tt class="py-op">=</tt><tt class="py-name">dirnameRU</tt><tt class="py-op">)</tt> </tt>
-<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="lxml.etree
+<a name="L263"></a><tt class="py-lineno">263</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">rmdir</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">)</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt>  <tt class="py-line">        <tt class="py-name">dn</tt> <tt class="py-op">=</tt> <tt class="py-name">tempfile</tt><tt class="py-op">.</tt><tt class="py-name">mkdtemp</tt><tt class="py-op">(</tt><tt id="link-226" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-226', 'prefix', 'link-221');">prefix</a></tt><tt class="py-op">=</tt><tt class="py-name">dirnameRU</tt><tt class="py-op">)</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">IOError</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-227" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -762,12 +763,12 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-228', 'parse', 'link-120');">parse</a></tt><tt class="py-op">,</tt> <tt class="py-name">os</tt><tt class="py-op">.</tt><tt id="link-229" class="py-name"><a title="lxml.etree.XPath.path" class="py-name" href="#" onclick="return doclink('link-229', 'path', 'link-0');">path</a></tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">,</tt> <tt id="link-230" class="py-name"><a title="lxml.etree._LogEntry.filename" class="py-name" href="#" onclick="return doclink('link-230', 'filename', 'link-96');">filename</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L267"></a><tt class="py-lineno">267</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
-<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">rmdir</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line"> </tt>
-<a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line">     </tt>
-<a name="ETreeIOTestCase"></a><div id="ETreeIOTestCase-def"><a name="L271"></a><tt class="py-lineno">271</tt> <a class="py-toggle" href="#" id="ETreeIOTestCase-toggle" onclick="return toggle('ETreeIOTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_IOTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ETreeIOTestCase-expanded"><a name="L272"></a><tt class="py-lineno">272</tt>  <tt class="py-line">    <tt id="link-231" class="py-name"><a title="lxml.etree
+<a name="L268"></a><tt class="py-lineno">268</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L269"></a><tt class="py-lineno">269</tt>  <tt class="py-line">            <tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py-name">rmdir</tt><tt class="py-op">(</tt><tt class="py-name">dn</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L270"></a><tt class="py-lineno">270</tt>  <tt class="py-line"> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt>  <tt class="py-line">     </tt>
+<a name="ETreeIOTestCase"></a><div id="ETreeIOTestCase-def"><a name="L272"></a><tt class="py-lineno">272</tt> <a class="py-toggle" href="#" id="ETreeIOTestCase-toggle" onclick="return toggle('ETreeIOTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io.ETreeIOTestCase-class.html">ETreeIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_IOTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ETreeIOTestCase-expanded"><a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">    <tt id="link-231" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
@@ -776,31 +777,121 @@ lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
 lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-232', 'etree', 'link-9');">etree</a></tt> </tt>
-</div><a name="L273"></a><tt class="py-lineno">273</tt>  <tt class="py-line">     </tt>
-<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-233" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L274"></a><tt class="py-lineno">274</tt>  <tt class="py-line"> </tt>
+<a name="ETreeIOTestCase.test_write_compressed_text"></a><div id="ETreeIOTestCase.test_write_compressed_text-def"><a name="L275"></a><tt class="py-lineno">275</tt> <a class="py-toggle" href="#" id="ETreeIOTestCase.test_write_compressed_text-toggle" onclick="return toggle('ETreeIOTestCase.test_write_compressed_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io.ETreeIOTestCase-class.html#test_write_compressed_text">test_write_compressed_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeIOTestCase.test_write_compressed_text-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ETreeIOTestCase.test_write_compressed_text-expanded"><a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt id="link-233" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-233', 'Element', 'link-24');">Element</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-234" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-234', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-235" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-235', 'Element', 'link-24');">Element</a></tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line">        <tt id="link-236" class="py-name" targets="Function lxml.etree.SubElement()=lxml.etree-module.html#SubElement"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-236', 'SubElement', 'link-236');">SubElement</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-237" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-237', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-238" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-238', 'SubElement', 'link-236');">SubElement</a></tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt>  <tt class="py-line">        <tt id="link-239" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-239', 'ElementTree', 'link-10');">ElementTree</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-240" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-240', 'etree', 'link-9');">etree</a></tt><tt class="py-op">.</tt><tt id="link-241" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-241', 'ElementTree', 'link-10');">ElementTree</a></tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">        <tt id="link-242" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-242', 'text', 'link-46');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-243" class="py-name"><a title="lxml.tests.common_imports._str" class="py-name" href="#" onclick="return doclink('link-243', '_str', 'link-12');">_str</a></tt><tt class="py-op">(</tt><tt class="py-string">"qwrtio&#252;&#246;&#228;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line"> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">        <tt id="link-244" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-244', 'root', 'link-22');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-245" class="py-name"><a title="lxml.etree.Element
+lxml.objectify.Element
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-245', 'Element', 'link-24');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'root'</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">        <tt id="link-246" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-246', 'root', 'link-22');">root</a></tt><tt class="py-op">.</tt><tt id="link-247" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-247', 'text', 'link-46');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-248" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-248', 'text', 'link-46');">text</a></tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">        <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-249" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-249', 'SubElement', 'link-236');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-250" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-250', 'root', 'link-22');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'sub'</tt><tt class="py-op">)</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line">        <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-251" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-251', 'text', 'link-46');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'TEXT'</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line">        <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-252" class="py-name" targets="Variable lxml.etree._Element.tail=lxml.etree._Element-class.html#tail,Variable xml.etree.ElementTree.Element.tail=xml.etree.ElementTree.Element-class.html#tail"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-252', 'tail', 'link-252');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'TAIL'</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">        <tt id="link-253" class="py-name"><a title="lxml.etree.SubElement" class="py-name" href="#" onclick="return doclink('link-253', 'SubElement', 'link-236');">SubElement</a></tt><tt class="py-op">(</tt><tt id="link-254" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-254', 'root', 'link-22');">root</a></tt><tt class="py-op">,</tt> <tt class="py-string">'sub'</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-255" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-255', 'text', 'link-46');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-256" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-256', 'text', 'link-46');">text</a></tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-257" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-257', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">(</tt><tt id="link-258" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-258', 'root', 'link-22');">root</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt>  <tt class="py-line">        <tt class="py-name">out</tt> <tt class="py-op">=</tt> <tt class="py-name">BytesIO</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-259" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-259', 'write', 'link-51');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">out</tt><tt class="py-op">,</tt> <tt id="link-260" class="py-name" targets="Variable lxml.html.FormElement.method=lxml.html.FormElement-class.html#method"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-260', 'method', 'link-260');">method</a></tt><tt class="py-op">=</tt><tt class="py-string">'text'</tt><tt class="py-op">,</tt> <tt id="link-261" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-261', 'encoding', 'link-52');">encoding</a></tt><tt class="py-op">=</tt><tt class="py-string">'utf8'</tt><tt class="py-op">,</tt> <tt class="py-name">compression</tt><tt class="py-op">=</tt><tt class="py-number">9</tt><tt class="py-op">)</tt> </tt>
+<a name="L291"></a><tt class="py-lineno">291</tt>  <tt class="py-line">        <tt class="py-name">out</tt><tt class="py-op">.</tt><tt class="py-name">seek</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L292"></a><tt class="py-lineno">292</tt>  <tt class="py-line"> </tt>
+<a name="L293"></a><tt class="py-lineno">293</tt>  <tt class="py-line">        <tt class="py-name">f</tt> <tt class="py-op">=</tt> <tt class="py-name">gzip</tt><tt class="py-op">.</tt><tt class="py-name">GzipFile</tt><tt class="py-op">(</tt><tt class="py-name">fileobj</tt><tt class="py-op">=</tt><tt class="py-name">out</tt><tt class="py-op">)</tt> </tt>
+<a name="L294"></a><tt class="py-lineno">294</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L295"></a><tt class="py-lineno">295</tt>  <tt class="py-line">            <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-262" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-262', 'read', 'link-62');">read</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">decode</tt><tt class="py-op">(</tt><tt class="py-string">'utf8'</tt><tt class="py-op">)</tt> </tt>
+<a name="L296"></a><tt class="py-lineno">296</tt>  <tt class="py-line">        <tt class="py-keyword">finally</tt><tt class="py-op">:</tt> </tt>
+<a name="L297"></a><tt class="py-lineno">297</tt>  <tt class="py-line">            <tt class="py-name">f</tt><tt class="py-op">.</tt><tt id="link-263" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-263', 'close', 'link-53');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L298"></a><tt class="py-lineno">298</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-264" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-264', 'text', 'link-46');">text</a></tt><tt class="py-op">+</tt><tt class="py-string">'TEXTTAIL'</tt><tt class="py-op">+</tt><tt id="link-265" class="py-name"><a title="lxml.etree.QName.text
+lxml.etree._Element.text
+lxml.etree._Entity.text
+lxml.objectify.ObjectifiedElement.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-265', 'text', 'link-46');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L299"></a><tt class="py-lineno">299</tt>  <tt class="py-line"> </tt>
+<a name="L300"></a><tt class="py-lineno">300</tt>  <tt class="py-line"> </tt>
+<a name="L301"></a><tt class="py-lineno">301</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt id="link-266" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-233', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="ElementTreeIOTestCase"></a><div id="ElementTreeIOTestCase-def"><a name="L275"></a><tt class="py-lineno">275</tt> <a class="py-toggle" href="#" id="ElementTreeIOTestCase-toggle" onclick="return toggle('ElementTreeIOTestCase');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io.ElementTreeIOTestCase-class.html">ElementTreeIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_IOTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ElementTreeIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ElementTreeIOTestCase-expanded"><a name="L276"></a><tt class="py-lineno">276</tt>  <tt class="py-line">        <tt id="link-234" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-266', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="ElementTreeIOTestCase"></a><div id="ElementTreeIOTestCase-def"><a name="L302"></a><tt class="py-lineno">302</tt> <a class="py-toggle" href="#" id="ElementTreeIOTestCase-toggle" onclick="return toggle('ElementTreeIOTestCase');">-</a><tt class="py-line">    <tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_io.ElementTreeIOTestCase-class.html">ElementTreeIOTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">_IOTestCaseBase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ElementTreeIOTestCase-collapsed" style="display:none;" pad="+++" indent="++++++++"></div><div id="ElementTreeIOTestCase-expanded"><a name="L303"></a><tt class="py-lineno">303</tt>  <tt class="py-line">        <tt id="link-267" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-234', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-235" class="py-name"><a title="lxml.etree.ElementTree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-267', 'etree', 'link-9');">etree</a></tt> <tt class="py-op">=</tt> <tt id="link-268" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-235', 'ElementTree', 'link-10');">ElementTree</a></tt> </tt>
-</div><a name="L277"></a><tt class="py-lineno">277</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L278"></a><tt class="py-lineno">278</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="test_suite-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="test_suite-expanded"><a name="L279"></a><tt class="py-lineno">279</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L280"></a><tt class="py-lineno">280</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-236" class="py-name" targets="Class lxml.tests.test_io.ETreeIOTestCase=lxml.tests.test_io.ETreeIOTestCase-class.html"><a title="lxml.tests.test_io.ETreeIOTestCase" class="py-name" href="#" onclick="return doclink('link-236', 'ETreeIOTestCase', 'link-236');">ETreeIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L281"></a><tt class="py-lineno">281</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-237" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-268', 'ElementTree', 'link-10');">ElementTree</a></tt> </tt>
+</div><a name="L304"></a><tt class="py-lineno">304</tt>  <tt class="py-line"> </tt>
+<a name="L305"></a><tt class="py-lineno">305</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L306"></a><tt class="py-lineno">306</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_io-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test_suite-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="test_suite-expanded"><a name="L307"></a><tt class="py-lineno">307</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L308"></a><tt class="py-lineno">308</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-269" class="py-name" targets="Class lxml.tests.test_io.ETreeIOTestCase=lxml.tests.test_io.ETreeIOTestCase-class.html"><a title="lxml.tests.test_io.ETreeIOTestCase" class="py-name" href="#" onclick="return doclink('link-269', 'ETreeIOTestCase', 'link-269');">ETreeIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L309"></a><tt class="py-lineno">309</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-270" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-237', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L282"></a><tt class="py-lineno">282</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-238" class="py-name" targets="Class lxml.tests.test_io.ElementTreeIOTestCase=lxml.tests.test_io.ElementTreeIOTestCase-class.html"><a title="lxml.tests.test_io.ElementTreeIOTestCase" class="py-name" href="#" onclick="return doclink('link-238', 'ElementTreeIOTestCase', 'link-238');">ElementTreeIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L283"></a><tt class="py-lineno">283</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L284"></a><tt class="py-lineno">284</tt>  <tt class="py-line"> </tt>
-<a name="L285"></a><tt class="py-lineno">285</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
-<a name="L286"></a><tt class="py-lineno">286</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
-<a name="L287"></a><tt class="py-lineno">287</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-270', 'ElementTree', 'link-10');">ElementTree</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L310"></a><tt class="py-lineno">310</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-271" class="py-name" targets="Class lxml.tests.test_io.ElementTreeIOTestCase=lxml.tests.test_io.ElementTreeIOTestCase-class.html"><a title="lxml.tests.test_io.ElementTreeIOTestCase" class="py-name" href="#" onclick="return doclink('link-271', 'ElementTreeIOTestCase', 'link-271');">ElementTreeIOTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L311"></a><tt class="py-lineno">311</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L312"></a><tt class="py-lineno">312</tt>  <tt class="py-line"> </tt>
+<a name="L313"></a><tt class="py-lineno">313</tt>  <tt class="py-line"> </tt>
+<a name="L314"></a><tt class="py-lineno">314</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L315"></a><tt class="py-lineno">315</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
+<a name="L316"></a><tt class="py-lineno">316</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -838,7 +929,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4a30ba19515a2368db8a5180b4337e8527d95f85..98b77568829bbb1a810ae6c46d9d416f213854be 100644 (file)
     </table>
   </td>
 </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_write_compressed_text"></a><span class="summary-sig-name">test_write_compressed_text</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_io-pysrc.html#ETreeIOTestCase.test_write_compressed_text">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
+    </td>
+  </tr>
   <tr>
     <td colspan="2" class="summary">
     <p class="indent-wrapped-lines"><b>Inherited from <code><a href="lxml.tests.test_io._IOTestCaseBase-class.html" onclick="show_private();">_IOTestCaseBase</a></code></b>:
@@ -388,7 +404,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 85348577975bea784f5b095561645f92aae26441..d5d88178880f589ca30f89f681e0353a5d0ce9bf 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9ea19e7d3a58b3541f93784d647bec866ee8eae3..f829f0446f3c7c9184263e235a22ef0900a9a0e0 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 122bbd8d549cc18f443867884cc5bcee0ced3b7b..9cbaf86927f125e2a6848b0c8093f55463d8d755 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to ISO-Schematron parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ca95db176b603c9dd020b6453b4c8ee29078cfef..2440cceff40539939f8b36d1f0601ba8497a5e3b 100644 (file)
@@ -1600,7 +1600,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:11 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d13efc4ff4665b6aa6b1d026d658c0e1b4f9846f..12956599f3851d0b9e062e930967005d56726400 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5030f5d3dc7ba530a2bd34bdbbbf4ca4c0ee9923..396e56d9f3ab5b19bcb45ea237815d693d86370c 100644 (file)
@@ -224,7 +224,7 @@ namespace registry mechanism
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e25ca5850aad5b64a88584c22ec4ddd7f799fb64..b0fb2b19172d1feb8f64f93419b4630e2d1cfe3c 100644 (file)
@@ -573,7 +573,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index b3b7a16a9c3720805a726c982cd6b49048384e13..1c47c6d81303845bc27adde21dbeef7ccfa463f7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 94fc098d7df35f11c28b6c266e2605ca284f3307..551ac280058c105783b1f27dc15600ecf82a0e90 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:07 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8fb2338f9362c56ca70231c53cfba03c4381605f..25d6bdd718231db93c3ff4083a28ec00026d904f 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c30d7eb724a973933d23a1f2312eba8076901c78..956e2e9d2313bed3906ed556ddf60ef1846e7a1b 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6f19df41e6aeb15c0d42bec750046c0258917a6d..38372033aed1c750ba3866fbfd975088d21c2b2c 100644 (file)
@@ -275,7 +275,7 @@ Tests specific to the lxml.objectify API
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a name="v"></a><span class="summary-name">v</span> = <code title="'positiveInteger'"><code class="variable-quote">'</code><code class="variable-string">positiveInteger</code><code class="variable-quote">'</code></code>
+        <a name="v"></a><span class="summary-name">v</span> = <code title="'double'"><code class="variable-quote">'</code><code class="variable-string">double</code><code class="variable-quote">'</code></code>
     </td>
   </tr>
 </table>
@@ -541,7 +541,7 @@ Tests specific to the lxml.objectify API
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ed46d4ddd8ded608949320d321b5b33037a64445..a41ab99e4464e1d902c92e983772096a860d1463 100644 (file)
@@ -5605,7 +5605,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:09 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6d8db98e5e761c36a5216d92cf14fabbcdbe76ac..50b25bda76188d737acdc3000525f5c768fdfcdd 100644 (file)
@@ -3557,7 +3557,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f6e523be546089acfc96247c21c117d18786899d..2783080b8af21cbf7d3d7ee6d12bde6a36b4b618 100644 (file)
@@ -265,7 +265,7 @@ Tests specific to the Python based class lookup.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index da9e1fac616e73829f1fad39cce10c28d1d4bdb0..e0f1e7b8793a15d730b92d111c274ae3e4527fe3 100644 (file)
@@ -862,7 +862,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f5b839937569a011992bfb884506ed94ac3922d2..2ef4fa1de2a6cd827997e7d587d2ce38dfdf24f0 100644 (file)
@@ -858,7 +858,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f1eb310a43025f95f54d62434611352044d9e8a7..2edc6a1606130ed8574169bc394cd087a25af93a 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to RelaxNG parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ec7a31a1749897fb7e1db71c12da9e0e69714f9f..1bb5cada22e7ce786631e78ac8bc40a85f657232 100644 (file)
@@ -523,7 +523,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 54dd6534426931691789e3707fa5658fa7fc1d26..9055ff76d84b79ca26a652956df0cafd623c9013 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index bbe0770a4b08acb330d74ba2bcece811dc500037..c5c713690e1ad3992975493ae1c61f5427785e14 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to SAX I/O
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 510fe1d8bb7fa291c5a1e7739bff112c9b08d2ea..72908886af6d29cdecf86830cb6bbb47febc02d4 100644 (file)
@@ -647,7 +647,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:13 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index caeff50d22c1b105fcdf677e81f294787173ccd2..2d07e47102e14658657d766a990aa8e54a17c190 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index c07359e5b4d5a0c7eac07e7f1795858fc1ec2f29..a7743ef8905682afe145f041e9e273f170ed33b6 100644 (file)
@@ -223,7 +223,7 @@ Test cases related to Schematron parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5feb0754d8aa84f0cf3caa65439906587a34ef40..a931b07fb238471456ee322ca28b9a585705db3a 100644 (file)
@@ -324,7 +324,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:11 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3bb094b39c05ccd47063881e24959b566eac867b..eb4fc47397915db8cdd494119c4d52bd7d045a3a 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:09 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 4d4d53b31d3abba51ca8ae289319cebca3603a47..9131fe9e3e40c9e77a4080fe6d133268d3921768 100644 (file)
@@ -232,7 +232,7 @@ Tests for thread usage in lxml.etree.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 5e40b70886333e179ade1ac4a2276c8940a0f043..5ff525bd7b043732008e8c1f30201cbe26816a93 100644 (file)
@@ -1070,7 +1070,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f6ee4d51d926f617edb1f8724482dd66831b126c..6746428972f3f7020b833cb63362eee5ba2b308f 100644 (file)
@@ -511,7 +511,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 283391d3d22e3080f12c05eec7ebfb6231557fee..025be55c6a6f7ec0fe36cf960e210d2e4b7e1ee2 100644 (file)
@@ -290,7 +290,7 @@ the document to support relative Paths when looking up external entities
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9763da61609c29cbc1b893b624d9ed7206c3476b..61c4f57aacbed4ac800535cbb35463ea0656f26e 100644 (file)
@@ -290,7 +290,7 @@ the document to support relative Paths when looking up external entities
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 28446ae076e9dc61850208ff97ab250e95556e67..eed6c74ce9f0001d7e147465a1b13ab5146149db 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index eaceda7630576f0a565a7c2241d78682b46cd1a4..edfc00d2cb41502c9b3f1d8514116e4c4066e266 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a331253b5479a07dc907bacd1f3fc0599909a416..957891f57dac3e3c24246e51239ad0e8889a7823 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aa4f185f488c4aba0e547304adcfd1d5f8f34230..3aea9bbe1b397645474e2b44134bbb369da68b14 100644 (file)
@@ -321,7 +321,7 @@ from the args and kwargs arguments, respectively.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 56fc267b91161c81f2efb1e14647a0269339542b..4c7beff67bb1d414455806696df7f02104cb9d4c 100644 (file)
@@ -531,7 +531,7 @@ for XML.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index f836da72d9789e6dc390d141966469fb755fefd8..c42fd43789e8fa1e87984eeea00af2aa20c8f2d7 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6a1fdcdeb0fe8991d4549110678cd8b5ce43d2ed..0fa5b3320d8e2f8e97aaaab2d4708898edccb8df 100644 (file)
@@ -416,7 +416,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:12 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d01eb5e72d806a1238420e3f4037ee6fc8356977..4fce3da65dfb6165ec61bec133b3ae3e8062aaec 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 135c071a9ad24645d3726e412936ba93efaaafe4..f653011cf2c9c010fb13456a2f9fb1cf69eba22c 100644 (file)
@@ -230,7 +230,7 @@ Test cases related to XML Schema parsing and validation
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2a39751eca33af55a8986248bf110866f95b536b..38821c93a036e54382d4c2c98fef32e42130a429 100644 (file)
@@ -1058,7 +1058,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index beb500298deb2fd1fca855868684fca7f59ab149..38169d2818280d7367253676669e9c3b0fe6d2ad 100644 (file)
@@ -529,7 +529,7 @@ BytesIO(&quot;&quot;&quot;\
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ce9a7ce342184200e2c9fd8e0109973b85d73eee..74f0fd2aa897a9b88f1e40e00b94215bbf1c3951 100644 (file)
@@ -284,7 +284,7 @@ opaque context object.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6e1fe2498da2954ffde32eab82e2e7d37cb72122..f320d9ffb90e7a84d0ec153e60909fbfe3ebf375 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 714379b80aef791ca4fa024ea80dd30fdf41422d..b4710395f6fb9166caeb31a6593cc6d83409e211 100644 (file)
@@ -424,7 +424,7 @@ tTest, (None, 'floatTest'): floatTest, (None, 'booleanTest'): booleanT\
 est, (None, 'setTest'): setTest, (None, 'setTest2'): setTest2, (None, \
 'argsTest1'): argsTest1, (None, 'argsTest2'): argsTest2, (None, 'resul\
 tTypesTest'): resultTypesTest, (None, 'resultTypesTest2'): resultTypes\
-Test2,}"><code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;function argsTest1 at 0x2f6<code class="variable-ellipsis">...</code></code>
+Test2,}"><code class="variable-group">{</code><code class="variable-group">(</code>None<code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">argsTest1</code><code class="variable-quote">'</code><code class="variable-group">)</code><code class="variable-op">: </code>&lt;function argsTest1 at 0x3a3<code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 <tr>
@@ -552,7 +552,7 @@ Test2,}
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fa3283793521efd1ce8ec70aa8eaaf885cfca25a..bf2625c764dca8e1734cfa6365c8a72d3d43e164 100644 (file)
@@ -1912,7 +1912,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:11 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 68874e0c64f3d5d631bff07c00a9e18eb935cb61..55c4047bdc550f7bd664b5111c579fd1ebbc564a 100644 (file)
@@ -358,7 +358,7 @@ Tests for the ETXPath class
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index e7804f341065e3e6d2f222fbffb5882c732df11b..b6ace361bfbceeffb933ad3cbec3f78ff8f2145d 100644 (file)
@@ -406,7 +406,7 @@ Tests for the XPath class
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index db214b8e2505215a77277ea4cafa88957c70b745..e94906813c0e7604250a125a9ae486c66ca3531b 100644 (file)
@@ -408,7 +408,7 @@ Tests for the EXSLT support in XPath (requires libxslt 1.1.25+)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 6df5673e6d82a9f636aa9e61871f6d0c263da23f..740516e1bee83ca39ae0ab9862be38222dd85c65 100644 (file)
@@ -1030,7 +1030,7 @@ XPath tests etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3506e44f11046cb33844d6584b0f6c09c7806081..9ab8464adcb97c15e674d0ab423ea8a076d32d27 100644 (file)
@@ -279,7 +279,7 @@ Test cases related to XSLT processing
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fb9c0399a920f9b45a3e4fe40df777b01cbb8957..48f6904a029b1dd44d7ca3720eb0ee62e1d5b5c5 100644 (file)
@@ -1804,7 +1804,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-497', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-498" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-498', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
+<a name="L765"></a><tt class="py-lineno"> 765</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
 <a name="L766"></a><tt class="py-lineno"> 766</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-499" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-499', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-500" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1820,14 +1820,14 @@ lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-505', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt>  <tt class="py-line">                         <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
 <a name="L770"></a><tt class="py-lineno"> 770</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-506" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-506', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-507" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
 xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-507', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">                          <tt class="py-string">'{http://www.w3.org/1999/XSL/Transform}stylesheet'</tt><tt class="py-op">)</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt>  <tt class="py-line">                         <tt class="py-string">'{http://www.w3.org/1999/XSL/Transform}stylesheet'</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L772"></a><tt class="py-lineno"> 772</tt>  <tt class="py-line"> </tt>
 <a name="ETreeXSLTTestCase.test_xslt_document_parse_deny"></a><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-def"><a name="L773"></a><tt class="py-lineno"> 773</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_document_parse_deny-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_document_parse_deny');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_document_parse_deny">test_xslt_document_parse_deny</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_document_parse_deny-expanded"><a name="L774"></a><tt class="py-lineno"> 774</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-508" class="py-name"><a title="lxml.etree
@@ -1851,7 +1851,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-515', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-516" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-516', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
 <a name="L777"></a><tt class="py-lineno"> 777</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-517" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1887,7 +1887,7 @@ lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
 lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-529', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt id="link-530" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-530', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test-document.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
+<a name="L782"></a><tt class="py-lineno"> 782</tt>  <tt class="py-line">                          <tt class="py-name">access_control</tt><tt class="py-op">=</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt> </tt>
 <a name="L783"></a><tt class="py-lineno"> 783</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt id="link-531" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
@@ -1901,2015 +1901,2045 @@ lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-535', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L784"></a><tt class="py-lineno"> 784</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_move_result"></a><div id="ETreeXSLTTestCase.test_xslt_move_result-def"><a name="L785"></a><tt class="py-lineno"> 785</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_move_result-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_move_result');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_move_result-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_move_result-expanded"><a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">        <tt id="link-536" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-536', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-537" class="py-name"><a title="lxml.etree
+<a name="ETreeXSLTTestCase.test_xslt_access_control_repr"></a><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-def"><a name="L785"></a><tt class="py-lineno"> 785</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_access_control_repr-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_access_control_repr');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_access_control_repr">test_xslt_access_control_repr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_access_control_repr-expanded"><a name="L786"></a><tt class="py-lineno"> 786</tt>  <tt class="py-line">        <tt class="py-name">access_control</tt> <tt class="py-op">=</tt> <tt id="link-536" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-537', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-536', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-537" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-537', 'XSLTAccessControl', 'link-491');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-538', 'DENY_ALL', 'link-524');">DENY_ALL</a></tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt id="link-539" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-539', 'type', 'link-539');">type</a></tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt class="py-name">access_control</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-540" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-540', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-541', 'XSLTAccessControl', 'link-491');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-542" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-542', 'DENY_ALL', 'link-524');">DENY_ALL</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line">                            <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-543" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-543', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-544" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-544', 'XSLTAccessControl', 'link-491');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-545" class="py-name" targets="Variable lxml.etree.XSLTAccessControl.DENY_WRITE=lxml.etree.XSLTAccessControl-class.html#DENY_WRITE"><a title="lxml.etree.XSLTAccessControl.DENY_WRITE" class="py-name" href="#" onclick="return doclink('link-545', 'DENY_WRITE', 'link-545');">DENY_WRITE</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertNotEqual</tt><tt class="py-op">(</tt><tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-546" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-546', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-547" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-547', 'XSLTAccessControl', 'link-491');">XSLTAccessControl</a></tt><tt class="py-op">.</tt><tt id="link-548" class="py-name"><a title="lxml.etree.XSLTAccessControl.DENY_ALL" class="py-name" href="#" onclick="return doclink('link-548', 'DENY_ALL', 'link-524');">DENY_ALL</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line">                            <tt class="py-name">repr</tt><tt class="py-op">(</tt><tt id="link-549" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-549', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-550" class="py-name"><a title="lxml.etree.XSLTAccessControl" class="py-name" href="#" onclick="return doclink('link-550', 'XSLTAccessControl', 'link-491');">XSLTAccessControl</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_move_result"></a><div id="ETreeXSLTTestCase.test_xslt_move_result-def"><a name="L794"></a><tt class="py-lineno"> 794</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_move_result-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_move_result');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_move_result">test_xslt_move_result</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_move_result-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_move_result-expanded"><a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line">        <tt id="link-551" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-551', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt id="link-552" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-552', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-553" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-538', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-539" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-539', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L787"></a><tt class="py-lineno"> 787</tt>  <tt class="py-line"><tt class="py-string">        &lt;transform&gt;</tt> </tt>
-<a name="L788"></a><tt class="py-lineno"> 788</tt>  <tt class="py-line"><tt class="py-string">          &lt;widget displayType="fieldset"/&gt;</tt> </tt>
-<a name="L789"></a><tt class="py-lineno"> 789</tt>  <tt class="py-line"><tt class="py-string">        &lt;/transform&gt;'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L790"></a><tt class="py-lineno"> 790</tt>  <tt class="py-line"> </tt>
-<a name="L791"></a><tt class="py-lineno"> 791</tt>  <tt class="py-line">        <tt id="link-540" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-540', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-541" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-553', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-554" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-554', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line"><tt class="py-string">        &lt;transform&gt;</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line"><tt class="py-string">          &lt;widget displayType="fieldset"/&gt;</tt> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line"><tt class="py-string">        &lt;/transform&gt;'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line"> </tt>
+<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line">        <tt id="link-555" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-555', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-556" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-541', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-542" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-542', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-543" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-556', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-557" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-557', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-558" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-543', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-544" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-558', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-559" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-544', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-545" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-545', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L792"></a><tt class="py-lineno"> 792</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L793"></a><tt class="py-lineno"> 793</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:output method="html" indent="no"/&gt;</tt> </tt>
-<a name="L794"></a><tt class="py-lineno"> 794</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L795"></a><tt class="py-lineno"> 795</tt>  <tt class="py-line"><tt class="py-string">            &lt;html&gt;</tt> </tt>
-<a name="L796"></a><tt class="py-lineno"> 796</tt>  <tt class="py-line"><tt class="py-string">              &lt;xsl:apply-templates/&gt;</tt> </tt>
-<a name="L797"></a><tt class="py-lineno"> 797</tt>  <tt class="py-line"><tt class="py-string">            &lt;/html&gt;</tt> </tt>
-<a name="L798"></a><tt class="py-lineno"> 798</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
-<a name="L799"></a><tt class="py-lineno"> 799</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L800"></a><tt class="py-lineno"> 800</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="widget"&gt;</tt> </tt>
-<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:element name="{@displayType}"/&gt;</tt> </tt>
-<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
-<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line"> </tt>
-<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-546" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-546', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-547" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-547', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line">        <tt id="link-548" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-548', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-549" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-549', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
-<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt id="link-550" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-550', 'root', 'link-365');">root</a></tt> <tt class="py-comment"># segfaulted before</tt> </tt>
-</div><a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line">         </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi"></a><div id="ETreeXSLTTestCase.test_xslt_pi-def"><a name="L810"></a><tt class="py-lineno"> 810</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi-expanded"><a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-551" class="py-name"><a title="lxml.etree._ElementTree.parse
-lxml.etree.parse
-lxml.html.ElementSoup.parse
-lxml.html.html5parser.parse
-lxml.html.soupparser.parse
-lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-551', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="%s"?&gt;</tt> </tt>
-<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt> <tt class="py-op">%</tt> <tt id="link-552" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-552', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test1.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line"> </tt>
-<a name="L819"></a><tt class="py-lineno"> 819</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-553" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-553', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-554" class="py-name" targets="Method lxml.etree._Element.getprevious()=lxml.etree._Element-class.html#getprevious"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-554', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-555" class="py-name" targets="Method lxml.etree._XSLTProcessingInstruction.parseXSL()=lxml.etree._XSLTProcessingInstruction-class.html#parseXSL"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-555', 'parseXSL', 'link-555');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-556" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-556', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
-<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-557" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-559', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-560" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-560', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L802"></a><tt class="py-lineno"> 802</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:output method="html" indent="no"/&gt;</tt> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt>  <tt class="py-line"><tt class="py-string">            &lt;html&gt;</tt> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt>  <tt class="py-line"><tt class="py-string">              &lt;xsl:apply-templates/&gt;</tt> </tt>
+<a name="L806"></a><tt class="py-lineno"> 806</tt>  <tt class="py-line"><tt class="py-string">            &lt;/html&gt;</tt> </tt>
+<a name="L807"></a><tt class="py-lineno"> 807</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="widget"&gt;</tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:element name="{@displayType}"/&gt;</tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt>  <tt class="py-line"> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-561" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-561', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-562" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-562', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt>  <tt class="py-line">        <tt id="link-563" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-563', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-564" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-564', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt id="link-565" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-565', 'root', 'link-365');">root</a></tt> <tt class="py-comment"># segfaulted before</tt> </tt>
+</div><a name="L818"></a><tt class="py-lineno"> 818</tt>  <tt class="py-line">         </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi"></a><div id="ETreeXSLTTestCase.test_xslt_pi-def"><a name="L819"></a><tt class="py-lineno"> 819</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi">test_xslt_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi-expanded"><a name="L820"></a><tt class="py-lineno"> 820</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.parse
+lxml.html.ElementSoup.parse
+lxml.html.html5parser.parse
+lxml.html.soupparser.parse
+lxml.objectify.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-566', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="%s"?&gt;</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt> <tt class="py-op">%</tt> <tt id="link-567" class="py-name"><a title="lxml.tests.common_imports.fileInTestDir" class="py-name" href="#" onclick="return doclink('link-567', 'fileInTestDir', 'link-17');">fileInTestDir</a></tt><tt class="py-op">(</tt><tt class="py-string">"test1.xslt"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line"> </tt>
+<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-568" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-568', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-569" class="py-name" targets="Method lxml.etree._Element.getprevious()=lxml.etree._Element-class.html#getprevious"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-569', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-570" class="py-name" targets="Method lxml.etree._XSLTProcessingInstruction.parseXSL()=lxml.etree._XSLTProcessingInstruction-class.html#parseXSL"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-570', 'parseXSL', 'link-570');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-571" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-571', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-572" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-557', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L822"></a><tt class="py-lineno"> 822</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid"></a><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-def"><a name="L823"></a><tt class="py-lineno"> 823</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-expanded"><a name="L824"></a><tt class="py-lineno"> 824</tt>  <tt class="py-line">        <tt class="py-comment"># test xml:id dictionary lookup mechanism</tt> </tt>
-<a name="L825"></a><tt class="py-lineno"> 825</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-558" class="py-name"><a title="lxml.etree._ElementTree.parse
-lxml.etree.parse
-lxml.html.ElementSoup.parse
-lxml.html.html5parser.parse
-lxml.html.soupparser.parse
-lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-558', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L826"></a><tt class="py-lineno"> 826</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L827"></a><tt class="py-lineno"> 827</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="#style"?&gt;</tt> </tt>
-<a name="L828"></a><tt class="py-lineno"> 828</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L829"></a><tt class="py-lineno"> 829</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L830"></a><tt class="py-lineno"> 830</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:stylesheet version="1.0" xml:id="style"</tt> </tt>
-<a name="L832"></a><tt class="py-lineno"> 832</tt>  <tt class="py-line"><tt class="py-string">      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line"><tt class="py-string">      &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:template&gt;</tt> </tt>
-<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"> </tt>
-<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-559" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-559', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-560" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-560', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-561" class="py-name"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-561', 'parseXSL', 'link-555');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-562" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-562', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
-<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-563" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-572', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L831"></a><tt class="py-lineno"> 831</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid"></a><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-def"><a name="L832"></a><tt class="py-lineno"> 832</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_xmlid">test_xslt_pi_embedded_xmlid</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_xmlid-expanded"><a name="L833"></a><tt class="py-lineno"> 833</tt>  <tt class="py-line">        <tt class="py-comment"># test xml:id dictionary lookup mechanism</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-573" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.parse
+lxml.html.ElementSoup.parse
+lxml.html.html5parser.parse
+lxml.html.soupparser.parse
+lxml.objectify.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-573', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="#style"?&gt;</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:stylesheet version="1.0" xml:id="style"</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt>  <tt class="py-line"><tt class="py-string">      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L842"></a><tt class="py-lineno"> 842</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line"><tt class="py-string">      &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:template&gt;</tt> </tt>
+<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-574" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-574', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-575', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-576" class="py-name"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-576', 'parseXSL', 'link-570');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-577', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-578" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-563', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L843"></a><tt class="py-lineno"> 843</tt>  <tt class="py-line"> </tt>
-<a name="L844"></a><tt class="py-lineno"> 844</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-564" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-578', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt>  <tt class="py-line"> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-579" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-564', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-565" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-565', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">style_root</tt><tt class="py-op">)</tt> </tt>
-<a name="L845"></a><tt class="py-lineno"> 845</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L846"></a><tt class="py-lineno"> 846</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L847"></a><tt class="py-lineno"> 847</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L848"></a><tt class="py-lineno"> 848</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L849"></a><tt class="py-lineno"> 849</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L850"></a><tt class="py-lineno"> 850</tt>  <tt class="py-line">                          <tt id="link-566" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-566', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L851"></a><tt class="py-lineno"> 851</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_embedded_id"></a><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-def"><a name="L852"></a><tt class="py-lineno"> 852</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_embedded_id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-expanded"><a name="L853"></a><tt class="py-lineno"> 853</tt>  <tt class="py-line">        <tt class="py-comment"># test XPath lookup mechanism</tt> </tt>
-<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-567" class="py-name"><a title="lxml.etree._ElementTree.parse
-lxml.etree.parse
-lxml.html.ElementSoup.parse
-lxml.html.html5parser.parse
-lxml.html.soupparser.parse
-lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-567', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="#style"?&gt;</tt> </tt>
-<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L861"></a><tt class="py-lineno"> 861</tt>  <tt class="py-line"> </tt>
-<a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">        <tt id="link-568" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-568', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-569" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-579', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-580', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">style_root</tt><tt class="py-op">)</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt>  <tt class="py-line">                          <tt id="link-581" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-581', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L860"></a><tt class="py-lineno"> 860</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_embedded_id"></a><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-def"><a name="L861"></a><tt class="py-lineno"> 861</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_embedded_id');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_embedded_id">test_xslt_pi_embedded_id</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_embedded_id-expanded"><a name="L862"></a><tt class="py-lineno"> 862</tt>  <tt class="py-line">        <tt class="py-comment"># test XPath lookup mechanism</tt> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-582" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-569', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L863"></a><tt class="py-lineno"> 863</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0" xml:id="style"</tt> </tt>
-<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line"> </tt>
-<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-570" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-570', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-571" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-571', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt id="link-572" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-572', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-573" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-573', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line"> </tt>
-<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-574" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-574', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-575" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-575', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-576" class="py-name"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-576', 'parseXSL', 'link-555');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-577', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
-<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-578" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-582', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="#style"?&gt;</tt> </tt>
+<a name="L866"></a><tt class="py-lineno"> 866</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L867"></a><tt class="py-lineno"> 867</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt>  <tt class="py-line"> </tt>
+<a name="L871"></a><tt class="py-lineno"> 871</tt>  <tt class="py-line">        <tt id="link-583" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-583', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-584" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree.parse
+lxml.html.ElementSoup.parse
+lxml.html.html5parser.parse
+lxml.html.soupparser.parse
+lxml.objectify.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-584', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0" xml:id="style"</tt> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L874"></a><tt class="py-lineno"> 874</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L875"></a><tt class="py-lineno"> 875</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line"> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line">        <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-585" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-585', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-586" class="py-name" targets="Method lxml.etree._Element.append()=lxml.etree._Element-class.html#append"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-586', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt id="link-587" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-587', 'style', 'link-24');">style</a></tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-588', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line">        <tt class="py-name">style_root</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-589" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-589', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-590" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-590', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.etree._XSLTProcessingInstruction.parseXSL" class="py-name" href="#" onclick="return doclink('link-591', 'parseXSL', 'link-570');">parseXSL</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-592" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-592', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"{http://www.w3.org/1999/XSL/Transform}stylesheet"</tt><tt class="py-op">,</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line">                          <tt class="py-name">style_root</tt><tt class="py-op">.</tt><tt id="link-593" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-578', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L877"></a><tt class="py-lineno"> 877</tt>  <tt class="py-line"> </tt>
-<a name="L878"></a><tt class="py-lineno"> 878</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-579" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-593', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt>  <tt class="py-line"> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-594" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-579', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-580', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">style_root</tt><tt class="py-op">)</tt> </tt>
-<a name="L879"></a><tt class="py-lineno"> 879</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L880"></a><tt class="py-lineno"> 880</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L881"></a><tt class="py-lineno"> 881</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L882"></a><tt class="py-lineno"> 882</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L883"></a><tt class="py-lineno"> 883</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L884"></a><tt class="py-lineno"> 884</tt>  <tt class="py-line">                          <tt id="link-581" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-581', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L885"></a><tt class="py-lineno"> 885</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_get"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get-def"><a name="L886"></a><tt class="py-lineno"> 886</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get-expanded"><a name="L887"></a><tt class="py-lineno"> 887</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-582" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-594', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-595', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">style_root</tt><tt class="py-op">)</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line">                          <tt id="link-596" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-596', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_get"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get-def"><a name="L895"></a><tt class="py-lineno"> 895</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get">test_xslt_pi_get</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_get-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get-expanded"><a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-597" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-582', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L888"></a><tt class="py-lineno"> 888</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L889"></a><tt class="py-lineno"> 889</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
-<a name="L890"></a><tt class="py-lineno"> 890</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L891"></a><tt class="py-lineno"> 891</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L892"></a><tt class="py-lineno"> 892</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L893"></a><tt class="py-lineno"> 893</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L894"></a><tt class="py-lineno"> 894</tt>  <tt class="py-line"> </tt>
-<a name="L895"></a><tt class="py-lineno"> 895</tt>  <tt class="py-line">        <tt id="link-583" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-583', 'pi', 'link-583');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-584" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-584', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-585" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-585', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L896"></a><tt class="py-lineno"> 896</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-586" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-586', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-587" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-597', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line">        <tt id="link-598" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-598', 'pi', 'link-598');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-599" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-599', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-600" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-600', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-601" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-601', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-602" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-587', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L897"></a><tt class="py-lineno"> 897</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_get_all"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-def"><a name="L898"></a><tt class="py-lineno"> 898</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_all-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-expanded"><a name="L899"></a><tt class="py-lineno"> 899</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-602', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_get_all"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-def"><a name="L907"></a><tt class="py-lineno"> 907</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_all-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_all');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all">test_xslt_pi_get_all</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all-expanded"><a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-603" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-588', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L900"></a><tt class="py-lineno"> 900</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L901"></a><tt class="py-lineno"> 901</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
-<a name="L902"></a><tt class="py-lineno"> 902</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L903"></a><tt class="py-lineno"> 903</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L904"></a><tt class="py-lineno"> 904</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L905"></a><tt class="py-lineno"> 905</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L906"></a><tt class="py-lineno"> 906</tt>  <tt class="py-line"> </tt>
-<a name="L907"></a><tt class="py-lineno"> 907</tt>  <tt class="py-line">        <tt id="link-589" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-589', 'pi', 'link-583');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-590" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-590', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-591', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L908"></a><tt class="py-lineno"> 908</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-592" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-592', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-593" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-603', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line"> </tt>
+<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line">        <tt id="link-604" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-604', 'pi', 'link-598');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-605" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-605', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-606" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-606', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-607" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-607', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-608" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-593', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L909"></a><tt class="py-lineno"> 909</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"text/xsl"</tt><tt class="py-op">,</tt> <tt id="link-594" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-594', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-608', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"text/xsl"</tt><tt class="py-op">,</tt> <tt id="link-609" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-609', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-610" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-595', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"type"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L910"></a><tt class="py-lineno"> 910</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-596" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-596', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-597" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-610', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"type"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-611" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-611', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-612" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-597', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"motz"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L911"></a><tt class="py-lineno"> 911</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-def"><a name="L912"></a><tt class="py-lineno"> 912</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_all_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_all_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-expanded"><a name="L913"></a><tt class="py-lineno"> 913</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-598" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-612', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"motz"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-def"><a name="L921"></a><tt class="py-lineno"> 921</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_all_reversed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_all_reversed">test_xslt_pi_get_all_reversed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_all_reversed-expanded"><a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-613" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-598', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L914"></a><tt class="py-lineno"> 914</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L915"></a><tt class="py-lineno"> 915</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet href="TEST" type="text/xsl"?&gt;</tt> </tt>
-<a name="L916"></a><tt class="py-lineno"> 916</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L917"></a><tt class="py-lineno"> 917</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L918"></a><tt class="py-lineno"> 918</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L919"></a><tt class="py-lineno"> 919</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L920"></a><tt class="py-lineno"> 920</tt>  <tt class="py-line"> </tt>
-<a name="L921"></a><tt class="py-lineno"> 921</tt>  <tt class="py-line">        <tt id="link-599" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-599', 'pi', 'link-583');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-600" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-600', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-601" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-601', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L922"></a><tt class="py-lineno"> 922</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-602" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-602', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-603" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-613', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet href="TEST" type="text/xsl"?&gt;</tt> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L926"></a><tt class="py-lineno"> 926</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line"> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line">        <tt id="link-614" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-614', 'pi', 'link-598');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-615" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-615', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-616" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-616', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-617" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-617', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-618" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-603', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L923"></a><tt class="py-lineno"> 923</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"text/xsl"</tt><tt class="py-op">,</tt> <tt id="link-604" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-604', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-605" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-618', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"text/xsl"</tt><tt class="py-op">,</tt> <tt id="link-619" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-619', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-620" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-605', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"type"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L924"></a><tt class="py-lineno"> 924</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-606" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-606', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-607" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-620', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"type"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-621" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-621', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-622" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-607', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"motz"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L925"></a><tt class="py-lineno"> 925</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_get_unknown"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-def"><a name="L926"></a><tt class="py-lineno"> 926</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-expanded"><a name="L927"></a><tt class="py-lineno"> 927</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-608" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-622', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"motz"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_get_unknown"></a><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-def"><a name="L935"></a><tt class="py-lineno"> 935</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_get_unknown');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_get_unknown">test_xslt_pi_get_unknown</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_get_unknown-expanded"><a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-623" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-608', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L928"></a><tt class="py-lineno"> 928</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L929"></a><tt class="py-lineno"> 929</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
-<a name="L930"></a><tt class="py-lineno"> 930</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L931"></a><tt class="py-lineno"> 931</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L932"></a><tt class="py-lineno"> 932</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L933"></a><tt class="py-lineno"> 933</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L934"></a><tt class="py-lineno"> 934</tt>  <tt class="py-line"> </tt>
-<a name="L935"></a><tt class="py-lineno"> 935</tt>  <tt class="py-line">        <tt id="link-609" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-609', 'pi', 'link-583');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-610" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-610', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-611" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-611', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L936"></a><tt class="py-lineno"> 936</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-612" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-612', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-613" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-623', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line">        <tt id="link-624" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-624', 'pi', 'link-598');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-625" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-625', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-626" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-626', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-627" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-627', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-628" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-613', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"unknownattribute"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L937"></a><tt class="py-lineno"> 937</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_set_replace"></a><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-def"><a name="L938"></a><tt class="py-lineno"> 938</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_set_replace-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_set_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-expanded"><a name="L939"></a><tt class="py-lineno"> 939</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-614" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-628', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"unknownattribute"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_set_replace"></a><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-def"><a name="L947"></a><tt class="py-lineno"> 947</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_set_replace-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_set_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_replace">test_xslt_pi_set_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_set_replace-expanded"><a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-629" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-614', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L940"></a><tt class="py-lineno"> 940</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L941"></a><tt class="py-lineno"> 941</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
-<a name="L942"></a><tt class="py-lineno"> 942</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L943"></a><tt class="py-lineno"> 943</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L944"></a><tt class="py-lineno"> 944</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L945"></a><tt class="py-lineno"> 945</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L946"></a><tt class="py-lineno"> 946</tt>  <tt class="py-line"> </tt>
-<a name="L947"></a><tt class="py-lineno"> 947</tt>  <tt class="py-line">        <tt id="link-615" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-615', 'pi', 'link-583');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-616" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-616', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-617" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-617', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L948"></a><tt class="py-lineno"> 948</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-618" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-618', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-619" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-629', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl" href="TEST"?&gt;</tt> </tt>
+<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line"> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line">        <tt id="link-630" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-630', 'pi', 'link-598');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-631" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-631', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-632" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-632', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-633" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-633', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-634" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-619', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L949"></a><tt class="py-lineno"> 949</tt>  <tt class="py-line"> </tt>
-<a name="L950"></a><tt class="py-lineno"> 950</tt>  <tt class="py-line">        <tt id="link-620" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-620', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-621" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-621', 'set', 'link-621');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST123"</tt><tt class="py-op">)</tt> </tt>
-<a name="L951"></a><tt class="py-lineno"> 951</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST123"</tt><tt class="py-op">,</tt> <tt id="link-622" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-622', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-623" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-634', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line"> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line">        <tt id="link-635" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-635', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-636" class="py-name" targets="Method lxml.etree._Element.set()=lxml.etree._Element-class.html#set,Method lxml.etree._XSLTProcessingInstruction.set()=lxml.etree._XSLTProcessingInstruction-class.html#set"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-636', 'set', 'link-636');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST123"</tt><tt class="py-op">)</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST123"</tt><tt class="py-op">,</tt> <tt id="link-637" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-637', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-638" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-623', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L952"></a><tt class="py-lineno"> 952</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTTestCase.test_xslt_pi_set_new"></a><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-def"><a name="L953"></a><tt class="py-lineno"> 953</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_set_new-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_set_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-expanded"><a name="L954"></a><tt class="py-lineno"> 954</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-624" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-638', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTTestCase.test_xslt_pi_set_new"></a><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-def"><a name="L962"></a><tt class="py-lineno"> 962</tt> <a class="py-toggle" href="#" id="ETreeXSLTTestCase.test_xslt_pi_set_new-toggle" onclick="return toggle('ETreeXSLTTestCase.test_xslt_pi_set_new');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTTestCase-class.html#test_xslt_pi_set_new">test_xslt_pi_set_new</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTTestCase.test_xslt_pi_set_new-expanded"><a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-639" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-624', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L955"></a><tt class="py-lineno"> 955</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L956"></a><tt class="py-lineno"> 956</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl"?&gt;</tt> </tt>
-<a name="L957"></a><tt class="py-lineno"> 957</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
-<a name="L958"></a><tt class="py-lineno"> 958</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
-<a name="L959"></a><tt class="py-lineno"> 959</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
-<a name="L960"></a><tt class="py-lineno"> 960</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L961"></a><tt class="py-lineno"> 961</tt>  <tt class="py-line"> </tt>
-<a name="L962"></a><tt class="py-lineno"> 962</tt>  <tt class="py-line">        <tt id="link-625" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-625', 'pi', 'link-583');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-626" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-626', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-627" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-627', 'getprevious', 'link-554');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L963"></a><tt class="py-lineno"> 963</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-628" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-628', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-629" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-639', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml-stylesheet type="text/xsl"?&gt;</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;</tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"><tt class="py-string">  &lt;b&gt;B&lt;/b&gt;</tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt>  <tt class="py-line"><tt class="py-string">  &lt;c&gt;C&lt;/c&gt;</tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line"><tt class="py-string">&lt;/a&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line"> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt>  <tt class="py-line">        <tt id="link-640" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-640', 'pi', 'link-598');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-641" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-641', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-642" class="py-name"><a title="lxml.etree._Element.getprevious" class="py-name" href="#" onclick="return doclink('link-642', 'getprevious', 'link-569');">getprevious</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt id="link-643" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-643', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-644" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-629', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L964"></a><tt class="py-lineno"> 964</tt>  <tt class="py-line"> </tt>
-<a name="L965"></a><tt class="py-lineno"> 965</tt>  <tt class="py-line">        <tt id="link-630" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-630', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-631" class="py-name"><a title="lxml.etree._Element.set
-lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-631', 'set', 'link-621');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
-<a name="L966"></a><tt class="py-lineno"> 966</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-632" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-632', 'pi', 'link-583');">pi</a></tt><tt class="py-op">.</tt><tt id="link-633" class="py-name"><a title="lxml.etree._Attrib.get
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-644', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line"> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line">        <tt id="link-645" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-645', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-646" class="py-name"><a title="lxml.etree._Element.set
+lxml.etree._XSLTProcessingInstruction.set" class="py-name" href="#" onclick="return doclink('link-646', 'set', 'link-636');">set</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">,</tt> <tt class="py-string">"TEST"</tt><tt class="py-op">)</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">"TEST"</tt><tt class="py-op">,</tt> <tt id="link-647" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-647', 'pi', 'link-598');">pi</a></tt><tt class="py-op">.</tt><tt id="link-648" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-633', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L967"></a><tt class="py-lineno"> 967</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase"></a><div id="ETreeEXSLTTestCase-def"><a name="L968"></a><tt class="py-lineno"> 968</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase-toggle" onclick="return toggle('ETreeEXSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeEXSLTTestCase-expanded"><a name="L969"></a><tt class="py-lineno"> 969</tt>  <tt class="py-line">    <tt class="py-docstring">"""EXSLT tests"""</tt> </tt>
-<a name="L970"></a><tt class="py-lineno"> 970</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_str"></a><div id="ETreeEXSLTTestCase.test_exslt_str-def"><a name="L971"></a><tt class="py-lineno"> 971</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_str-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_str-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_str-expanded"><a name="L972"></a><tt class="py-lineno"> 972</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-634" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-648', 'get', 'link-443');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"href"</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase"></a><div id="ETreeEXSLTTestCase-def"><a name="L977"></a><tt class="py-lineno"> 977</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase-toggle" onclick="return toggle('ETreeEXSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html">ETreeEXSLTTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeEXSLTTestCase-expanded"><a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line">    <tt class="py-docstring">"""EXSLT tests"""</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_str"></a><div id="ETreeEXSLTTestCase.test_exslt_str-def"><a name="L980"></a><tt class="py-lineno"> 980</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_str-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_str');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str">test_exslt_str</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_str-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_str-expanded"><a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-649" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-634', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L973"></a><tt class="py-lineno"> 973</tt>  <tt class="py-line">        <tt id="link-635" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-635', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-636" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-649', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line">        <tt id="link-650" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-650', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-651" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-636', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L974"></a><tt class="py-lineno"> 974</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L975"></a><tt class="py-lineno"> 975</tt>  <tt class="py-line"><tt class="py-string">    xmlns:str="http://exslt.org/strings"</tt> </tt>
-<a name="L976"></a><tt class="py-lineno"> 976</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L977"></a><tt class="py-lineno"> 977</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="str xsl"&gt;</tt> </tt>
-<a name="L978"></a><tt class="py-lineno"> 978</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="text()"&gt;</tt> </tt>
-<a name="L979"></a><tt class="py-lineno"> 979</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:value-of select="str:align(string(.), '***', 'center')" /&gt;</tt> </tt>
-<a name="L980"></a><tt class="py-lineno"> 980</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L981"></a><tt class="py-lineno"> 981</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L982"></a><tt class="py-lineno"> 982</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy&gt;</tt> </tt>
-<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:apply-templates/&gt;</tt> </tt>
-<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:copy&gt;</tt> </tt>
-<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line"> </tt>
-<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-637" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-651', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt>  <tt class="py-line"><tt class="py-string">    xmlns:str="http://exslt.org/strings"</tt> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L986"></a><tt class="py-lineno"> 986</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="str xsl"&gt;</tt> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="text()"&gt;</tt> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:value-of select="str:align(string(.), '***', 'center')" /&gt;</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy&gt;</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:apply-templates/&gt;</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:copy&gt;</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line"> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-652" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-637', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-638" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-638', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-639" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-639', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;&lt;b&gt;*B*&lt;/b&gt;&lt;c&gt;*C*&lt;/c&gt;&lt;/a&gt;</tt> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">                          <tt id="link-640" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-640', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line"> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-641" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-652', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-653" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-653', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-654" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-654', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line"><tt class="py-string">&lt;a&gt;&lt;b&gt;*B*&lt;/b&gt;&lt;c&gt;*C*&lt;/c&gt;&lt;/a&gt;</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line">                          <tt id="link-655" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-655', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line"> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-656" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-641', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-642" class="py-name"><a title="lxml.etree.LIBXSLT_VERSION" class="py-name" href="#" onclick="return doclink('link-642', 'LIBXSLT_VERSION', 'link-37');">LIBXSLT_VERSION</a></tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">21</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_str_attribute_replace"></a><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-def"><a name="L997"></a><tt class="py-lineno"> 997</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_str_attribute_replace');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-expanded"><a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-643" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-656', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree.LIBXSLT_VERSION" class="py-name" href="#" onclick="return doclink('link-657', 'LIBXSLT_VERSION', 'link-37');">LIBXSLT_VERSION</a></tt> <tt class="py-op">&gt;=</tt> <tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">21</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_str_attribute_replace"></a><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-def"><a name="L1006"></a><tt class="py-lineno">1006</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_str_attribute_replace');">-</a><tt class="py-line">        <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_str_attribute_replace">test_exslt_str_attribute_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-collapsed" style="display:none;" pad="++++" indent="++++++++++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_str_attribute_replace-expanded"><a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">            <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-658" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-643', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">            <tt id="link-644" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-644', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-645" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-658', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">            <tt id="link-659" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-659', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-660" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-645', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:stylesheet version = "1.0"</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line"><tt class="py-string">          xmlns:xsl='http://www.w3.org/1999/XSL/Transform'</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line"><tt class="py-string">          xmlns:str="http://exslt.org/strings"</tt> </tt>
-<a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"><tt class="py-string">          extension-element-prefixes="str"&gt;</tt> </tt>
-<a name="L1004"></a><tt class="py-lineno">1004</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line"><tt class="py-string">            &lt;h1 class="{str:replace('abc', 'b', 'x')}"&gt;test&lt;/h1&gt;</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
-<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"> </tt>
-<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">            <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-646" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-660', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:stylesheet version = "1.0"</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"><tt class="py-string">          xmlns:xsl='http://www.w3.org/1999/XSL/Transform'</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line"><tt class="py-string">          xmlns:str="http://exslt.org/strings"</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line"><tt class="py-string">          extension-element-prefixes="str"&gt;</tt> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line"><tt class="py-string">            &lt;h1 class="{str:replace('abc', 'b', 'x')}"&gt;test&lt;/h1&gt;</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt>  <tt class="py-line"> </tt>
+<a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">            <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-661" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-646', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-647" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-647', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-648" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-648', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">            <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1014"></a><tt class="py-lineno">1014</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1015"></a><tt class="py-lineno">1015</tt>  <tt class="py-line"><tt class="py-string">&lt;h1 class="axc"&gt;test&lt;/h1&gt;</tt> </tt>
-<a name="L1016"></a><tt class="py-lineno">1016</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L1017"></a><tt class="py-lineno">1017</tt>  <tt class="py-line">                              <tt id="link-649" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-649', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1018"></a><tt class="py-lineno">1018</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_math"></a><div id="ETreeEXSLTTestCase.test_exslt_math-def"><a name="L1019"></a><tt class="py-lineno">1019</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_math-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_math');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_math-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_math-expanded"><a name="L1020"></a><tt class="py-lineno">1020</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-661', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-662" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-662', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-663" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-663', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">            <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line"><tt class="py-string">&lt;h1 class="axc"&gt;test&lt;/h1&gt;</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line">                              <tt id="link-664" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-664', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_math"></a><div id="ETreeEXSLTTestCase.test_exslt_math-def"><a name="L1028"></a><tt class="py-lineno">1028</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_math-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_math');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_math">test_exslt_math</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_math-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_math-expanded"><a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-665" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-650', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1021"></a><tt class="py-lineno">1021</tt>  <tt class="py-line">        <tt id="link-651" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-651', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-652" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-665', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">        <tt id="link-666" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-666', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-667" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-652', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1022"></a><tt class="py-lineno">1022</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1023"></a><tt class="py-lineno">1023</tt>  <tt class="py-line"><tt class="py-string">    xmlns:math="http://exslt.org/math"</tt> </tt>
-<a name="L1024"></a><tt class="py-lineno">1024</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1025"></a><tt class="py-lineno">1025</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="math xsl"&gt;</tt> </tt>
-<a name="L1026"></a><tt class="py-lineno">1026</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy&gt;</tt> </tt>
-<a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:attribute name="pi"&gt;</tt> </tt>
-<a name="L1029"></a><tt class="py-lineno">1029</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:value-of select="math:constant('PI', count(*)+2)"/&gt;</tt> </tt>
-<a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:attribute&gt;</tt> </tt>
-<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:apply-templates/&gt;</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:copy&gt;</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line"> </tt>
-<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-653" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-667', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line"><tt class="py-string">    xmlns:math="http://exslt.org/math"</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="math xsl"&gt;</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:copy&gt;</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:attribute name="pi"&gt;</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:value-of select="math:constant('PI', count(*)+2)"/&gt;</tt> </tt>
+<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:attribute&gt;</tt> </tt>
+<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:apply-templates/&gt;</tt> </tt>
+<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:copy&gt;</tt> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt>  <tt class="py-line"> </tt>
+<a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-668" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-653', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-654" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-654', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-655" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-655', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line"><tt class="py-string">&lt;a pi="3.14"&gt;&lt;b pi="3"&gt;B&lt;/b&gt;&lt;c pi="3"&gt;C&lt;/c&gt;&lt;/a&gt;</tt> </tt>
-<a name="L1041"></a><tt class="py-lineno">1041</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
-<a name="L1042"></a><tt class="py-lineno">1042</tt>  <tt class="py-line">                          <tt id="link-656" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-656', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1043"></a><tt class="py-lineno">1043</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_test"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-def"><a name="L1044"></a><tt class="py-lineno">1044</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_test-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_test');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-expanded"><a name="L1045"></a><tt class="py-lineno">1045</tt>  <tt class="py-line">        <tt id="link-657" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-657', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-658" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-668', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-669" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-669', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-670" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-670', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"><tt class="py-string">&lt;a pi="3.14"&gt;&lt;b pi="3"&gt;B&lt;/b&gt;&lt;c pi="3"&gt;C&lt;/c&gt;&lt;/a&gt;</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">,</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">                          <tt id="link-671" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-671', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_test"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-def"><a name="L1053"></a><tt class="py-lineno">1053</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_test-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_test');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_test">test_exslt_regexp_test</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_test-expanded"><a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">        <tt id="link-672" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-672', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-673" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-658', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-659" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-659', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-660" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-673', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-674" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-674', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-675" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-660', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-675', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-676" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-661', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-662" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-662', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1046"></a><tt class="py-lineno">1046</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1047"></a><tt class="py-lineno">1047</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1048"></a><tt class="py-lineno">1048</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1050"></a><tt class="py-lineno">1050</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;&lt;xsl:copy-of select="*[regexp:test(string(.), '8.')]"/&gt;&lt;/test&gt;</tt> </tt>
-<a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-663" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-663', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-664" class="py-name"><a title="lxml.etree
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-676', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-677" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-677', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;&lt;xsl:copy-of select="*[regexp:test(string(.), '8.')]"/&gt;&lt;/test&gt;</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-678" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-678', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-679" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-664', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-665" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-679', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-680" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-665', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-666" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-666', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;123&lt;/b&gt;&lt;b&gt;098&lt;/b&gt;&lt;b&gt;987&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1055"></a><tt class="py-lineno">1055</tt>  <tt class="py-line">        <tt id="link-667" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-667', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-668" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-668', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-669" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-669', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-670" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-680', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-681" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-681', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;123&lt;/b&gt;&lt;b&gt;098&lt;/b&gt;&lt;b&gt;987&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt id="link-682" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-682', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-683" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-683', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-684" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-684', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-670', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-671" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-671', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-672" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-672', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-673" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-685', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-686', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-687" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-687', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-688" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-673', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line">                          <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1061"></a><tt class="py-lineno">1061</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-674" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-674', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-675" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-688', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">                          <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-689" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-689', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-690" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-675', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">                          <tt class="py-string">'987'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1063"></a><tt class="py-lineno">1063</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_replace"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-def"><a name="L1064"></a><tt class="py-lineno">1064</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_replace-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-expanded"><a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">        <tt id="link-676" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-676', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-677" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-690', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">                          <tt class="py-string">'987'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_replace"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-def"><a name="L1073"></a><tt class="py-lineno">1073</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_replace-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_replace');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_replace">test_exslt_regexp_replace</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_replace-expanded"><a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">        <tt id="link-691" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-691', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-692" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-677', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-678" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-678', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-679" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-692', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-693" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-693', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-694" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-679', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-680" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-694', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-695" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-680', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:copy-of select="regexp:replace(string(.), 'd.', '',   'XX')"/&gt;</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:text&gt;-&lt;/xsl:text&gt;</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:copy-of select="regexp:replace(string(.), 'd.', 'gi', 'XX')"/&gt;</tt> </tt>
-<a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-681" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-681', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-682" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-682', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-683" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-695', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1077"></a><tt class="py-lineno">1077</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:copy-of select="regexp:replace(string(.), 'd.', '',   'XX')"/&gt;</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:text&gt;-&lt;/xsl:text&gt;</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:copy-of select="regexp:replace(string(.), 'd.', 'gi', 'XX')"/&gt;</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-696" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-696', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-697" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-697', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-698" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-683', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-684" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-684', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;abdCdEeDed&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">        <tt id="link-685" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-685', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-686" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-686', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-687" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-687', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-688" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-698', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-699" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-699', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;abdCdEeDed&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt id="link-700" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-700', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-701" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-701', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-702" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-702', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-703" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-688', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-689" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-689', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-690" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-690', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-691" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-703', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">                          <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-704" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-704', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-705" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-705', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-706" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-691', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'abXXdEeDed-abXXXXeXXd'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_match"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-def"><a name="L1085"></a><tt class="py-lineno">1085</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-expanded"><a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt id="link-692" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-692', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-693" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-706', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'abXXdEeDed-abXXXXeXXd'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_match"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-def"><a name="L1094"></a><tt class="py-lineno">1094</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match">test_exslt_regexp_match</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match-expanded"><a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">        <tt id="link-707" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-707', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-708" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-693', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-694" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-694', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-695" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-708', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-709" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-709', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-710" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-695', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-710', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-711" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-696', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
-<a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line"><tt class="py-string">      &lt;test1&gt;&lt;xsl:copy-of  select="regexp:match(string(.), 'd.')"/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line"><tt class="py-string">      &lt;test2&gt;&lt;xsl:copy-of  select="regexp:match(string(.), 'd.', 'g')"/&gt;&lt;/test2&gt;</tt> </tt>
-<a name="L1094"></a><tt class="py-lineno">1094</tt>  <tt class="py-line"><tt class="py-string">      &lt;test2i&gt;&lt;xsl:copy-of select="regexp:match(string(.), 'd.', 'gi')"/&gt;&lt;/test2i&gt;</tt> </tt>
-<a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-697" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-697', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-698" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-698', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-711', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*"&gt;</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line"><tt class="py-string">      &lt;test1&gt;&lt;xsl:copy-of  select="regexp:match(string(.), 'd.')"/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line"><tt class="py-string">      &lt;test2&gt;&lt;xsl:copy-of  select="regexp:match(string(.), 'd.', 'g')"/&gt;&lt;/test2&gt;</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line"><tt class="py-string">      &lt;test2i&gt;&lt;xsl:copy-of select="regexp:match(string(.), 'd.', 'gi')"/&gt;&lt;/test2i&gt;</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-712" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-712', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-713" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-713', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-714" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-699', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-700" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-700', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;abdCdEeDed&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">        <tt id="link-701" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-701', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-702" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-702', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-703" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-703', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-704" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-714', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-715" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-715', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;abdCdEeDed&lt;/a&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">        <tt id="link-716" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-716', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-717" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-717', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-718" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-718', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-719" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-704', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-705" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-705', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line"> </tt>
-<a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-706" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-706', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-707" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-707', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-708" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-719', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-720" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-720', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line"> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-721', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-722" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-722', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-723" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-708', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-709" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-709', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-710" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-723', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-724" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-724', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-725" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-710', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"> </tt>
-<a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-711" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-711', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
-<a name="L1109"></a><tt class="py-lineno">1109</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-712" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-712', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-713" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-725', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line"> </tt>
+<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-726" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-726', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-727" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-727', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-728" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-713', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1110"></a><tt class="py-lineno">1110</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-714" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-714', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-715" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-728', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-729" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-729', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-715', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1111"></a><tt class="py-lineno">1111</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-716" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-716', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-717" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-730', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-731" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-731', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-732" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-717', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1112"></a><tt class="py-lineno">1112</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-718" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-718', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-719" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-732', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-733" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-733', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-734" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-719', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dE'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1113"></a><tt class="py-lineno">1113</tt>  <tt class="py-line"> </tt>
-<a name="L1114"></a><tt class="py-lineno">1114</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-720" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-720', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
-<a name="L1115"></a><tt class="py-lineno">1115</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-721" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-721', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-722" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-734', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dE'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line"> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-735" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-735', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-736" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-736', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-737" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-722', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1116"></a><tt class="py-lineno">1116</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-723" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-723', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-724" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-737', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-738" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-738', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-739" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-724', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1117"></a><tt class="py-lineno">1117</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-725" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-725', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-726" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-739', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dC'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-740" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-740', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-741" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-726', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1118"></a><tt class="py-lineno">1118</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-727" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-727', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-728" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-741', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-742" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-742', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-743" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-728', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dE'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1119"></a><tt class="py-lineno">1119</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-729" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-729', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-730" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-743', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'dE'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-744" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-744', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-745" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-730', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1120"></a><tt class="py-lineno">1120</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-731" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-731', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-732" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-745', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'match'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-746" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-746', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-747" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-732', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'De'</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_match_groups"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-def"><a name="L1122"></a><tt class="py-lineno">1122</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match_groups');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-expanded"><a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">        <tt id="link-733" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-733', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-734" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-747', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'De'</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_match_groups"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-def"><a name="L1131"></a><tt class="py-lineno">1131</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match_groups');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match_groups">test_exslt_regexp_match_groups</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match_groups-expanded"><a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line">        <tt id="link-748" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-748', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-749" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-734', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-735" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-735', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-736" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-749', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-750" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-750', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-751" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-736', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-737" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-751', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-752" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-737', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-738" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-738', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line"><tt class="py-string">            '123abc567', '([0-9]+)([a-z]+)([0-9]+)' )"&gt;</tt> </tt>
-<a name="L1131"></a><tt class="py-lineno">1131</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1132"></a><tt class="py-lineno">1132</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-739" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-739', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-740" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-740', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-741" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-752', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-753" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-753', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line"><tt class="py-string">            '123abc567', '([0-9]+)([a-z]+)([0-9]+)' )"&gt;</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-754" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-754', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-755" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-755', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-756" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-741', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-742" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-742', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1138"></a><tt class="py-lineno">1138</tt>  <tt class="py-line">        <tt id="link-743" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-743', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-744" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-744', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1139"></a><tt class="py-lineno">1139</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-745" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-745', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-746" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-756', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-757" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-757', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">        <tt id="link-758" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-758', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-759" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-759', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-760" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-760', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-761" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-746', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1140"></a><tt class="py-lineno">1140</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-747" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-747', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L1141"></a><tt class="py-lineno">1141</tt>  <tt class="py-line"> </tt>
-<a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-748" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-748', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-749" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-761', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-762" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-762', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-763" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-763', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-764" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-749', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"123abc567"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-750" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-750', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-751" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-764', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"123abc567"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-765" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-765', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-766" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-751', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"123"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-752" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-752', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-753" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-766', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"123"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-767" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-767', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-768" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-753', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"abc"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-754" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-754', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-755" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-768', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"abc"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-769" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-769', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-770" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-755', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"567"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_match1"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-def"><a name="L1147"></a><tt class="py-lineno">1147</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match1-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-expanded"><a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">        <tt id="link-756" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-756', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-757" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-770', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"567"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_match1"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-def"><a name="L1156"></a><tt class="py-lineno">1156</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match1-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match1">test_exslt_regexp_match1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match1-expanded"><a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line">        <tt id="link-771" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-771', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-772" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-757', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-758" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-758', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-759" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-772', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-773" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-773', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-774" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-759', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-760" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-774', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-775" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-760', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-761" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-761', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1153"></a><tt class="py-lineno">1153</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1154"></a><tt class="py-lineno">1154</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1155"></a><tt class="py-lineno">1155</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1156"></a><tt class="py-lineno">1156</tt>  <tt class="py-line"><tt class="py-string">            'http://www.bayes.co.uk/xml/index.xml?/xml/utils/rechecker.xml',</tt> </tt>
-<a name="L1157"></a><tt class="py-lineno">1157</tt>  <tt class="py-line"><tt class="py-string">            '(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)')"&gt;</tt> </tt>
-<a name="L1158"></a><tt class="py-lineno">1158</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-762" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-762', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-763" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-763', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-764" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-775', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-776" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-776', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line"><tt class="py-string">            'http://www.bayes.co.uk/xml/index.xml?/xml/utils/rechecker.xml',</tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line"><tt class="py-string">            '(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)')"&gt;</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-777" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-777', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-778" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-778', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-779" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-764', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-765" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-765', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">        <tt id="link-766" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-766', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-767" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-767', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-768" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-768', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-769" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-779', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-780" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-780', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">        <tt id="link-781" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-781', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-782" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-782', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-783" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-783', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-784" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-769', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-770" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-770', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-<a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"> </tt>
-<a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line">            <tt id="link-771" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-771', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-772" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-784', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-785" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-785', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line"> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line">            <tt id="link-786" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-786', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-787" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-772', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1171"></a><tt class="py-lineno">1171</tt>  <tt class="py-line">            <tt class="py-string">"http://www.bayes.co.uk/xml/index.xml?/xml/utils/rechecker.xml"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1172"></a><tt class="py-lineno">1172</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1173"></a><tt class="py-lineno">1173</tt>  <tt class="py-line">            <tt id="link-773" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-773', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-774" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-787', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line">            <tt class="py-string">"http://www.bayes.co.uk/xml/index.xml?/xml/utils/rechecker.xml"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">            <tt id="link-788" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-788', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-789" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-774', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1174"></a><tt class="py-lineno">1174</tt>  <tt class="py-line">            <tt class="py-string">"http"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1175"></a><tt class="py-lineno">1175</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1176"></a><tt class="py-lineno">1176</tt>  <tt class="py-line">            <tt id="link-775" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-775', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-776" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-789', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">            <tt class="py-string">"http"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">            <tt id="link-790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-790', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-791" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-776', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1177"></a><tt class="py-lineno">1177</tt>  <tt class="py-line">            <tt class="py-string">"www.bayes.co.uk"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-777" class="py-name" targets="Variable lxml.tests.common_imports.HelperTestCase.assertFalse=lxml.tests.common_imports.HelperTestCase-class.html#assertFalse"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-777', 'assertFalse', 'link-777');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-778" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-778', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-779" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-791', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line">            <tt class="py-string">"www.bayes.co.uk"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-792" class="py-name" targets="Variable lxml.tests.common_imports.HelperTestCase.assertFalse=lxml.tests.common_imports.HelperTestCase-class.html#assertFalse"><a title="lxml.tests.common_imports.HelperTestCase.assertFalse" class="py-name" href="#" onclick="return doclink('link-792', 'assertFalse', 'link-792');">assertFalse</a></tt><tt class="py-op">(</tt><tt id="link-793" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-793', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-794" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-779', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
-<a name="L1180"></a><tt class="py-lineno">1180</tt>  <tt class="py-line">            <tt id="link-780" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-780', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-781" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-794', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt> </tt>
+<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line">            <tt id="link-795" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-795', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-796" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-781', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
-<a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">            <tt class="py-string">"/xml/index.xml?/xml/utils/rechecker.xml"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase.test_exslt_regexp_match2"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-def"><a name="L1183"></a><tt class="py-lineno">1183</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match2-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-expanded"><a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
-<a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line">        <tt id="link-782" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-782', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-783" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-796', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line">            <tt class="py-string">"/xml/index.xml?/xml/utils/rechecker.xml"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase.test_exslt_regexp_match2"></a><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-def"><a name="L1192"></a><tt class="py-lineno">1192</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase.test_exslt_regexp_match2-toggle" onclick="return toggle('ETreeEXSLTTestCase.test_exslt_regexp_match2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#test_exslt_regexp_match2">test_exslt_regexp_match2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase.test_exslt_regexp_match2-expanded"><a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
+<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line">        <tt id="link-797" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-797', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-798" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-783', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-784" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-784', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-785" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-798', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-799" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-799', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-800" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-785', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1186"></a><tt class="py-lineno">1186</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1187"></a><tt class="py-lineno">1187</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1188"></a><tt class="py-lineno">1188</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1189"></a><tt class="py-lineno">1189</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1190"></a><tt class="py-lineno">1190</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1191"></a><tt class="py-lineno">1191</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1192"></a><tt class="py-lineno">1192</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '(\w+)', 'g')"&gt;</tt> </tt>
-<a name="L1193"></a><tt class="py-lineno">1193</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1194"></a><tt class="py-lineno">1194</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-786" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-786', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-787" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-800', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1196"></a><tt class="py-lineno">1196</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '(\w+)', 'g')"&gt;</tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-801" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-801', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-802" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-787', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-788" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-802', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-803" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-788', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-789" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-789', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">        <tt id="link-790" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-790', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-791" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-791', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-792" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-792', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-793" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-803', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-804" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-804', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt id="link-805" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-805', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-806" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-806', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-807" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-807', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-808" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-793', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-794" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-794', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line"> </tt>
-<a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-795" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-795', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-796" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-808', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-809" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-809', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">5</tt><tt class="py-op">)</tt> </tt>
+<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line"> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-810" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-810', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-811" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-796', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"This"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1205"></a><tt class="py-lineno">1205</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-797" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-797', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-798" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-811', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"This"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-812" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-812', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-813" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-798', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-799" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-799', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-800" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-813', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-814" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-814', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-815" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-800', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1207"></a><tt class="py-lineno">1207</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-801" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-801', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-802" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-815', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-816" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-816', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-817" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-802', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-803" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-803', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-804" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-817', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-818" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-818', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-819" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-804', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"string"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase._test_exslt_regexp_match3"></a><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-def"><a name="L1210"></a><tt class="py-lineno">1210</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase._test_exslt_regexp_match3-toggle" onclick="return toggle('ETreeEXSLTTestCase._test_exslt_regexp_match3');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match3">_test_exslt_regexp_match3</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-expanded"><a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
-<a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS NOT SUPPORTED!</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt id="link-805" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-805', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-806" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-819', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"string"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase._test_exslt_regexp_match3"></a><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-def"><a name="L1219"></a><tt class="py-lineno">1219</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase._test_exslt_regexp_match3-toggle" onclick="return toggle('ETreeEXSLTTestCase._test_exslt_regexp_match3');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match3">_test_exslt_regexp_match3</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match3-expanded"><a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
+<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS NOT SUPPORTED!</tt> </tt>
+<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">        <tt id="link-820" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-820', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-821" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-806', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-807" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-807', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-808" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-821', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-822" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-822', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-823" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-808', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-809" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-823', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-824" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-809', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-810" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-810', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '([a-z])+ ', 'g')"&gt;</tt> </tt>
-<a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-811" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-811', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-812" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-812', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-813" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-824', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-825" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-825', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '([a-z])+ ', 'g')"&gt;</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-826" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-826', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-827" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-827', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-828" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-813', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-814" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-814', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">        <tt id="link-815" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-815', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-816" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-816', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-817" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-817', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-818" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-828', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-829" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-829', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">        <tt id="link-830" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-830', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-831" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-831', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-832" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-832', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-833" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-818', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-819" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-819', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line"> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-820" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-820', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-821" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-833', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-834" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-834', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line"> </tt>
+<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-835" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-835', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-836" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-821', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"his"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-822" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-822', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-823" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-836', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"his"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-837" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-837', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-838" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-823', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-824" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-824', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-825" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-838', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-839" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-839', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-840" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-825', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-826" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-826', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-827" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-840', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-841" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-841', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-842" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-827', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line"> </tt>
-<a name="ETreeEXSLTTestCase._test_exslt_regexp_match4"></a><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-def"><a name="L1237"></a><tt class="py-lineno">1237</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase._test_exslt_regexp_match4-toggle" onclick="return toggle('ETreeEXSLTTestCase._test_exslt_regexp_match4');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match4">_test_exslt_regexp_match4</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-expanded"><a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
-<a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS NOT SUPPORTED!</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">        <tt id="link-828" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-828', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-829" class="py-name"><a title="lxml.etree
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-842', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line"> </tt>
+<a name="ETreeEXSLTTestCase._test_exslt_regexp_match4"></a><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-def"><a name="L1246"></a><tt class="py-lineno">1246</tt> <a class="py-toggle" href="#" id="ETreeEXSLTTestCase._test_exslt_regexp_match4-toggle" onclick="return toggle('ETreeEXSLTTestCase._test_exslt_regexp_match4');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html#_test_exslt_regexp_match4">_test_exslt_regexp_match4</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeEXSLTTestCase._test_exslt_regexp_match4-expanded"><a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">        <tt class="py-comment"># taken from http://www.exslt.org/regexp/functions/match/index.html</tt> </tt>
+<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">        <tt class="py-comment"># THIS IS NOT SUPPORTED!</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">        <tt id="link-843" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-843', 'xslt', 'link-234');">xslt</a></tt> <tt class="py-op">=</tt> <tt id="link-844" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-829', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-830" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-830', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-831" class="py-name"><a title="lxml.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-844', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-845" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-845', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-846" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-831', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-832" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-846', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-847" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-832', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-833" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-833', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
-<a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
-<a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
-<a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
-<a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '([a-z])+ ', 'gi')"&gt;</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
-<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
-<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
-<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-834" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-834', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-835" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-835', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-836" class="py-name"><a title="lxml.etree.XML
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-847', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-848" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-848', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">"""\</tt> </tt>
+<a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line"><tt class="py-string">   xmlns:regexp="http://exslt.org/regular-expressions"</tt> </tt>
+<a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line"><tt class="py-string">   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1254"></a><tt class="py-lineno">1254</tt>  <tt class="py-line"><tt class="py-string">    &lt;test&gt;</tt> </tt>
+<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line"><tt class="py-string">      &lt;xsl:for-each select="regexp:match(</tt> </tt>
+<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line"><tt class="py-string">            'This is a test string', '([a-z])+ ', 'gi')"&gt;</tt> </tt>
+<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line"><tt class="py-string">        &lt;test1&gt;&lt;xsl:value-of select="."/&gt;&lt;/test1&gt;</tt> </tt>
+<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line"><tt class="py-string">      &lt;/xsl:for-each&gt;</tt> </tt>
+<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line"><tt class="py-string">    &lt;/test&gt;</tt> </tt>
+<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;</tt> </tt>
+<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line"><tt class="py-string">"""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt id="link-849" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-849', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-850" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-850', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-851" class="py-name"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-836', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-837" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-837', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1255"></a><tt class="py-lineno">1255</tt>  <tt class="py-line">        <tt id="link-838" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-838', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-839" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-839', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1256"></a><tt class="py-lineno">1256</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-840" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-840', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-841" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-851', 'XML', 'link-361');">XML</a></tt><tt class="py-op">(</tt><tt id="link-852" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-852', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">        <tt id="link-853" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-853', 'root', 'link-365');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-854" class="py-name"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-854', 'getroot', 'link-121');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-855" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-855', 'root', 'link-365');">root</a></tt><tt class="py-op">.</tt><tt id="link-856" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-841', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1257"></a><tt class="py-lineno">1257</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-842" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-842', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
-<a name="L1258"></a><tt class="py-lineno">1258</tt>  <tt class="py-line"> </tt>
-<a name="L1259"></a><tt class="py-lineno">1259</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-843" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-843', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-844" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-856', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt>  <tt class="py-string">'test'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-857" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-857', 'root', 'link-365');">root</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">4</tt><tt class="py-op">)</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line"> </tt>
+<a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-858" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-858', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-859" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-844', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"This"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1260"></a><tt class="py-lineno">1260</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-845" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-845', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-846" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-859', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"This"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-860" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-860', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-861" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-846', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1261"></a><tt class="py-lineno">1261</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-847" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-847', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-848" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-861', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"is"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-862" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-862', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-863" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-848', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1262"></a><tt class="py-lineno">1262</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-849" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-849', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-850" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-863', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-864" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-864', 'root', 'link-365');">root</a></tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-865" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-850', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1263"></a><tt class="py-lineno">1263</tt>  <tt class="py-line"> </tt>
-<a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase"></a><div id="ETreeXSLTExtFuncTestCase-def"><a name="L1265"></a><tt class="py-lineno">1265</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtFuncTestCase-expanded"><a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for XPath extension functions in XSLT."""</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase.test_extensions1"></a><div id="ETreeXSLTExtFuncTestCase.test_extensions1-def"><a name="L1268"></a><tt class="py-lineno">1268</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_extensions1-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_extensions1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase.test_extensions1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_extensions1-expanded"><a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-851" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-865', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">"test"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line"> </tt>
+<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase"></a><div id="ETreeXSLTExtFuncTestCase-def"><a name="L1274"></a><tt class="py-lineno">1274</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html">ETreeXSLTExtFuncTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtFuncTestCase-expanded"><a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for XPath extension functions in XSLT."""</tt> </tt>
+<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_extensions1"></a><div id="ETreeXSLTExtFuncTestCase.test_extensions1-def"><a name="L1277"></a><tt class="py-lineno">1277</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_extensions1-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_extensions1');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions1">test_extensions1</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_extensions1-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_extensions1-expanded"><a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-866" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-851', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">        <tt id="link-852" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-852', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-853" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-866', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">        <tt id="link-867" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-867', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-868" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-853', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:value-of select="myns:mytext(b)"/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line"> </tt>
-<a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'X'</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-854" class="py-name" targets="Method lxml.etree._Attrib.values()=lxml.etree._Attrib-class.html#values,Method lxml.etree._Element.values()=lxml.etree._Element-class.html#values,Method lxml.etree._IDDict.values()=lxml.etree._IDDict-class.html#values"><a title="lxml.etree._Attrib.values
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-868', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:value-of select="myns:mytext(b)"/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1285"></a><tt class="py-lineno">1285</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line"> </tt>
+<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'X'</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-869" class="py-name" targets="Method lxml.etree._Attrib.values()=lxml.etree._Attrib-class.html#values,Method lxml.etree._Element.values()=lxml.etree._Element-class.html#values,Method lxml.etree._IDDict.values()=lxml.etree._IDDict-class.html#values"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-854', 'values', 'link-854');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line"> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-855" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-855', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-856" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-856', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'mytext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">mytext</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
-<a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-857" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-857', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line">                          <tt id="link-858" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-858', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;X&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1284"></a><tt class="py-lineno">1284</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase.test_extensions2"></a><div id="ETreeXSLTExtFuncTestCase.test_extensions2-def"><a name="L1285"></a><tt class="py-lineno">1285</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_extensions2-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_extensions2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase.test_extensions2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_extensions2-expanded"><a name="L1286"></a><tt class="py-lineno">1286</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-859" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-869', 'values', 'link-869');">values</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"> </tt>
+<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-870" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-870', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-871" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-871', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-op">{</tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'mytext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">mytext</tt><tt class="py-op">}</tt><tt class="py-op">)</tt> </tt>
+<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-872" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-872', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line">                          <tt id="link-873" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-873', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;X&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_extensions2"></a><div id="ETreeXSLTExtFuncTestCase.test_extensions2-def"><a name="L1294"></a><tt class="py-lineno">1294</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_extensions2-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_extensions2');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_extensions2">test_extensions2</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_extensions2-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_extensions2-expanded"><a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-874" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-859', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1287"></a><tt class="py-lineno">1287</tt>  <tt class="py-line">        <tt id="link-860" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-860', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-861" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-874', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">        <tt id="link-875" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-875', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-876" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-861', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1288"></a><tt class="py-lineno">1288</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1289"></a><tt class="py-lineno">1289</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1290"></a><tt class="py-lineno">1290</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1291"></a><tt class="py-lineno">1291</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1292"></a><tt class="py-lineno">1292</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:value-of select="myns:mytext(b)"/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1293"></a><tt class="py-lineno">1293</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1294"></a><tt class="py-lineno">1294</tt>  <tt class="py-line"> </tt>
-<a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'X'</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-862" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-876', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;&lt;A&gt;&lt;xsl:value-of select="myns:mytext(b)"/&gt;&lt;/A&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line"> </tt>
+<a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1305"></a><tt class="py-lineno">1305</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'X'</tt> <tt class="py-op">*</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt id="link-877" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-862', 'values', 'link-854');">values</a></tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1297"></a><tt class="py-lineno">1297</tt>  <tt class="py-line"> </tt>
-<a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">        <tt id="link-863" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-863', 'namespace', 'link-863');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-864" class="py-name"><a title="lxml.etree
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-877', 'values', 'link-869');">values</a></tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line"> </tt>
+<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">        <tt id="link-878" class="py-name" targets="Variable lxml.etree.QName.namespace=lxml.etree.QName-class.html#namespace"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-878', 'namespace', 'link-878');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-879" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-864', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-865" class="py-name" targets="Function lxml.etree.FunctionNamespace()=lxml.etree-module.html#FunctionNamespace"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-865', 'FunctionNamespace', 'link-865');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt id="link-866" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-866', 'namespace', 'link-863');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'mytext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mytext</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line"> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-867" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-867', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-868" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-868', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-869" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-869', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line">                          <tt id="link-870" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-870', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;X&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment"></a><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-def"><a name="L1305"></a><tt class="py-lineno">1305</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-expanded"><a name="L1306"></a><tt class="py-lineno">1306</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-871" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-879', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-880" class="py-name" targets="Function lxml.etree.FunctionNamespace()=lxml.etree-module.html#FunctionNamespace"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-880', 'FunctionNamespace', 'link-880');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line">        <tt id="link-881" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-881', 'namespace', 'link-878');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'mytext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mytext</tt> </tt>
+<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"> </tt>
+<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-882" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-882', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-883" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-883', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-884" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-884', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line">                          <tt id="link-885" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-885', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;X&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment"></a><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-def"><a name="L1314"></a><tt class="py-lineno">1314</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-toggle" onclick="return toggle('ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html#test_variable_result_tree_fragment">test_variable_result_tree_fragment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtFuncTestCase.test_variable_result_tree_fragment-expanded"><a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-886" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-871', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1307"></a><tt class="py-lineno">1307</tt>  <tt class="py-line">        <tt id="link-872" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-872', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-873" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-886', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;b/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">        <tt id="link-887" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-887', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-888" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-873', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1308"></a><tt class="py-lineno">1308</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1309"></a><tt class="py-lineno">1309</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1310"></a><tt class="py-lineno">1310</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1313"></a><tt class="py-lineno">1313</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="content"&gt;</tt> </tt>
-<a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line"><tt class="py-string">       &lt;xsl:apply-templates/&gt;</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:variable&gt;</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:value-of select="myns:mytext($content)"/&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;&lt;xsl:copy&gt;BBB&lt;/xsl:copy&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line"> </tt>
-<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-874" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-888', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="content"&gt;</tt> </tt>
+<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line"><tt class="py-string">       &lt;xsl:apply-templates/&gt;</tt> </tt>
+<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line"><tt class="py-string">    &lt;/xsl:variable&gt;</tt> </tt>
+<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;xsl:value-of select="myns:mytext($content)"/&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="b"&gt;&lt;xsl:copy&gt;BBB&lt;/xsl:copy&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line"> </tt>
+<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line">        <tt class="py-keyword">def</tt> <tt class="py-def-name">mytext</tt><tt class="py-op">(</tt><tt class="py-param">ctxt</tt><tt class="py-op">,</tt> <tt class="py-param">values</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt id="link-889" class="py-name" targets="Variable lxml.html.CheckboxGroup.value=lxml.html.CheckboxGroup-class.html#value,Variable lxml.html.InputElement.value=lxml.html.InputElement-class.html#value,Variable lxml.html.RadioGroup.value=lxml.html.RadioGroup-class.html#value,Variable lxml.html.SelectElement.value=lxml.html.SelectElement-class.html#value,Variable lxml.html.TextareaElement.value=lxml.html.TextareaElement-class.html#value"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-874', 'value', 'link-874');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-875" class="py-name"><a title="lxml.etree._Attrib.values
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-889', 'value', 'link-889');">value</a></tt> <tt class="py-keyword">in</tt> <tt id="link-890" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-875', 'values', 'link-854');">values</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-876" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-876', 'hasattr', 'link-876');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-877" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-890', 'values', 'link-869');">values</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertTrue</tt><tt class="py-op">(</tt><tt id="link-891" class="py-name" targets="Method lxml.objectify.ObjectPath.hasattr()=lxml.objectify.ObjectPath-class.html#hasattr"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-891', 'hasattr', 'link-891');">hasattr</a></tt><tt class="py-op">(</tt><tt id="link-892" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-877', 'value', 'link-874');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1324"></a><tt class="py-lineno">1324</tt>  <tt class="py-line">                             <tt class="py-string">"%s is not an Element"</tt> <tt class="py-op">%</tt> <tt id="link-878" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-878', 'type', 'link-878');">type</a></tt><tt class="py-op">(</tt><tt id="link-879" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-892', 'value', 'link-889');">value</a></tt><tt class="py-op">,</tt> <tt class="py-string">'tag'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line">                             <tt class="py-string">"%s is not an Element"</tt> <tt class="py-op">%</tt> <tt id="link-893" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-893', 'type', 'link-539');">type</a></tt><tt class="py-op">(</tt><tt id="link-894" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-879', 'value', 'link-874');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1325"></a><tt class="py-lineno">1325</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-880" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-894', 'value', 'link-889');">value</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-895" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-880', 'value', 'link-874');">value</a></tt><tt class="py-op">.</tt><tt id="link-881" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-895', 'value', 'link-889');">value</a></tt><tt class="py-op">.</tt><tt id="link-896" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-881', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1326"></a><tt class="py-lineno">1326</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-882" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-896', 'tag', 'link-368');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-string">'b'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-897" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-882', 'value', 'link-874');">value</a></tt><tt class="py-op">.</tt><tt id="link-883" class="py-name"><a title="lxml.etree.QName.text
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-897', 'value', 'link-889');">value</a></tt><tt class="py-op">.</tt><tt id="link-898" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-883', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'BBB'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1327"></a><tt class="py-lineno">1327</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'X'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-884" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-898', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-string">'BBB'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt class="py-string">'X'</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-899" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-884', 'tag', 'link-368');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-885" class="py-name"><a title="lxml.etree._Attrib.values
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-899', 'tag', 'link-368');">tag</a></tt> <tt class="py-keyword">for</tt> <tt class="py-name">el</tt> <tt class="py-keyword">in</tt> <tt id="link-900" class="py-name"><a title="lxml.etree._Attrib.values
 lxml.etree._Element.values
-lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-885', 'values', 'link-854');">values</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1328"></a><tt class="py-lineno">1328</tt>  <tt class="py-line"> </tt>
-<a name="L1329"></a><tt class="py-lineno">1329</tt>  <tt class="py-line">        <tt id="link-886" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-886', 'namespace', 'link-863');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-887" class="py-name"><a title="lxml.etree
+lxml.etree._IDDict.values" class="py-name" href="#" onclick="return doclink('link-900', 'values', 'link-869');">values</a></tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1337"></a><tt class="py-lineno">1337</tt>  <tt class="py-line"> </tt>
+<a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">        <tt id="link-901" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-901', 'namespace', 'link-878');">namespace</a></tt> <tt class="py-op">=</tt> <tt id="link-902" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-887', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-888" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-888', 'FunctionNamespace', 'link-865');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line">        <tt id="link-889" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-889', 'namespace', 'link-863');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'mytext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mytext</tt> </tt>
-<a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"> </tt>
-<a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-890" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-890', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-891" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-891', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-892" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-892', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line">                          <tt id="link-893" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-893', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;bXb&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"> </tt>
-<a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase"></a><div id="ETreeXSLTExtElementTestCase-def"><a name="L1337"></a><tt class="py-lineno">1337</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtElementTestCase-expanded"><a name="L1338"></a><tt class="py-lineno">1338</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for extension elements in XSLT."""</tt> </tt>
-<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element-def"><a name="L1340"></a><tt class="py-lineno">1340</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element-expanded"><a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-894" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-902', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-903" class="py-name"><a title="lxml.etree.FunctionNamespace" class="py-name" href="#" onclick="return doclink('link-903', 'FunctionNamespace', 'link-880');">FunctionNamespace</a></tt><tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1339"></a><tt class="py-lineno">1339</tt>  <tt class="py-line">        <tt id="link-904" class="py-name"><a title="lxml.etree.QName.namespace" class="py-name" href="#" onclick="return doclink('link-904', 'namespace', 'link-878');">namespace</a></tt><tt class="py-op">[</tt><tt class="py-string">'mytext'</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">mytext</tt> </tt>
+<a name="L1340"></a><tt class="py-lineno">1340</tt>  <tt class="py-line"> </tt>
+<a name="L1341"></a><tt class="py-lineno">1341</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-905" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-905', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-906" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-906', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-907" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-907', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line">                          <tt id="link-908" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-908', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;bXb&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"> </tt>
+<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase"></a><div id="ETreeXSLTExtElementTestCase-def"><a name="L1346"></a><tt class="py-lineno">1346</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html">ETreeXSLTExtElementTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ETreeXSLTExtElementTestCase-expanded"><a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">    <tt class="py-docstring">"""Tests for extension elements in XSLT."""</tt> </tt>
+<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element-def"><a name="L1349"></a><tt class="py-lineno">1349</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element">test_extension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element-expanded"><a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-909" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-894', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1342"></a><tt class="py-lineno">1342</tt>  <tt class="py-line">        <tt id="link-895" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-895', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-896" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-909', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line">        <tt id="link-910" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-910', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-911" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-896', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1345"></a><tt class="py-lineno">1345</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"> </tt>
-<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line">                <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-897" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-911', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1354"></a><tt class="py-lineno">1354</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1355"></a><tt class="py-lineno">1355</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line"> </tt>
+<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line">                <tt class="py-name">child</tt> <tt class="py-op">=</tt> <tt id="link-912" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-897', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-898" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-912', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-913" class="py-name" targets="Function lxml.etree.Element()=lxml.etree-module.html#Element,Function lxml.objectify.Element()=lxml.objectify-module.html#Element,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#Element,Class xml.etree.ElementTree.Element=xml.etree.ElementTree.Element-class.html"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-898', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">.</tt><tt id="link-899" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-913', 'Element', 'link-913');">Element</a></tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">.</tt><tt id="link-914" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-899', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1356"></a><tt class="py-lineno">1356</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-900" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-914', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1365"></a><tt class="py-lineno">1365</tt>  <tt class="py-line">                <tt class="py-name">child</tt><tt class="py-op">.</tt><tt id="link-915" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-900', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X'</tt> </tt>
-<a name="L1357"></a><tt class="py-lineno">1357</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-901" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-901', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1358"></a><tt class="py-lineno">1358</tt>  <tt class="py-line"> </tt>
-<a name="L1359"></a><tt class="py-lineno">1359</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1360"></a><tt class="py-lineno">1360</tt>  <tt class="py-line"> </tt>
-<a name="L1361"></a><tt class="py-lineno">1361</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-902" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-902', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-903" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-903', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1362"></a><tt class="py-lineno">1362</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-904" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-904', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1363"></a><tt class="py-lineno">1363</tt>  <tt class="py-line">                          <tt id="link-905" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-905', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;b&gt;X&lt;/b&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1364"></a><tt class="py-lineno">1364</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_doc_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-def"><a name="L1365"></a><tt class="py-lineno">1365</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_doc_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-expanded"><a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-906" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-915', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">'X'</tt> </tt>
+<a name="L1366"></a><tt class="py-lineno">1366</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-916', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">child</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line"> </tt>
+<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"> </tt>
+<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-917" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-917', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-918" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-918', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-919" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-919', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">                          <tt id="link-920" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-920', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;b&gt;X&lt;/b&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_doc_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-def"><a name="L1374"></a><tt class="py-lineno">1374</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_doc_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_doc_context">test_extension_element_doc_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_doc_context-expanded"><a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-906', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1367"></a><tt class="py-lineno">1367</tt>  <tt class="py-line">        <tt id="link-907" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-907', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-908" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-921', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">        <tt id="link-922" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-922', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-923" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-908', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1368"></a><tt class="py-lineno">1368</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1369"></a><tt class="py-lineno">1369</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line"> </tt>
-<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line">        <tt id="link-909" class="py-name" targets="Variable lxml.html.defs.tags=lxml.html.defs-module.html#tags"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-909', 'tags', 'link-909');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line"> </tt>
-<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line">                <tt id="link-910" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-910', 'tags', 'link-909');">tags</a></tt><tt class="py-op">.</tt><tt id="link-911" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-911', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-912" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-923', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1377"></a><tt class="py-lineno">1377</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1378"></a><tt class="py-lineno">1378</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1379"></a><tt class="py-lineno">1379</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1380"></a><tt class="py-lineno">1380</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1381"></a><tt class="py-lineno">1381</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1382"></a><tt class="py-lineno">1382</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line"> </tt>
+<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">        <tt id="link-924" class="py-name" targets="Variable lxml.html.defs.tags=lxml.html.defs-module.html#tags"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-924', 'tags', 'link-924');">tags</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line"> </tt>
+<a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">                <tt id="link-925" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-925', 'tags', 'link-924');">tags</a></tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-926', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-927" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-912', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1383"></a><tt class="py-lineno">1383</tt>  <tt class="py-line"> </tt>
-<a name="L1384"></a><tt class="py-lineno">1384</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1385"></a><tt class="py-lineno">1385</tt>  <tt class="py-line"> </tt>
-<a name="L1386"></a><tt class="py-lineno">1386</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-913" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-913', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-914" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-914', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1387"></a><tt class="py-lineno">1387</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-915" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-915', 'tags', 'link-909');">tags</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1388"></a><tt class="py-lineno">1388</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-def"><a name="L1389"></a><tt class="py-lineno">1389</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-expanded"><a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-916" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-927', 'tag', 'link-368');">tag</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"> </tt>
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"> </tt>
+<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-928" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-928', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-929" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-929', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-930" class="py-name"><a title="lxml.html.defs.tags" class="py-name" href="#" onclick="return doclink('link-930', 'tags', 'link-924');">tags</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'a'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-def"><a name="L1398"></a><tt class="py-lineno">1398</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_comment_pi_context">test_extension_element_comment_pi_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_comment_pi_context-expanded"><a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-931" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-916', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test toast?&gt;&lt;a&gt;&lt;!--a comment--&gt;&lt;?another pi?&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">        <tt id="link-917" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-917', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-918" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-931', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test toast?&gt;&lt;a&gt;&lt;!--a comment--&gt;&lt;?another pi?&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">        <tt id="link-932" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-932', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-933" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-918', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line"><tt class="py-string">    &lt;ROOT&gt;&lt;xsl:apply-templates /&gt;&lt;/ROOT&gt;</tt> </tt>
-<a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="comment()"&gt;</tt> </tt>
-<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="processing-instruction()"&gt;</tt> </tt>
-<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line"> </tt>
-<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line">        <tt id="link-919" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-933', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1401"></a><tt class="py-lineno">1401</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1402"></a><tt class="py-lineno">1402</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1403"></a><tt class="py-lineno">1403</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1406"></a><tt class="py-lineno">1406</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line"><tt class="py-string">    &lt;ROOT&gt;&lt;xsl:apply-templates /&gt;&lt;/ROOT&gt;</tt> </tt>
+<a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="comment()"&gt;</tt> </tt>
+<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="processing-instruction()"&gt;</tt> </tt>
+<a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"> </tt>
+<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">        <tt id="link-934" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-919', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line"> </tt>
-<a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1411"></a><tt class="py-lineno">1411</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1412"></a><tt class="py-lineno">1412</tt>  <tt class="py-line">                <tt id="link-920" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-934', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line"> </tt>
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">                <tt id="link-935" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-920', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-921" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-921', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-922" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-935', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-936" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-936', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">input_node</tt><tt class="py-op">.</tt><tt id="link-937" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-922', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1413"></a><tt class="py-lineno">1413</tt>  <tt class="py-line"> </tt>
-<a name="L1414"></a><tt class="py-lineno">1414</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1415"></a><tt class="py-lineno">1415</tt>  <tt class="py-line"> </tt>
-<a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-923" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-923', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-924" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-924', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1417"></a><tt class="py-lineno">1417</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-925" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-937', 'text', 'link-372');">text</a></tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line"> </tt>
+<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line"> </tt>
+<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-938" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-938', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-939" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-939', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-940" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-925', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'toast'</tt><tt class="py-op">,</tt> <tt class="py-string">'a comment'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context"></a><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-def"><a name="L1419"></a><tt class="py-lineno">1419</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase._test_extension_element_attribute_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-expanded"><a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">        <tt class="py-comment"># currently not supported</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-926" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-940', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'toast'</tt><tt class="py-op">,</tt> <tt class="py-string">'a comment'</tt><tt class="py-op">,</tt> <tt class="py-string">'pi'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context"></a><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-def"><a name="L1428"></a><tt class="py-lineno">1428</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase._test_extension_element_attribute_context');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#_test_extension_element_attribute_context">_test_extension_element_attribute_context</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase._test_extension_element_attribute_context-expanded"><a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line">        <tt class="py-comment"># currently not supported</tt> </tt>
+<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-941" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-926', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a test="A"&gt;&lt;b attr="B"/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">        <tt id="link-927" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-927', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-928" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-941', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a test="A"&gt;&lt;b attr="B"/&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line">        <tt id="link-942" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-942', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-943" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-928', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1426"></a><tt class="py-lineno">1426</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1427"></a><tt class="py-lineno">1427</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1428"></a><tt class="py-lineno">1428</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@test"&gt;</tt> </tt>
-<a name="L1429"></a><tt class="py-lineno">1429</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1430"></a><tt class="py-lineno">1430</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1431"></a><tt class="py-lineno">1431</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@attr"&gt;</tt> </tt>
-<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line"> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt id="link-929" class="py-name"><a title="lxml.etree.QName.text
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-943', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1433"></a><tt class="py-lineno">1433</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@test"&gt;</tt> </tt>
+<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="@attr"&gt;</tt> </tt>
+<a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line"> </tt>
+<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">        <tt id="link-944" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-929', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
-<a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line"> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">attr_value</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">                <tt id="link-930" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-944', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line"> </tt>
+<a name="L1447"></a><tt class="py-lineno">1447</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">attr_value</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">                <tt id="link-945" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-930', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-931" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-931', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_value</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line"> </tt>
-<a name="L1442"></a><tt class="py-lineno">1442</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1443"></a><tt class="py-lineno">1443</tt>  <tt class="py-line"> </tt>
-<a name="L1444"></a><tt class="py-lineno">1444</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-932" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-932', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-933" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-933', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1445"></a><tt class="py-lineno">1445</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-934" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-945', 'text', 'link-372');">text</a></tt><tt class="py-op">.</tt><tt id="link-946" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-946', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">attr_value</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"> </tt>
+<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"> </tt>
+<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-947" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-947', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-948" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-948', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-949" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-934', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'B'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1446"></a><tt class="py-lineno">1446</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_content"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-def"><a name="L1447"></a><tt class="py-lineno">1447</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_content-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_content');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-expanded"><a name="L1448"></a><tt class="py-lineno">1448</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-935" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-949', 'text', 'link-372');">text</a></tt><tt class="py-op">,</tt> <tt class="py-op">[</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="py-string">'B'</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_content"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-def"><a name="L1456"></a><tt class="py-lineno">1456</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_content-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_content');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_content">test_extension_element_content</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_content-expanded"><a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-950" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-935', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1449"></a><tt class="py-lineno">1449</tt>  <tt class="py-line">        <tt id="link-936" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-936', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-937" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-950', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt id="link-951" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-951', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-952" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-937', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1450"></a><tt class="py-lineno">1450</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1451"></a><tt class="py-lineno">1451</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1452"></a><tt class="py-lineno">1452</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1453"></a><tt class="py-lineno">1453</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1454"></a><tt class="py-lineno">1454</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1455"></a><tt class="py-lineno">1455</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1457"></a><tt class="py-lineno">1457</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line"> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-938" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-938', 'extend', 'link-938');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"> </tt>
-<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line"> </tt>
-<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-939" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-939', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-940" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-940', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-941" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-941', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">                          <tt id="link-942" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-942', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-def"><a name="L1469"></a><tt class="py-lineno">1469</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-expanded"><a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-943" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-952', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1463"></a><tt class="py-lineno">1463</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line"> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-953" class="py-name" targets="Method lxml.etree._Element.extend()=lxml.etree._Element-class.html#extend"><a title="lxml.etree._Element.extend" class="py-name" href="#" onclick="return doclink('link-953', 'extend', 'link-953');">extend</a></tt><tt class="py-op">(</tt><tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">self_node</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line"> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"> </tt>
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-954', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-955" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-955', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-956', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">                          <tt id="link-957" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-957', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-def"><a name="L1478"></a><tt class="py-lineno">1478</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates">test_extension_element_apply_templates</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates-expanded"><a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-958" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-943', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt id="link-944" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-944', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-945" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-958', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt id="link-959" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-959', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-960" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-945', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
-<a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"> </tt>
-<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-946" class="py-name" targets="Method lxml.etree.XSLTExtension.apply_templates()=lxml.etree.XSLTExtension-class.html#apply_templates"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-946', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-947" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-947', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-948" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-960', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1486"></a><tt class="py-lineno">1486</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1487"></a><tt class="py-lineno">1487</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1488"></a><tt class="py-lineno">1488</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
+<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line"> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-961" class="py-name" targets="Method lxml.etree.XSLTExtension.apply_templates()=lxml.etree.XSLTExtension-class.html#apply_templates"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-961', 'apply_templates', 'link-961');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-962" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-962', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-963" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-948', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-949" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-963', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-949', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-950" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-964', 'Element', 'link-913');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-965" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-950', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-951" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-951', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line"> </tt>
-<a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line"> </tt>
-<a name="L1496"></a><tt class="py-lineno">1496</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-952" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-952', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-953" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-953', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1497"></a><tt class="py-lineno">1497</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-954" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-954', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1498"></a><tt class="py-lineno">1498</tt>  <tt class="py-line">                          <tt id="link-955" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-955', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;T&gt;Y&lt;/T&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-def"><a name="L1500"></a><tt class="py-lineno">1500</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-expanded"><a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-956" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-965', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1499"></a><tt class="py-lineno">1499</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-966', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line"> </tt>
+<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-967" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-967', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-968" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-968', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-969" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-969', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line">                          <tt id="link-970" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-970', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;T&gt;Y&lt;/T&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-def"><a name="L1509"></a><tt class="py-lineno">1509</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_elements_only">test_extension_element_apply_templates_elements_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_elements_only-expanded"><a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-956', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1502"></a><tt class="py-lineno">1502</tt>  <tt class="py-line">        <tt id="link-957" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-957', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-958" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-971', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">        <tt id="link-972" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-972', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-973" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-958', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1508"></a><tt class="py-lineno">1508</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line"> </tt>
-<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-959" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-959', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">                                                       <tt class="py-name">elements_only</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">                        <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-960" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-960', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-961" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-961', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line"> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-962" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-962', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-963" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-963', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-964" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-964', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">                          <tt id="link-965" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-965', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-def"><a name="L1528"></a><tt class="py-lineno">1528</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-expanded"><a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-966" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-973', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1515"></a><tt class="py-lineno">1515</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line"> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1526"></a><tt class="py-lineno">1526</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-974" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-974', 'apply_templates', 'link-961');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
+<a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">                                                       <tt class="py-name">elements_only</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">                        <tt class="py-keyword">assert</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-975" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-975', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-976" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-976', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line"> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-977" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-977', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-978" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-978', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-979" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-979', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line">                          <tt id="link-980" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-980', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-def"><a name="L1537"></a><tt class="py-lineno">1537</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_remove_blank_text">test_extension_element_apply_templates_remove_blank_text</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_remove_blank_text-expanded"><a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-981" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-966', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt id="link-967" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-967', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-968" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-981', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-982" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-982', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-983" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-968', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1535"></a><tt class="py-lineno">1535</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;xsl:text&gt;   &lt;/xsl:text&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line"> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-969" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-969', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
-<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line">                                                       <tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-970" class="py-name"><a title="lxml.html.basestring
-lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-970', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">                            <tt class="py-keyword">assert</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-971" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-971', 'strip', 'link-221');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-972" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-983', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1545"></a><tt class="py-lineno">1545</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;X/&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1548"></a><tt class="py-lineno">1548</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;xsl:text&gt;   &lt;/xsl:text&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line"> </tt>
+<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">                    <tt class="py-keyword">for</tt> <tt class="py-name">result</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-984" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-984', 'apply_templates', 'link-961');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> </tt>
+<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">                                                       <tt class="py-name">remove_blank_text</tt><tt class="py-op">=</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">                        <tt class="py-keyword">if</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">,</tt> <tt id="link-985" class="py-name"><a title="lxml.html.basestring
+lxml.html.clean.basestring" class="py-name" href="#" onclick="return doclink('link-985', 'basestring', 'link-11');">basestring</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">                            <tt class="py-keyword">assert</tt> <tt class="py-name">result</tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-986', 'strip', 'link-221');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-987" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-972', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-973" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-987', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-988" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-973', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1551"></a><tt class="py-lineno">1551</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-974" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-988', 'Element', 'link-913');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">"T"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">                            <tt class="py-name">el</tt><tt class="py-op">.</tt><tt id="link-989" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-974', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
-<a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-975" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-975', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line"> </tt>
-<a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line"> </tt>
-<a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-976" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-976', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-977" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-977', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1559"></a><tt class="py-lineno">1559</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-978" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-978', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">                          <tt id="link-979" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-979', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-def"><a name="L1562"></a><tt class="py-lineno">1562</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-expanded"><a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-980" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-989', 'text', 'link-372');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">                        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">                            <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt class="py-name">result</tt> </tt>
+<a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">                        <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-990', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line"> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"> </tt>
+<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-991" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-991', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-992" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-992', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-993" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-993', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">                          <tt id="link-994" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-994', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;X/&gt;&lt;T&gt;XYZ&lt;/T&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-def"><a name="L1571"></a><tt class="py-lineno">1571</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node">test_extension_element_apply_templates_target_node</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node-expanded"><a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-980', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt id="link-981" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-981', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-982" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-995', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">        <tt id="link-996" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-996', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-997" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-982', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1567"></a><tt class="py-lineno">1567</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
-<a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"> </tt>
-<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-983" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-983', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"> </tt>
-<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line"> </tt>
-<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-984" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-984', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-985" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-985', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-986" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-986', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">                          <tt id="link-987" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-987', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;YXYZ&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-def"><a name="L1587"></a><tt class="py-lineno">1587</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-expanded"><a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-988" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-997', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x" /&gt;</tt> </tt>
+<a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;XYZ&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line"> </tt>
+<a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-998" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-998', 'apply_templates', 'link-961');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line"> </tt>
+<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-999', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1000" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1000', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1001', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">                          <tt id="link-1002" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1002', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;YXYZ&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-def"><a name="L1596"></a><tt class="py-lineno">1596</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_apply_templates_target_node_doc">test_extension_element_apply_templates_target_node_doc</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_apply_templates_target_node_doc-expanded"><a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1003" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-988', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">        <tt id="link-989" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-989', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-990" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1003', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">        <tt id="link-1004" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1004', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1005" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-990', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;</tt> </tt>
-<a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;xsl:processing-instruction name="test"&gt;TEST&lt;/xsl:processing-instruction&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;&lt;xsl:comment&gt;TEST&lt;/xsl:comment&gt;&lt;/xsl:template&gt;</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"> </tt>
-<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
-<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-991" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-991', 'apply_templates', 'link-946');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line"> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-992" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-992', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-993" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-993', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-994" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1005', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;&lt;x&gt;X&lt;/x&gt;&lt;y&gt;Y&lt;/y&gt;&lt;z/&gt;&lt;/myns:myext&gt;</tt> </tt>
+<a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="x"&gt;&lt;xsl:processing-instruction name="test"&gt;TEST&lt;/xsl:processing-instruction&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="y"&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="z"&gt;&lt;xsl:comment&gt;TEST&lt;/xsl:comment&gt;&lt;/xsl:template&gt;</tt> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line"> </tt>
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                <tt class="py-keyword">for</tt> <tt class="py-name">child</tt> <tt class="py-keyword">in</tt> <tt class="py-name">self_node</tt><tt class="py-op">:</tt> </tt>
+<a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.etree.XSLTExtension.apply_templates" class="py-name" href="#" onclick="return doclink('link-1006', 'apply_templates', 'link-961');">apply_templates</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">child</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line"> </tt>
+<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"> </tt>
+<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1007" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1007', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1008" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1008', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1009" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-994', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-995" class="py-name"><a title="lxml.etree.XSLT.tostring
-lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-995', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                          <tt id="link-996" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-996', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test TEST?&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;!--TEST--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-def"><a name="L1613"></a><tt class="py-lineno">1613</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-expanded"><a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-997" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1009', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name"><a title="lxml.etree.XSLT.tostring
+lxml.etree.tostring" class="py-name" href="#" onclick="return doclink('link-1010', 'tostring', 'link-244');">tostring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line">                          <tt id="link-1011" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1011', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;?test TEST?&gt;&lt;Y&gt;XYZ&lt;/Y&gt;&lt;!--TEST--&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-def"><a name="L1622"></a><tt class="py-lineno">1622</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children">test_extension_element_process_children</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children-expanded"><a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1012" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-997', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;E&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">        <tt id="link-998" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-998', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-999" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1012', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;E&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line">        <tt id="link-1013" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1013', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1014" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-999', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1616"></a><tt class="py-lineno">1616</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1617"></a><tt class="py-lineno">1617</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1618"></a><tt class="py-lineno">1618</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1619"></a><tt class="py-lineno">1619</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1620"></a><tt class="py-lineno">1620</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1621"></a><tt class="py-lineno">1621</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="testvar"&gt;yo&lt;/xsl:variable&gt;</tt> </tt>
-<a name="L1622"></a><tt class="py-lineno">1622</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;</tt> </tt>
-<a name="L1623"></a><tt class="py-lineno">1623</tt>  <tt class="py-line"><tt class="py-string">      &lt;myns:myext&gt;</tt> </tt>
-<a name="L1624"></a><tt class="py-lineno">1624</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:attribute name="attr"&gt;</tt> </tt>
-<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:value-of select="$testvar" /&gt;</tt> </tt>
-<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:attribute&gt;</tt> </tt>
-<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"><tt class="py-string">        &lt;B&gt;</tt> </tt>
-<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:choose&gt;</tt> </tt>
-<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:when test="1 = 2"&gt;&lt;C/&gt;&lt;/xsl:when&gt;</tt> </tt>
-<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:otherwise&gt;&lt;D&gt;&lt;xsl:value-of select="b/text()" /&gt;&lt;/D&gt;&lt;/xsl:otherwise&gt;</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:choose&gt;</tt> </tt>
-<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"><tt class="py-string">        &lt;/B&gt;</tt> </tt>
-<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line"><tt class="py-string">      &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line"><tt class="py-string">    &lt;/A&gt;</tt> </tt>
-<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"> </tt>
-<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1000" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1014', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1625"></a><tt class="py-lineno">1625</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1626"></a><tt class="py-lineno">1626</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1627"></a><tt class="py-lineno">1627</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line"><tt class="py-string">    &lt;xsl:variable name="testvar"&gt;yo&lt;/xsl:variable&gt;</tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;</tt> </tt>
+<a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"><tt class="py-string">      &lt;myns:myext&gt;</tt> </tt>
+<a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line"><tt class="py-string">        &lt;xsl:attribute name="attr"&gt;</tt> </tt>
+<a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:value-of select="$testvar" /&gt;</tt> </tt>
+<a name="L1635"></a><tt class="py-lineno">1635</tt>  <tt class="py-line"><tt class="py-string">        &lt;/xsl:attribute&gt;</tt> </tt>
+<a name="L1636"></a><tt class="py-lineno">1636</tt>  <tt class="py-line"><tt class="py-string">        &lt;B&gt;</tt> </tt>
+<a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"><tt class="py-string">          &lt;xsl:choose&gt;</tt> </tt>
+<a name="L1638"></a><tt class="py-lineno">1638</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:when test="1 = 2"&gt;&lt;C/&gt;&lt;/xsl:when&gt;</tt> </tt>
+<a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line"><tt class="py-string">            &lt;xsl:otherwise&gt;&lt;D&gt;&lt;xsl:value-of select="b/text()" /&gt;&lt;/D&gt;&lt;/xsl:otherwise&gt;</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line"><tt class="py-string">          &lt;/xsl:choose&gt;</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line"><tt class="py-string">        &lt;/B&gt;</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line"><tt class="py-string">      &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"><tt class="py-string">    &lt;/A&gt;</tt> </tt>
+<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line"> </tt>
+<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1015" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1000', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1001" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1015', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1016" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1001', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1002" class="py-name" targets="Method lxml.etree.XSLTExtension.process_children()=lxml.etree.XSLTExtension-class.html#process_children"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1002', 'process_children', 'link-1002');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1003" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1003', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"> </tt>
-<a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line"> </tt>
-<a name="L1646"></a><tt class="py-lineno">1646</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1004" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1004', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1005" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1005', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1647"></a><tt class="py-lineno">1647</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1006" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1006', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1648"></a><tt class="py-lineno">1648</tt>  <tt class="py-line">                          <tt id="link-1007" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1007', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;MYattr="yo"&gt;&lt;B&gt;&lt;D&gt;E&lt;/D&gt;&lt;/B&gt;&lt;/MY&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1649"></a><tt class="py-lineno">1649</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-def"><a name="L1650"></a><tt class="py-lineno">1650</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-expanded"><a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1008" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1016', 'Element', 'link-913');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1650"></a><tt class="py-lineno">1650</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1017" class="py-name" targets="Method lxml.etree.XSLTExtension.process_children()=lxml.etree.XSLTExtension-class.html#process_children"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1017', 'process_children', 'link-1017');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1018" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1018', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line"> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line"> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1019" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1019', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1020" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1020', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1021" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1021', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">                          <tt id="link-1022" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1022', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A&gt;&lt;MYattr="yo"&gt;&lt;B&gt;&lt;D&gt;E&lt;/D&gt;&lt;/B&gt;&lt;/MY&gt;&lt;/A&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-def"><a name="L1659"></a><tt class="py-lineno">1659</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_append_only">test_extension_element_process_children_to_append_only</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_append_only-expanded"><a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1023" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1008', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">        <tt id="link-1009" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1009', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1010" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1023', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line">        <tt id="link-1024" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1024', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1025" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1010', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"> </tt>
-<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1011" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1011', 'process_children', 'link-1002');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"> </tt>
-<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"> </tt>
-<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1012" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1012', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1013" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1013', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1014" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1014', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line">                          <tt id="link-1015" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1015', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-def"><a name="L1674"></a><tt class="py-lineno">1674</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-expanded"><a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1016" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1025', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
+<a name="L1669"></a><tt class="py-lineno">1669</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1670"></a><tt class="py-lineno">1670</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1671"></a><tt class="py-lineno">1671</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1672"></a><tt class="py-lineno">1672</tt>  <tt class="py-line"> </tt>
+<a name="L1673"></a><tt class="py-lineno">1673</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1674"></a><tt class="py-lineno">1674</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1675"></a><tt class="py-lineno">1675</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1026', 'process_children', 'link-1017');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">output_parent</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line"> </tt>
+<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"> </tt>
+<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1027" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1027', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1028" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1028', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1029" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1029', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line">                          <tt id="link-1030" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1030', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;A/&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-def"><a name="L1683"></a><tt class="py-lineno">1683</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_to_read_only_raise">test_extension_element_process_children_to_read_only_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_to_read_only_raise-expanded"><a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1031" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1016', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1676"></a><tt class="py-lineno">1676</tt>  <tt class="py-line">        <tt id="link-1017" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1017', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1018" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1031', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line">        <tt id="link-1032" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1032', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1033" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1018', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1677"></a><tt class="py-lineno">1677</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1678"></a><tt class="py-lineno">1678</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1679"></a><tt class="py-lineno">1679</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1680"></a><tt class="py-lineno">1680</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1681"></a><tt class="py-lineno">1681</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1682"></a><tt class="py-lineno">1682</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1683"></a><tt class="py-lineno">1683</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
-<a name="L1684"></a><tt class="py-lineno">1684</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1685"></a><tt class="py-lineno">1685</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line"> </tt>
-<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1019" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1019', 'process_children', 'link-1002');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">self_node</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line"> </tt>
-<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line"> </tt>
-<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1020" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1020', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1021" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1021', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-def"><a name="L1696"></a><tt class="py-lineno">1696</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-expanded"><a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1022" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1033', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1686"></a><tt class="py-lineno">1686</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1687"></a><tt class="py-lineno">1687</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1688"></a><tt class="py-lineno">1688</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1689"></a><tt class="py-lineno">1689</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1690"></a><tt class="py-lineno">1690</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1691"></a><tt class="py-lineno">1691</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1692"></a><tt class="py-lineno">1692</tt>  <tt class="py-line"><tt class="py-string">      &lt;A/&gt;</tt> </tt>
+<a name="L1693"></a><tt class="py-lineno">1693</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1694"></a><tt class="py-lineno">1694</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1695"></a><tt class="py-lineno">1695</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1696"></a><tt class="py-lineno">1696</tt>  <tt class="py-line"> </tt>
+<a name="L1697"></a><tt class="py-lineno">1697</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1034" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1034', 'process_children', 'link-1017');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">self_node</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"> </tt>
+<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line"> </tt>
+<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1035" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1035', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1036" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1036', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-def"><a name="L1705"></a><tt class="py-lineno">1705</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_process_children_with_subextension_element">test_extension_element_process_children_with_subextension_element</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_process_children_with_subextension_element-expanded"><a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1037" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1022', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1698"></a><tt class="py-lineno">1698</tt>  <tt class="py-line">        <tt id="link-1023" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1023', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1024" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1037', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a/&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line">        <tt id="link-1038" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1038', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1039" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1024', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1699"></a><tt class="py-lineno">1699</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1700"></a><tt class="py-lineno">1700</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1701"></a><tt class="py-lineno">1701</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1702"></a><tt class="py-lineno">1702</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
-<a name="L1703"></a><tt class="py-lineno">1703</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1704"></a><tt class="py-lineno">1704</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
-<a name="L1705"></a><tt class="py-lineno">1705</tt>  <tt class="py-line"><tt class="py-string">      &lt;A&gt;&lt;myns:myext&gt;&lt;B/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1706"></a><tt class="py-lineno">1706</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
-<a name="L1707"></a><tt class="py-lineno">1707</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"> </tt>
-<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line">            <tt class="py-name">callback_call_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1025" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1039', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1708"></a><tt class="py-lineno">1708</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1709"></a><tt class="py-lineno">1709</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1710"></a><tt class="py-lineno">1710</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1711"></a><tt class="py-lineno">1711</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"&gt;</tt> </tt>
+<a name="L1712"></a><tt class="py-lineno">1712</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1713"></a><tt class="py-lineno">1713</tt>  <tt class="py-line"><tt class="py-string">    &lt;myns:myext&gt;</tt> </tt>
+<a name="L1714"></a><tt class="py-lineno">1714</tt>  <tt class="py-line"><tt class="py-string">      &lt;A&gt;&lt;myns:myext&gt;&lt;B/&gt;&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line"><tt class="py-string">    &lt;/myns:myext&gt;</tt> </tt>
+<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line"> </tt>
+<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">            <tt class="py-name">callback_call_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line">                <tt class="py-name">el</tt> <tt class="py-op">=</tt> <tt id="link-1040" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1025', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1026" class="py-name"><a title="lxml.etree.Element
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1040', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1041" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1026', 'Element', 'link-898');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt id="link-1027" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1027', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1715"></a><tt class="py-lineno">1715</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1028" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1028', 'process_children', 'link-1002');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-<a name="L1716"></a><tt class="py-lineno">1716</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1029" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1029', 'append', 'link-571');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1717"></a><tt class="py-lineno">1717</tt>  <tt class="py-line"> </tt>
-<a name="L1718"></a><tt class="py-lineno">1718</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1719"></a><tt class="py-lineno">1719</tt>  <tt class="py-line"> </tt>
-<a name="L1720"></a><tt class="py-lineno">1720</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1030" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1030', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1031" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1031', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-<a name="L1721"></a><tt class="py-lineno">1721</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1032" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
-lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1032', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1722"></a><tt class="py-lineno">1722</tt>  <tt class="py-line">                          <tt id="link-1033" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1033', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;MYn="1"&gt;&lt;A&gt;&lt;MYn="2"&gt;&lt;B/&gt;&lt;/MY&gt;&lt;/A&gt;&lt;/MY&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1723"></a><tt class="py-lineno">1723</tt>  <tt class="py-line"> </tt>
-<a name="ETreeXSLTExtElementTestCase.test_extension_element_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-def"><a name="L1724"></a><tt class="py-lineno">1724</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-expanded"><a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1034" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-1041', 'Element', 'link-913');">Element</a></tt><tt class="py-op">(</tt><tt class="py-string">'MY'</tt><tt class="py-op">,</tt> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt id="link-1042" class="py-name"><a title="str" class="py-name" href="#" onclick="return doclink('link-1042', 'str', 'link-10');">str</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">callback_call_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1724"></a><tt class="py-lineno">1724</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1043" class="py-name"><a title="lxml.etree.XSLTExtension.process_children" class="py-name" href="#" onclick="return doclink('link-1043', 'process_children', 'link-1017');">process_children</a></tt><tt class="py-op">(</tt><tt class="py-name">context</tt><tt class="py-op">,</tt> <tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+<a name="L1725"></a><tt class="py-lineno">1725</tt>  <tt class="py-line">                <tt class="py-name">output_parent</tt><tt class="py-op">.</tt><tt id="link-1044" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-1044', 'append', 'link-586');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">el</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line"> </tt>
+<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"> </tt>
+<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line">        <tt class="py-name">result</tt> <tt class="py-op">=</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1045', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">(</tt><tt id="link-1046" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1046', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1047" class="py-name"><a title="lxml.tests.common_imports.HelperTestCase._rootstring
+lxml.tests.test_elementtree._ETreeTestCaseBase._rootstring" class="py-name" href="#" onclick="return doclink('link-1047', '_rootstring', 'link-327');">_rootstring</a></tt><tt class="py-op">(</tt><tt class="py-name">result</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line">                          <tt id="link-1048" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1048', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;MYn="1"&gt;&lt;A&gt;&lt;MYn="2"&gt;&lt;B/&gt;&lt;/MY&gt;&lt;/A&gt;&lt;/MY&gt;'</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line"> </tt>
+<a name="ETreeXSLTExtElementTestCase.test_extension_element_raise"></a><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-def"><a name="L1733"></a><tt class="py-lineno">1733</tt> <a class="py-toggle" href="#" id="ETreeXSLTExtElementTestCase.test_extension_element_raise-toggle" onclick="return toggle('ETreeXSLTExtElementTestCase.test_extension_element_raise');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html#test_extension_element_raise">test_extension_element_raise</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ETreeXSLTExtElementTestCase.test_extension_element_raise-expanded"><a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1049" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1034', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1726"></a><tt class="py-lineno">1726</tt>  <tt class="py-line">        <tt id="link-1035" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1035', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1036" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1049', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line">        <tt id="link-1050" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1050', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1051" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1036', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1727"></a><tt class="py-lineno">1727</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1728"></a><tt class="py-lineno">1728</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
-<a name="L1729"></a><tt class="py-lineno">1729</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
-<a name="L1730"></a><tt class="py-lineno">1730</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
-<a name="L1731"></a><tt class="py-lineno">1731</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
-<a name="L1732"></a><tt class="py-lineno">1732</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
-<a name="L1733"></a><tt class="py-lineno">1733</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
-<a name="L1734"></a><tt class="py-lineno">1734</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1735"></a><tt class="py-lineno">1735</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"> </tt>
-<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"> </tt>
-<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">MyError</tt><tt class="py-op">(</tt><tt class="py-string">"expected!"</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"> </tt>
-<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
-<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">MyError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1037" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1037', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1038" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1038', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line"> </tt>
-<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase"></a><div id="Py3XSLTTestCase-def"><a name="L1748"></a><tt class="py-lineno">1748</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase-toggle" onclick="return toggle('Py3XSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Py3XSLTTestCase-expanded"><a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">    <tt class="py-docstring">"""XSLT tests for etree under Python 3"""</tt> </tt>
-<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line"> </tt>
-<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">    <tt id="link-1039" class="py-name" targets="Variable lxml.tests.test_css.CSSTestCase.pytestmark=lxml.tests.test_css.CSSTestCase-class.html#pytestmark,Variable lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark=lxml.tests.test_xslt.Py3XSLTTestCase-class.html#pytestmark"><a title="lxml.tests.test_css.CSSTestCase.pytestmark
-lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark" class="py-name" href="#" onclick="return doclink('link-1039', 'pytestmark', 'link-1039');">pytestmark</a></tt> <tt class="py-op">=</tt> <tt id="link-1040" class="py-name"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-1040', 'skipif', 'link-22');">skipif</a></tt><tt class="py-op">(</tt><tt class="py-string">'sys.version_info &lt; (3,0)'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_bytes"></a><div id="Py3XSLTTestCase.test_xslt_result_bytes-def"><a name="L1753"></a><tt class="py-lineno">1753</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytes-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytes-expanded"><a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1041" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1051', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1736"></a><tt class="py-lineno">1736</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1737"></a><tt class="py-lineno">1737</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"</tt> </tt>
+<a name="L1738"></a><tt class="py-lineno">1738</tt>  <tt class="py-line"><tt class="py-string">    xmlns:myns="testns"</tt> </tt>
+<a name="L1739"></a><tt class="py-lineno">1739</tt>  <tt class="py-line"><tt class="py-string">    extension-element-prefixes="myns"</tt> </tt>
+<a name="L1740"></a><tt class="py-lineno">1740</tt>  <tt class="py-line"><tt class="py-string">    exclude-result-prefixes="myns"&gt;</tt> </tt>
+<a name="L1741"></a><tt class="py-lineno">1741</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="a"&gt;</tt> </tt>
+<a name="L1742"></a><tt class="py-lineno">1742</tt>  <tt class="py-line"><tt class="py-string">    &lt;A&gt;&lt;myns:myext&gt;b&lt;/myns:myext&gt;&lt;/A&gt;</tt> </tt>
+<a name="L1743"></a><tt class="py-lineno">1743</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1744"></a><tt class="py-lineno">1744</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1745"></a><tt class="py-lineno">1745</tt>  <tt class="py-line"> </tt>
+<a name="L1746"></a><tt class="py-lineno">1746</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyError</tt><tt class="py-op">(</tt><tt class="py-base-class">Exception</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1747"></a><tt class="py-lineno">1747</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
+</div><a name="L1748"></a><tt class="py-lineno">1748</tt>  <tt class="py-line"> </tt>
+<a name="L1749"></a><tt class="py-lineno">1749</tt>  <tt class="py-line">        <tt class="py-keyword">class</tt> <tt class="py-def-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-base-class">etree</tt><tt class="py-op">.</tt><tt class="py-base-class">XSLTExtension</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1750"></a><tt class="py-lineno">1750</tt>  <tt class="py-line">            <tt class="py-keyword">def</tt> <tt class="py-def-name">execute</tt><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">context</tt><tt class="py-op">,</tt> <tt class="py-param">self_node</tt><tt class="py-op">,</tt> <tt class="py-param">input_node</tt><tt class="py-op">,</tt> <tt class="py-param">output_parent</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1751"></a><tt class="py-lineno">1751</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">MyError</tt><tt class="py-op">(</tt><tt class="py-string">"expected!"</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1752"></a><tt class="py-lineno">1752</tt>  <tt class="py-line"> </tt>
+<a name="L1753"></a><tt class="py-lineno">1753</tt>  <tt class="py-line">        <tt class="py-name">extensions</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> <tt class="py-op">(</tt><tt class="py-string">'testns'</tt><tt class="py-op">,</tt> <tt class="py-string">'myext'</tt><tt class="py-op">)</tt> <tt class="py-op">:</tt> <tt class="py-name">MyExt</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">}</tt> </tt>
+<a name="L1754"></a><tt class="py-lineno">1754</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertRaises</tt><tt class="py-op">(</tt><tt class="py-name">MyError</tt><tt class="py-op">,</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree._ElementTree.xslt" class="py-name" href="#" onclick="return doclink('link-1052', 'xslt', 'link-234');">xslt</a></tt><tt class="py-op">,</tt> <tt id="link-1053" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1053', 'style', 'link-24');">style</a></tt><tt class="py-op">,</tt> <tt class="py-name">extensions</tt><tt class="py-op">=</tt><tt class="py-name">extensions</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line"> </tt>
+<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase"></a><div id="Py3XSLTTestCase-def"><a name="L1757"></a><tt class="py-lineno">1757</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase-toggle" onclick="return toggle('Py3XSLTTestCase');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html">Py3XSLTTestCase</a><tt class="py-op">(</tt><tt class="py-base-class">HelperTestCase</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="Py3XSLTTestCase-expanded"><a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line">    <tt class="py-docstring">"""XSLT tests for etree under Python 3"""</tt> </tt>
+<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"> </tt>
+<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line">    <tt id="link-1054" class="py-name" targets="Variable lxml.tests.test_css.CSSTestCase.pytestmark=lxml.tests.test_css.CSSTestCase-class.html#pytestmark,Variable lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark=lxml.tests.test_xslt.Py3XSLTTestCase-class.html#pytestmark"><a title="lxml.tests.test_css.CSSTestCase.pytestmark
+lxml.tests.test_xslt.Py3XSLTTestCase.pytestmark" class="py-name" href="#" onclick="return doclink('link-1054', 'pytestmark', 'link-1054');">pytestmark</a></tt> <tt class="py-op">=</tt> <tt id="link-1055" class="py-name"><a title="lxml.tests.common_imports.skipif" class="py-name" href="#" onclick="return doclink('link-1055', 'skipif', 'link-22');">skipif</a></tt><tt class="py-op">(</tt><tt class="py-string">'sys.version_info &lt; (3,0)'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_bytes"></a><div id="Py3XSLTTestCase.test_xslt_result_bytes-def"><a name="L1762"></a><tt class="py-lineno">1762</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytes-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytes');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytes">test_xslt_result_bytes</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_bytes-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytes-expanded"><a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1056" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1041', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1755"></a><tt class="py-lineno">1755</tt>  <tt class="py-line">        <tt id="link-1042" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1042', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1043" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1056', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">        <tt id="link-1057" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1057', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1058" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1043', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1756"></a><tt class="py-lineno">1756</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1757"></a><tt class="py-lineno">1757</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1758"></a><tt class="py-lineno">1758</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1759"></a><tt class="py-lineno">1759</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1760"></a><tt class="py-lineno">1760</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1761"></a><tt class="py-lineno">1761</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1762"></a><tt class="py-lineno">1762</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1763"></a><tt class="py-lineno">1763</tt>  <tt class="py-line"> </tt>
-<a name="L1764"></a><tt class="py-lineno">1764</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1044" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1058', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1772"></a><tt class="py-lineno">1772</tt>  <tt class="py-line"> </tt>
+<a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1059" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1044', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1045" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1045', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1046" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1046', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1765"></a><tt class="py-lineno">1765</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1766"></a><tt class="py-lineno">1766</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1047" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1047', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1767"></a><tt class="py-lineno">1767</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1768"></a><tt class="py-lineno">1768</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1769"></a><tt class="py-lineno">1769</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1770"></a><tt class="py-lineno">1770</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1771"></a><tt class="py-lineno">1771</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_bytearray"></a><div id="Py3XSLTTestCase.test_xslt_result_bytearray-def"><a name="L1772"></a><tt class="py-lineno">1772</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytearray-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytearray');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-expanded"><a name="L1773"></a><tt class="py-lineno">1773</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1048" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1059', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1060" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1060', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1061" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1061', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1062" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1062', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_bytearray"></a><div id="Py3XSLTTestCase.test_xslt_result_bytearray-def"><a name="L1781"></a><tt class="py-lineno">1781</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_bytearray-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_bytearray');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_bytearray">test_xslt_result_bytearray</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_bytearray-expanded"><a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1063" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1048', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1774"></a><tt class="py-lineno">1774</tt>  <tt class="py-line">        <tt id="link-1049" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1049', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1050" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1063', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">        <tt id="link-1064" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1064', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1065" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1050', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1775"></a><tt class="py-lineno">1775</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1776"></a><tt class="py-lineno">1776</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1777"></a><tt class="py-lineno">1777</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1778"></a><tt class="py-lineno">1778</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1779"></a><tt class="py-lineno">1779</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1780"></a><tt class="py-lineno">1780</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1781"></a><tt class="py-lineno">1781</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1782"></a><tt class="py-lineno">1782</tt>  <tt class="py-line"> </tt>
-<a name="L1783"></a><tt class="py-lineno">1783</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1051" class="py-name"><a title="lxml.etree
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1065', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
+<a name="L1791"></a><tt class="py-lineno">1791</tt>  <tt class="py-line"> </tt>
+<a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1066" class="py-name"><a title="lxml.etree
 lxml.sax.ElementTreeContentHandler.etree
 lxml.tests.test_elementtree.CElementTreeTestCase.etree
 lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1051', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1052" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1052', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1053" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1053', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1784"></a><tt class="py-lineno">1784</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1785"></a><tt class="py-lineno">1785</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1054" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1054', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1786"></a><tt class="py-lineno">1786</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1787"></a><tt class="py-lineno">1787</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1788"></a><tt class="py-lineno">1788</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1789"></a><tt class="py-lineno">1789</tt>  <tt class="py-line">                          <tt class="py-name">bytearray</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1790"></a><tt class="py-lineno">1790</tt>  <tt class="py-line"> </tt>
-<a name="Py3XSLTTestCase.test_xslt_result_memoryview"></a><div id="Py3XSLTTestCase.test_xslt_result_memoryview-def"><a name="L1791"></a><tt class="py-lineno">1791</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_memoryview-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_memoryview');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-expanded"><a name="L1792"></a><tt class="py-lineno">1792</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1055" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1066', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1067" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1067', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1068" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1068', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1069" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1069', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line">                          <tt class="py-name">bytearray</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"> </tt>
+<a name="Py3XSLTTestCase.test_xslt_result_memoryview"></a><div id="Py3XSLTTestCase.test_xslt_result_memoryview-def"><a name="L1800"></a><tt class="py-lineno">1800</tt> <a class="py-toggle" href="#" id="Py3XSLTTestCase.test_xslt_result_memoryview-toggle" onclick="return toggle('Py3XSLTTestCase.test_xslt_result_memoryview');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt.Py3XSLTTestCase-class.html#test_xslt_result_memoryview">test_xslt_result_memoryview</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="Py3XSLTTestCase.test_xslt_result_memoryview-expanded"><a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1070" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1055', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
-<a name="L1793"></a><tt class="py-lineno">1793</tt>  <tt class="py-line">        <tt id="link-1056" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1056', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1057" class="py-name"><a title="lxml.etree._ElementTree.parse
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1070', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'&lt;a&gt;&lt;b&gt;B&lt;/b&gt;&lt;c&gt;C&lt;/c&gt;&lt;/a&gt;'</tt><tt class="py-op">)</tt> </tt>
+<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt id="link-1071" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1071', 'style', 'link-24');">style</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-1072" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1057', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1794"></a><tt class="py-lineno">1794</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
-<a name="L1795"></a><tt class="py-lineno">1795</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
-<a name="L1796"></a><tt class="py-lineno">1796</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
-<a name="L1797"></a><tt class="py-lineno">1797</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
-<a name="L1798"></a><tt class="py-lineno">1798</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
-<a name="L1799"></a><tt class="py-lineno">1799</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
-<a name="L1800"></a><tt class="py-lineno">1800</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
-<a name="L1801"></a><tt class="py-lineno">1801</tt>  <tt class="py-line"> </tt>
-<a name="L1802"></a><tt class="py-lineno">1802</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1058" class="py-name"><a title="lxml.etree
-lxml.sax.ElementTreeContentHandler.etree
-lxml.tests.test_elementtree.CElementTreeTestCase.etree
-lxml.tests.test_elementtree._ETreeTestCaseBase.etree
-lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1058', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1059" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
-lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1059', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1060" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1060', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
-<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1061" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1061', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
-<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
-<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
-<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
-<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">memoryview</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div></div><a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line"> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-1072', 'parse', 'link-23');">parse</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1803"></a><tt class="py-lineno">1803</tt>  <tt class="py-line"><tt class="py-string">&lt;xsl:stylesheet version="1.0"</tt> </tt>
+<a name="L1804"></a><tt class="py-lineno">1804</tt>  <tt class="py-line"><tt class="py-string">    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"&gt;</tt> </tt>
+<a name="L1805"></a><tt class="py-lineno">1805</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="*" /&gt;</tt> </tt>
+<a name="L1806"></a><tt class="py-lineno">1806</tt>  <tt class="py-line"><tt class="py-string">  &lt;xsl:template match="/"&gt;</tt> </tt>
+<a name="L1807"></a><tt class="py-lineno">1807</tt>  <tt class="py-line"><tt class="py-string">    &lt;foo&gt;&lt;xsl:value-of select="/a/b/text()" /&gt;&lt;/foo&gt;</tt> </tt>
+<a name="L1808"></a><tt class="py-lineno">1808</tt>  <tt class="py-line"><tt class="py-string">  &lt;/xsl:template&gt;</tt> </tt>
+<a name="L1809"></a><tt class="py-lineno">1809</tt>  <tt class="py-line"><tt class="py-string">&lt;/xsl:stylesheet&gt;'''</tt><tt class="py-op">)</tt> </tt>
 <a name="L1810"></a><tt class="py-lineno">1810</tt>  <tt class="py-line"> </tt>
-<a name="test_suite"></a><div id="test_suite-def"><a name="L1811"></a><tt class="py-lineno">1811</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1062" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTTestCase=lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1062', 'ETreeXSLTTestCase', 'link-1062');">ETreeXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1063" class="py-name" targets="Class lxml.tests.test_xslt.ETreeEXSLTTestCase=lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeEXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1063', 'ETreeEXSLTTestCase', 'link-1063');">ETreeEXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1064" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase=lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase" class="py-name" href="#" onclick="return doclink('link-1064', 'ETreeXSLTExtFuncTestCase', 'link-1064');">ETreeXSLTExtFuncTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1065" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtElementTestCase=lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase" class="py-name" href="#" onclick="return doclink('link-1065', 'ETreeXSLTExtElementTestCase', 'link-1065');">ETreeXSLTExtElementTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1066" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-1066', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1067" class="py-name" targets="Class lxml.tests.test_xslt.Py3XSLTTestCase=lxml.tests.test_xslt.Py3XSLTTestCase-class.html"><a title="lxml.tests.test_xslt.Py3XSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1067', 'Py3XSLTTestCase', 'link-1067');">Py3XSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L1820"></a><tt class="py-lineno">1820</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1068" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1068', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/extensions.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
-<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1069" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1069', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/xpathxslt.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
-</div><a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line"> </tt>
-<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
-<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
-<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line"> </tt><script type="text/javascript">
+<a name="L1811"></a><tt class="py-lineno">1811</tt>  <tt class="py-line">        <tt class="py-name">st</tt> <tt class="py-op">=</tt> <tt id="link-1073" class="py-name"><a title="lxml.etree
+lxml.sax.ElementTreeContentHandler.etree
+lxml.tests.test_elementtree.CElementTreeTestCase.etree
+lxml.tests.test_elementtree._ETreeTestCaseBase.etree
+lxml.tests.test_io._IOTestCaseBase.etree" class="py-name" href="#" onclick="return doclink('link-1073', 'etree', 'link-15');">etree</a></tt><tt class="py-op">.</tt><tt id="link-1074" class="py-name"><a title="lxml.etree.ErrorDomains.XSLT
+lxml.etree.XSLT" class="py-name" href="#" onclick="return doclink('link-1074', 'XSLT', 'link-27');">XSLT</a></tt><tt class="py-op">(</tt><tt id="link-1075" class="py-name"><a title="lxml.html.clean.Cleaner.style" class="py-name" href="#" onclick="return doclink('link-1075', 'style', 'link-24');">style</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1812"></a><tt class="py-lineno">1812</tt>  <tt class="py-line">        <tt class="py-name">res</tt> <tt class="py-op">=</tt> <tt class="py-name">st</tt><tt class="py-op">(</tt><tt class="py-name">tree</tt><tt class="py-op">)</tt> </tt>
+<a name="L1813"></a><tt class="py-lineno">1813</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">assertEqual</tt><tt class="py-op">(</tt><tt id="link-1076" class="py-name"><a title="lxml.tests.common_imports._bytes" class="py-name" href="#" onclick="return doclink('link-1076', '_bytes', 'link-19');">_bytes</a></tt><tt class="py-op">(</tt><tt class="py-string">'''\</tt> </tt>
+<a name="L1814"></a><tt class="py-lineno">1814</tt>  <tt class="py-line"><tt class="py-string">&lt;?xml version="1.0"?&gt;</tt> </tt>
+<a name="L1815"></a><tt class="py-lineno">1815</tt>  <tt class="py-line"><tt class="py-string">&lt;foo&gt;B&lt;/foo&gt;</tt> </tt>
+<a name="L1816"></a><tt class="py-lineno">1816</tt>  <tt class="py-line"><tt class="py-string">'''</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1817"></a><tt class="py-lineno">1817</tt>  <tt class="py-line">                          <tt class="py-name">bytes</tt><tt class="py-op">(</tt><tt class="py-name">memoryview</tt><tt class="py-op">(</tt><tt class="py-name">res</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L1818"></a><tt class="py-lineno">1818</tt>  <tt class="py-line"> </tt>
+<a name="L1819"></a><tt class="py-lineno">1819</tt>  <tt class="py-line"> </tt>
+<a name="test_suite"></a><div id="test_suite-def"><a name="L1820"></a><tt class="py-lineno">1820</tt> <a class="py-toggle" href="#" id="test_suite-toggle" onclick="return toggle('test_suite');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="lxml.tests.test_xslt-module.html#test_suite">test_suite</a><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="test_suite-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="test_suite-expanded"><a name="L1821"></a><tt class="py-lineno">1821</tt>  <tt class="py-line">    <tt class="py-name">suite</tt> <tt class="py-op">=</tt> <tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">TestSuite</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1822"></a><tt class="py-lineno">1822</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1077" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTTestCase=lxml.tests.test_xslt.ETreeXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1077', 'ETreeXSLTTestCase', 'link-1077');">ETreeXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1823"></a><tt class="py-lineno">1823</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1078" class="py-name" targets="Class lxml.tests.test_xslt.ETreeEXSLTTestCase=lxml.tests.test_xslt.ETreeEXSLTTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeEXSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1078', 'ETreeEXSLTTestCase', 'link-1078');">ETreeEXSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1824"></a><tt class="py-lineno">1824</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1079" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase=lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtFuncTestCase" class="py-name" href="#" onclick="return doclink('link-1079', 'ETreeXSLTExtFuncTestCase', 'link-1079');">ETreeXSLTExtFuncTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1825"></a><tt class="py-lineno">1825</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1080" class="py-name" targets="Class lxml.tests.test_xslt.ETreeXSLTExtElementTestCase=lxml.tests.test_xslt.ETreeXSLTExtElementTestCase-class.html"><a title="lxml.tests.test_xslt.ETreeXSLTExtElementTestCase" class="py-name" href="#" onclick="return doclink('link-1080', 'ETreeXSLTExtElementTestCase', 'link-1080');">ETreeXSLTExtElementTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1826"></a><tt class="py-lineno">1826</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt id="link-1081" class="py-name"><a title="lxml.tests.test_xslt.is_python3" class="py-name" href="#" onclick="return doclink('link-1081', 'is_python3', 'link-9');">is_python3</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1827"></a><tt class="py-lineno">1827</tt>  <tt class="py-line">        <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">unittest</tt><tt class="py-op">.</tt><tt class="py-name">makeSuite</tt><tt class="py-op">(</tt><tt id="link-1082" class="py-name" targets="Class lxml.tests.test_xslt.Py3XSLTTestCase=lxml.tests.test_xslt.Py3XSLTTestCase-class.html"><a title="lxml.tests.test_xslt.Py3XSLTTestCase" class="py-name" href="#" onclick="return doclink('link-1082', 'Py3XSLTTestCase', 'link-1082');">Py3XSLTTestCase</a></tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1828"></a><tt class="py-lineno">1828</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L1829"></a><tt class="py-lineno">1829</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1083" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1083', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/extensions.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1830"></a><tt class="py-lineno">1830</tt>  <tt class="py-line">    <tt class="py-name">suite</tt><tt class="py-op">.</tt><tt class="py-name">addTests</tt><tt class="py-op">(</tt> </tt>
+<a name="L1831"></a><tt class="py-lineno">1831</tt>  <tt class="py-line">        <tt class="py-op">[</tt><tt id="link-1084" class="py-name"><a title="lxml.tests.common_imports.make_doctest" class="py-name" href="#" onclick="return doclink('link-1084', 'make_doctest', 'link-21');">make_doctest</a></tt><tt class="py-op">(</tt><tt class="py-string">'../../../doc/xpathxslt.txt'</tt><tt class="py-op">)</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1832"></a><tt class="py-lineno">1832</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">suite</tt> </tt>
+</div><a name="L1833"></a><tt class="py-lineno">1833</tt>  <tt class="py-line"> </tt>
+<a name="L1834"></a><tt class="py-lineno">1834</tt>  <tt class="py-line"><tt class="py-keyword">if</tt> <tt class="py-name">__name__</tt> <tt class="py-op">==</tt> <tt class="py-string">'__main__'</tt><tt class="py-op">:</tt> </tt>
+<a name="L1835"></a><tt class="py-lineno">1835</tt>  <tt class="py-line">    <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">'to test use test.py %s'</tt> <tt class="py-op">%</tt> <tt class="py-name">__file__</tt><tt class="py-op">)</tt> </tt>
+<a name="L1836"></a><tt class="py-lineno">1836</tt>  <tt class="py-line"> </tt><script type="text/javascript">
 <!--
 expandto(location.href);
 // -->
@@ -3947,7 +3977,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 332eab2154d6e3f1373a429d2eda90dff1935335..0e7169173d5bc8609fec556e3eab48def2e4511c 100644 (file)
@@ -502,7 +502,7 @@ EXSLT tests
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d65fff590c3e1e752395dadc856322e615484bb3..021ba998d802e0151c18d8f995320e81b437567c 100644 (file)
@@ -566,7 +566,7 @@ Tests for extension elements in XSLT.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 70e6f61c97ff11e0a2884fd27698f17158a63714..b01bfc6fc5da0316d124ee8bcb05bc7a4ed11038 100644 (file)
@@ -374,7 +374,7 @@ Tests for XPath extension functions in XSLT.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 3f49f90f862317a397e50ac71a3b53a2c49b04e3..ac94cb061d1bc6ad94990e76bb5a3cd153cf63dd 100644 (file)
@@ -756,6 +756,22 @@ XSLT tests etree
         </tr>
       </table>
       
+    </td>
+  </tr>
+<tr>
+    <td width="15%" align="right" valign="top" class="summary">
+      <span class="summary-type">&nbsp;</span>
+    </td><td class="summary">
+      <table width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td><span class="summary-sig"><a name="test_xslt_access_control_repr"></a><span class="summary-sig-name">test_xslt_access_control_repr</span>(<span class="summary-sig-arg">self</span>)</span></td>
+          <td align="right" valign="top">
+            <span class="codelink"><a href="lxml.tests.test_xslt-pysrc.html#ETreeXSLTTestCase.test_xslt_access_control_repr">source&nbsp;code</a></span>
+            
+          </td>
+        </tr>
+      </table>
+      
     </td>
   </tr>
 <tr>
@@ -1126,7 +1142,7 @@ XSLT tests etree
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index fa0fae6c642c7361fde1e3635e35a754296bd816..60c7a3f3a39ef4df648e503353f4b656bd473d80 100644 (file)
@@ -420,7 +420,7 @@ s': {}}&gt;
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 097454c4ae925719ac72dbba05c425dc4b8f314f..42d32e23f2a2621431f476ce0d9f2983bb5a99aa 100644 (file)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index ef730f98af3e73ae9f30eaa122fa093ae5d47d96..715889b2ad0eaa1589075b725c8f58381f465b4d 100644 (file)
@@ -112,7 +112,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:11 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 9bc1fb02c855d40dffbba69da40e788803b9ac6b..9ded73ac1b33115b17dddf4f683d265361c58268 100644 (file)
@@ -363,7 +363,7 @@ contains some hooks for decoding encoded and multipart messages.
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index d79296ecd58029aacb28f055ee4563950944572f..c7cf6fbb58d3aa88d1371d774d0f2fa3883d1459 100644 (file)
@@ -155,7 +155,7 @@ namespace registry mechanism</em>    </li>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 29c4b90711c30aa19eda20ae59eec558185ee825..ece418ea39769fe2794836263f7ca65ce03edf3e 100644 (file)
@@ -1628,7 +1628,7 @@ arguments start and end are interpreted as in slice notation.</p>
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index aaa97a42e0b6c12cd92e9ddef1bb937183f14055..290581d0538ce134b62391e241ccfa130fa84129 100644 (file)
   <div class="private">
     <a target="mainFrame" href="lxml.html.diff-module.html#split_delete"
      >lxml.html.diff.split_delete</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="lxml.html.diff-module.html#split_trailing_whitespace"
+     >lxml.html.diff.split_trailing_whitespace</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.html.diff-module.html#split_unbalanced"
      >lxml.html.diff.split_unbalanced</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.html.diff-module.html#end_whitespace_re"
      >lxml.html.diff.end_whitespace_re</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="lxml.html.diff-module.html#split_words_re"
+     >lxml.html.diff.split_words_re</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.html.diff-module.html#start_whitespace_re"
      >lxml.html.diff.start_whitespace_re</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.html.formfill-module.html#default_error_creator"
      >lxml.html.formfill.default_error_creator</a><br />  </div>
-  <div class="private">
-    <a target="mainFrame" href="lxml.html.html5parser-module.html#_strings"
-     >lxml.html.html5parser._strings</a><br />  </div>
-    <a target="mainFrame" href="lxml.html.html5parser-module.html#html_parser"
+    <a target="mainFrame" href="lxml.html.html5parser-module.html#__package__"
+     >lxml.html.html5parser.__package__</a><br />    <a target="mainFrame" href="lxml.html.html5parser-module.html#html_parser"
      >lxml.html.html5parser.html_parser</a><br />    <a target="mainFrame" href="lxml.html.html5parser-module.html#xhtml_parser"
      >lxml.html.html5parser.xhtml_parser</a><br />  <div class="private">
     <a target="mainFrame" href="lxml.html-module.html#html_parser"
index e39fd5e293cfd994c0ef4062311e95e69699367f..abad96ed88d6695ae77a4af5c97dced0cb936e11 100644 (file)
   <div class="private">
     <a target="mainFrame" href="lxml.html.diff-module.html#split_delete"
      >split_delete</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="lxml.html.diff-module.html#split_trailing_whitespace"
+     >split_trailing_whitespace</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.html.diff-module.html#split_unbalanced"
      >split_unbalanced</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.html.diff-module.html#end_whitespace_re"
      >end_whitespace_re</a><br />  </div>
+  <div class="private">
+    <a target="mainFrame" href="lxml.html.diff-module.html#split_words_re"
+     >split_words_re</a><br />  </div>
   <div class="private">
     <a target="mainFrame" href="lxml.html.diff-module.html#start_whitespace_re"
      >start_whitespace_re</a><br />  </div>
index 0f33e913c9b34aba50e6a9400257047de96f7181..1200a4134b8cb46e3d5e71aaf866380e33a9d090 100644 (file)
      >fragments_fromstring</a><br />    <a target="mainFrame" href="lxml.html.html5parser-module.html#fromstring"
      >fromstring</a><br />    <a target="mainFrame" href="lxml.html.html5parser-module.html#parse"
      >parse</a><br />  <h2 class="toc">Variables</h2>
-  <div class="private">
-    <a target="mainFrame" href="lxml.html.html5parser-module.html#_strings"
-     >_strings</a><br />  </div>
-    <a target="mainFrame" href="lxml.html.html5parser-module.html#html_parser"
+    <a target="mainFrame" href="lxml.html.html5parser-module.html#__package__"
+     >__package__</a><br />    <a target="mainFrame" href="lxml.html.html5parser-module.html#html_parser"
      >html_parser</a><br />    <a target="mainFrame" href="lxml.html.html5parser-module.html#xhtml_parser"
      >xhtml_parser</a><br /><hr />
 <span class="options">[<a href="javascript:void(0);" class="privatelink"
index 89187b42b24234526e0ba29dce57fbf09854a923..84cfe77aa8940d65d0ad40c1aa772840b823752b 100644 (file)
@@ -657,9 +657,9 @@ hash(x)
     <td width="15%" align="right" valign="top" class="summary">
       <span class="summary-type">&nbsp;</span>
     </td><td class="summary">
-        <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': &lt;function _serialize_html at 0x24287d0&gt;,
- 'text': &lt;function _serialize_text at 0x2428848&gt;,
- 'xml': &lt;function _serialize_xml at 0x2428758&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x24287d0&gt;<code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
+        <a href="xml.etree.ElementTree-module.html#_serialize" class="summary-name" onclick="show_private();">_serialize</a> = <code title="{'html': &lt;function _serialize_html at 0x2801848&gt;,
+ 'text': &lt;function _serialize_text at 0x28018c0&gt;,
+ 'xml': &lt;function _serialize_xml at 0x28017d0&gt;}"><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x2801848&gt;<code class="variable-op">,</code><code class="variable-ellipsis">...</code></code>
     </td>
   </tr>
 </table>
@@ -743,9 +743,9 @@ hash(x)
   <dl class="fields">
     <dt>Value:</dt>
       <dd><table><tr><td><pre class="variable">
-<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x24287d0&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_text at 0x2428848&gt;<code class="variable-op">,</code>
- <code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_xml at 0x2428758&gt;<code class="variable-group">}</code>
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">html</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_html at 0x2801848&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">text</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_text at 0x28018c0&gt;<code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">xml</code><code class="variable-quote">'</code><code class="variable-op">: </code>&lt;function _serialize_xml at 0x28017d0&gt;<code class="variable-group">}</code>
 </pre></td></tr></table>
 </dd>
   </dl>
@@ -783,7 +783,7 @@ hash(x)
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:06 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:08 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 929ecfa89bf72bd7684f46bbb05870eb7cc8433c..987c5ee402ec507341d844577ccf08a029dc4057 100644 (file)
@@ -1744,72 +1744,52 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 <a name="L988"></a><tt class="py-lineno"> 988</tt>  <tt class="py-line">                    <tt class="py-comment"># FIXME: handle boolean attributes</tt> </tt>
 <a name="L989"></a><tt class="py-lineno"> 989</tt>  <tt class="py-line">                    <tt id="link-360" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-360', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">" %s=\"%s\""</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">qnames</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt id="link-361" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-361', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L990"></a><tt class="py-lineno"> 990</tt>  <tt class="py-line">            <tt id="link-362" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-362', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">            <tt id="link-363" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L991"></a><tt class="py-lineno"> 991</tt>  <tt class="py-line">            <tt class="py-name">ltag</tt> <tt class="py-op">=</tt> <tt id="link-363" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-363', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">=</tt> <tt id="link-364" class="py-name"><a title="lxml.etree._Comment.tag
-lxml.etree._Element.tag
-lxml.etree._Entity.tag
-lxml.etree._ProcessingInstruction.tag
-lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-364', 'tag', 'link-1');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-365" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-363', 'tag', 'link-1');">tag</a></tt><tt class="py-op">.</tt><tt class="py-name">lower</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-364" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-365', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-366" class="py-name"><a title="lxml.etree._Comment.tag
-lxml.etree._Element.tag
-lxml.etree._Entity.tag
-lxml.etree._ProcessingInstruction.tag
-lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-366', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"script"</tt> <tt class="py-keyword">or</tt> <tt id="link-367" class="py-name"><a title="lxml.etree._Comment.tag
-lxml.etree._Element.tag
-lxml.etree._Entity.tag
-lxml.etree._ProcessingInstruction.tag
-lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-367', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"style"</tt><tt class="py-op">:</tt> </tt>
-<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">                    <tt id="link-368" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-368', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_encode</tt><tt class="py-op">(</tt><tt id="link-369" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-364', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L993"></a><tt class="py-lineno"> 993</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">ltag</tt> <tt class="py-op">==</tt> <tt class="py-string">"script"</tt> <tt class="py-keyword">or</tt> <tt class="py-name">ltag</tt> <tt class="py-op">==</tt> <tt class="py-string">"style"</tt><tt class="py-op">:</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt>  <tt class="py-line">                    <tt id="link-365" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-365', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_encode</tt><tt class="py-op">(</tt><tt id="link-366" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-369', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-370" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-370', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-366', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-367" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-367', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L995"></a><tt class="py-lineno"> 995</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">                    <tt id="link-371" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-371', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-372" class="py-name"><a title="lxml.etree.QName.text
+<a name="L996"></a><tt class="py-lineno"> 996</tt>  <tt class="py-line">                    <tt id="link-368" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-368', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt id="link-369" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-372', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-373" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-373', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-369', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-370" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-370', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 <a name="L997"></a><tt class="py-lineno"> 997</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">e</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">:</tt> </tt>
-<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">                <tt class="py-name">_serialize_html</tt><tt class="py-op">(</tt><tt id="link-374" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-374', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-375" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-375', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
-<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-376" class="py-name"><a title="lxml.etree._Comment.tag
-lxml.etree._Element.tag
-lxml.etree._Entity.tag
-lxml.etree._ProcessingInstruction.tag
-lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-376', 'tag', 'link-1');">tag</a></tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-377" class="py-name"><a title="xml.etree.ElementTree.HTML_EMPTY" class="py-name" href="#" onclick="return doclink('link-377', 'HTML_EMPTY', 'link-311');">HTML_EMPTY</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">                <tt id="link-378" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-378', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt id="link-379" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L998"></a><tt class="py-lineno"> 998</tt>  <tt class="py-line">                <tt class="py-name">_serialize_html</tt><tt class="py-op">(</tt><tt id="link-371" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-371', 'write', 'link-169');">write</a></tt><tt class="py-op">,</tt> <tt class="py-name">e</tt><tt class="py-op">,</tt> <tt id="link-372" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-372', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-name">qnames</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">ltag</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt id="link-373" class="py-name"><a title="xml.etree.ElementTree.HTML_EMPTY" class="py-name" href="#" onclick="return doclink('link-373', 'HTML_EMPTY', 'link-311');">HTML_EMPTY</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt>  <tt class="py-line">                <tt id="link-374" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-374', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;/"</tt> <tt class="py-op">+</tt> <tt id="link-375" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-379', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-380', 'tail', 'link-19');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">        <tt id="link-381" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-381', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-382" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-382', 'tail', 'link-19');">tail</a></tt><tt class="py-op">,</tt> <tt id="link-383" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-383', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-375', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">+</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1001"></a><tt class="py-lineno">1001</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-376" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-376', 'tail', 'link-19');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt>  <tt class="py-line">        <tt id="link-377" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-377', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">_escape_cdata</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-378" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-378', 'tail', 'link-19');">tail</a></tt><tt class="py-op">,</tt> <tt id="link-379" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-379', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1003"></a><tt class="py-lineno">1003</tt>  <tt class="py-line"> </tt>
 <a name="_serialize_text"></a><div id="_serialize_text-def"><a name="L1004"></a><tt class="py-lineno">1004</tt> <a class="py-toggle" href="#" id="_serialize_text-toggle" onclick="return toggle('_serialize_text');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_serialize_text">_serialize_text</a><tt class="py-op">(</tt><tt class="py-param">write</tt><tt class="py-op">,</tt> <tt class="py-param">elem</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_serialize_text-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_serialize_text-expanded"><a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">part</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-384" class="py-name"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-384', 'itertext', 'link-84');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">        <tt id="link-385" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-385', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-386" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-386', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-387" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-387', 'tail', 'link-19');">tail</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">        <tt id="link-388" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-388', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-389" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-389', 'tail', 'link-19');">tail</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-390" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-390', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><div id="_serialize_text-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_serialize_text-expanded"><a name="L1005"></a><tt class="py-lineno">1005</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">part</tt> <tt class="py-keyword">in</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-380" class="py-name"><a title="lxml.etree._Element.itertext" class="py-name" href="#" onclick="return doclink('link-380', 'itertext', 'link-84');">itertext</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt>  <tt class="py-line">        <tt id="link-381" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-381', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">part</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-382" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-382', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-383" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-383', 'tail', 'link-19');">tail</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt>  <tt class="py-line">        <tt id="link-384" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-384', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-385" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-385', 'tail', 'link-19');">tail</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-386" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-386', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1009"></a><tt class="py-lineno">1009</tt>  <tt class="py-line"> </tt>
-<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"><tt id="link-391" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-391', '_serialize', 'link-166');">_serialize</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt>  <tt class="py-line"><tt id="link-387" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-387', '_serialize', 'link-166');">_serialize</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
 <a name="L1011"></a><tt class="py-lineno">1011</tt>  <tt class="py-line">    <tt class="py-string">"xml"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_xml</tt><tt class="py-op">,</tt> </tt>
 <a name="L1012"></a><tt class="py-lineno">1012</tt>  <tt class="py-line">    <tt class="py-string">"html"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_html</tt><tt class="py-op">,</tt> </tt>
 <a name="L1013"></a><tt class="py-lineno">1013</tt>  <tt class="py-line">    <tt class="py-string">"text"</tt><tt class="py-op">:</tt> <tt class="py-name">_serialize_text</tt><tt class="py-op">,</tt> </tt>
@@ -1829,16 +1809,16 @@ xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doc
 <a name="L1027"></a><tt class="py-lineno">1027</tt>  <tt class="py-line"><tt class="py-comment">#     invalid.</tt> </tt>
 <a name="L1028"></a><tt class="py-lineno">1028</tt>  <tt class="py-line"> </tt>
 <a name="register_namespace"></a><div id="register_namespace-def"><a name="L1029"></a><tt class="py-lineno">1029</tt> <a class="py-toggle" href="#" id="register_namespace-toggle" onclick="return toggle('register_namespace');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#register_namespace">register_namespace</a><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="register_namespace-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="register_namespace-expanded"><a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-string">"ns\d+$"</tt><tt class="py-op">,</tt> <tt id="link-392" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-392', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="register_namespace-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="register_namespace-expanded"><a name="L1030"></a><tt class="py-lineno">1030</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">match</tt><tt class="py-op">(</tt><tt class="py-string">"ns\d+$"</tt><tt class="py-op">,</tt> <tt id="link-388" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-388', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L1031"></a><tt class="py-lineno">1031</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"Prefix format reserved for internal use"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt id="link-393" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-393', 'v', 'link-276');">v</a></tt> <tt class="py-keyword">in</tt> <tt id="link-394" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-394', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">.</tt><tt id="link-395" class="py-name"><a title="lxml.etree._Attrib.items
+<a name="L1032"></a><tt class="py-lineno">1032</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">k</tt><tt class="py-op">,</tt> <tt id="link-389" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-389', 'v', 'link-276');">v</a></tt> <tt class="py-keyword">in</tt> <tt id="link-390" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-390', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">.</tt><tt id="link-391" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-395', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-op">==</tt> <tt id="link-396" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-396', 'uri', 'link-192');">uri</a></tt> <tt class="py-keyword">or</tt> <tt id="link-397" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-397', 'v', 'link-276');">v</a></tt> <tt class="py-op">==</tt> <tt id="link-398" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-398', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt id="link-399" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-399', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> </tt>
-<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">    <tt id="link-400" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-400', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">[</tt><tt id="link-401" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-401', 'uri', 'link-192');">uri</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-402" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-402', 'prefix', 'link-194');">prefix</a></tt> </tt>
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-391', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-op">==</tt> <tt id="link-392" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-392', 'uri', 'link-192');">uri</a></tt> <tt class="py-keyword">or</tt> <tt id="link-393" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-393', 'v', 'link-276');">v</a></tt> <tt class="py-op">==</tt> <tt id="link-394" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-394', 'prefix', 'link-194');">prefix</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt id="link-395" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-395', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt>  <tt class="py-line">    <tt id="link-396" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-396', '_namespace_map', 'link-199');">_namespace_map</a></tt><tt class="py-op">[</tt><tt id="link-397" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-397', 'uri', 'link-192');">uri</a></tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-398" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-398', 'prefix', 'link-194');">prefix</a></tt> </tt>
 </div><a name="L1036"></a><tt class="py-lineno">1036</tt>  <tt class="py-line"> </tt>
-<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"><tt id="link-403" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-403', '_namespace_map', 'link-199');">_namespace_map</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt>  <tt class="py-line"><tt id="link-399" class="py-name"><a title="xml.etree.ElementTree._namespace_map" class="py-name" href="#" onclick="return doclink('link-399', '_namespace_map', 'link-199');">_namespace_map</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt> </tt>
 <a name="L1038"></a><tt class="py-lineno">1038</tt>  <tt class="py-line">    <tt class="py-comment"># "well-known" namespace prefixes</tt> </tt>
 <a name="L1039"></a><tt class="py-lineno">1039</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/XML/1998/namespace"</tt><tt class="py-op">:</tt> <tt class="py-string">"xml"</tt><tt class="py-op">,</tt> </tt>
 <a name="L1040"></a><tt class="py-lineno">1040</tt>  <tt class="py-line">    <tt class="py-string">"http://www.w3.org/1999/xhtml"</tt><tt class="py-op">:</tt> <tt class="py-string">"html"</tt><tt class="py-op">,</tt> </tt>
@@ -1853,31 +1833,31 @@ lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link
 <a name="L1049"></a><tt class="py-lineno">1049</tt>  <tt class="py-line"> </tt>
 <a name="_raise_serialization_error"></a><div id="_raise_serialization_error-def"><a name="L1050"></a><tt class="py-lineno">1050</tt> <a class="py-toggle" href="#" id="_raise_serialization_error-toggle" onclick="return toggle('_raise_serialization_error');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_raise_serialization_error">_raise_serialization_error</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="_raise_serialization_error-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_raise_serialization_error-expanded"><a name="L1051"></a><tt class="py-lineno">1051</tt>  <tt class="py-line">    <tt class="py-keyword">raise</tt> <tt class="py-name">TypeError</tt><tt class="py-op">(</tt> </tt>
-<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">        <tt class="py-string">"cannot serialize %r (type %s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-404" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1052"></a><tt class="py-lineno">1052</tt>  <tt class="py-line">        <tt class="py-string">"cannot serialize %r (type %s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt id="link-400" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-404', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-405" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-405', 'type', 'link-405');">type</a></tt><tt class="py-op">(</tt><tt id="link-406" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-400', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt id="link-401" class="py-name" targets="Variable lxml.etree._LogEntry.type=lxml.etree._LogEntry-class.html#type,Variable lxml.html.InputElement.type=lxml.html.InputElement-class.html#type"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-401', 'type', 'link-401');">type</a></tt><tt class="py-op">(</tt><tt id="link-402" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-406', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-402', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">__name__</tt><tt class="py-op">)</tt> </tt>
 <a name="L1053"></a><tt class="py-lineno">1053</tt>  <tt class="py-line">        <tt class="py-op">)</tt> </tt>
 </div><a name="L1054"></a><tt class="py-lineno">1054</tt>  <tt class="py-line"> </tt>
 <a name="_encode"></a><div id="_encode-def"><a name="L1055"></a><tt class="py-lineno">1055</tt> <a class="py-toggle" href="#" id="_encode-toggle" onclick="return toggle('_encode');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_encode">_encode</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="_encode-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_encode-expanded"><a name="L1056"></a><tt class="py-lineno">1056</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-407" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1057"></a><tt class="py-lineno">1057</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-403" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-407', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-408" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-408', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-403', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-404" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-404', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1058"></a><tt class="py-lineno">1058</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-409" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1059"></a><tt class="py-lineno">1059</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-405" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-409', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-405', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1060"></a><tt class="py-lineno">1060</tt>  <tt class="py-line"> </tt>
 <a name="_escape_cdata"></a><div id="_escape_cdata-def"><a name="L1061"></a><tt class="py-lineno">1061</tt> <a class="py-toggle" href="#" id="_escape_cdata-toggle" onclick="return toggle('_escape_cdata');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_cdata">_escape_cdata</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="_escape_cdata-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_cdata-expanded"><a name="L1062"></a><tt class="py-lineno">1062</tt>  <tt class="py-line">    <tt class="py-comment"># escape character data</tt> </tt>
@@ -1885,201 +1865,201 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 <a name="L1064"></a><tt class="py-lineno">1064</tt>  <tt class="py-line">        <tt class="py-comment"># it's worth avoiding do-nothing calls for strings that are</tt> </tt>
 <a name="L1065"></a><tt class="py-lineno">1065</tt>  <tt class="py-line">        <tt class="py-comment"># shorter than 500 character, or so.  assume that's, by far,</tt> </tt>
 <a name="L1066"></a><tt class="py-lineno">1066</tt>  <tt class="py-line">        <tt class="py-comment"># the most common case in most applications.</tt> </tt>
-<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-410" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1067"></a><tt class="py-lineno">1067</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-406" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-410', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">            <tt id="link-411" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-406', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt>  <tt class="py-line">            <tt id="link-407" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-411', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-412" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-407', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-408" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-412', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-413" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-413', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-414" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-408', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-409" class="py-name" targets="Method lxml.etree._Element.replace()=lxml.etree._Element-class.html#replace"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-409', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-410" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-414', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">            <tt id="link-415" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-410', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt>  <tt class="py-line">            <tt id="link-411" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-415', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-416" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-411', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-412" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-416', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-417', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;lt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-418" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-412', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-413" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-413', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;lt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-414" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-418', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">            <tt id="link-419" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-414', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1072"></a><tt class="py-lineno">1072</tt>  <tt class="py-line">            <tt id="link-415" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-419', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-420" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-415', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-416" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-420', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-421" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-421', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-422" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-416', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-417" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-417', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1073"></a><tt class="py-lineno">1073</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-418" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-422', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-423" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-423', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-418', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-419" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-419', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1074"></a><tt class="py-lineno">1074</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-424" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1075"></a><tt class="py-lineno">1075</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-420" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-424', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-420', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1076"></a><tt class="py-lineno">1076</tt>  <tt class="py-line"> </tt>
 <a name="_escape_attrib"></a><div id="_escape_attrib-def"><a name="L1077"></a><tt class="py-lineno">1077</tt> <a class="py-toggle" href="#" id="_escape_attrib-toggle" onclick="return toggle('_escape_attrib');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_attrib">_escape_attrib</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="_escape_attrib-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_attrib-expanded"><a name="L1078"></a><tt class="py-lineno">1078</tt>  <tt class="py-line">    <tt class="py-comment"># escape attribute value</tt> </tt>
 <a name="L1079"></a><tt class="py-lineno">1079</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-425" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1080"></a><tt class="py-lineno">1080</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-421" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-425', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">            <tt id="link-426" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-421', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt>  <tt class="py-line">            <tt id="link-422" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-426', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-427" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-422', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-423" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-427', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-428', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-429" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-423', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-424" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-424', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-425" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-429', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">            <tt id="link-430" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-425', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt>  <tt class="py-line">            <tt id="link-426" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-430', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-431" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-426', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-427" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-431', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-432', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;lt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-433" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-427', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-428" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-428', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&lt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;lt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-429" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-433', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">            <tt id="link-434" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-429', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt>  <tt class="py-line">            <tt id="link-430" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-434', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-435" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-430', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-431" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-435', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-436" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-436', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\""</tt> <tt class="py-keyword">in</tt> <tt id="link-437" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-431', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-432" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-432', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\""</tt> <tt class="py-keyword">in</tt> <tt id="link-433" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-437', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">            <tt id="link-438" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-433', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt>  <tt class="py-line">            <tt id="link-434" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-438', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-439" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-434', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-435" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-439', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-440', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\""</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;quot;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\n"</tt> <tt class="py-keyword">in</tt> <tt id="link-441" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-435', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-436" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-436', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\""</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;quot;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\n"</tt> <tt class="py-keyword">in</tt> <tt id="link-437" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-441', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">            <tt id="link-442" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-437', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt>  <tt class="py-line">            <tt id="link-438" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-442', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-443" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-438', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-439" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-443', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-444" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-444', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;#10;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-445" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-439', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-440" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-440', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;#10;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-441" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-445', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-446" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-446', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-441', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-442" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-442', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1091"></a><tt class="py-lineno">1091</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-447" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1092"></a><tt class="py-lineno">1092</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-443" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-447', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-443', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1093"></a><tt class="py-lineno">1093</tt>  <tt class="py-line"> </tt>
 <a name="_escape_attrib_html"></a><div id="_escape_attrib_html-def"><a name="L1094"></a><tt class="py-lineno">1094</tt> <a class="py-toggle" href="#" id="_escape_attrib_html-toggle" onclick="return toggle('_escape_attrib_html');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#_escape_attrib_html">_escape_attrib_html</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="_escape_attrib_html-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_escape_attrib_html-expanded"><a name="L1095"></a><tt class="py-lineno">1095</tt>  <tt class="py-line">    <tt class="py-comment"># escape attribute value</tt> </tt>
 <a name="L1096"></a><tt class="py-lineno">1096</tt>  <tt class="py-line">    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-448" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1097"></a><tt class="py-lineno">1097</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&amp;"</tt> <tt class="py-keyword">in</tt> <tt id="link-444" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-448', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">            <tt id="link-449" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-444', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt>  <tt class="py-line">            <tt id="link-445" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-449', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-450" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-445', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-446" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-450', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-451', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-452" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-446', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-447" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-447', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&amp;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;amp;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"&gt;"</tt> <tt class="py-keyword">in</tt> <tt id="link-448" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-452', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">            <tt id="link-453" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-448', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt>  <tt class="py-line">            <tt id="link-449" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-453', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-454" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-449', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-450" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-454', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-455', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\""</tt> <tt class="py-keyword">in</tt> <tt id="link-456" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-450', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-451" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-451', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"&gt;"</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;gt;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-string">"\""</tt> <tt class="py-keyword">in</tt> <tt id="link-452" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-456', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">            <tt id="link-457" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-452', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt>  <tt class="py-line">            <tt id="link-453" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-457', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-458" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-453', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-454" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-458', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-459" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-459', 'replace', 'link-413');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\""</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;quot;"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-460" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-454', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-455" class="py-name"><a title="lxml.etree._Element.replace" class="py-name" href="#" onclick="return doclink('link-455', 'replace', 'link-409');">replace</a></tt><tt class="py-op">(</tt><tt class="py-string">"\""</tt><tt class="py-op">,</tt> <tt class="py-string">"&amp;quot;"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-456" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-460', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-461" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-461', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-456', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt id="link-457" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-457', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"xmlcharrefreplace"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1104"></a><tt class="py-lineno">1104</tt>  <tt class="py-line">    <tt class="py-keyword">except</tt> <tt class="py-op">(</tt><tt class="py-name">TypeError</tt><tt class="py-op">,</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-462" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1105"></a><tt class="py-lineno">1105</tt>  <tt class="py-line">        <tt class="py-name">_raise_serialization_error</tt><tt class="py-op">(</tt><tt id="link-458" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-462', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-458', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1106"></a><tt class="py-lineno">1106</tt>  <tt class="py-line"> </tt>
 <a name="L1107"></a><tt class="py-lineno">1107</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
 <a name="L1108"></a><tt class="py-lineno">1108</tt>  <tt class="py-line"> </tt>
@@ -2097,13 +2077,13 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 <a name="tostring"></a><div id="tostring-def"><a name="L1120"></a><tt class="py-lineno">1120</tt> <a class="py-toggle" href="#" id="tostring-toggle" onclick="return toggle('tostring');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#tostring">tostring</a><tt class="py-op">(</tt><tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="tostring-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tostring-expanded"><a name="L1121"></a><tt class="py-lineno">1121</tt>  <tt class="py-line">    <tt class="py-keyword">class</tt> <tt class="py-def-name">dummy</tt><tt class="py-op">:</tt> </tt>
 <a name="L1122"></a><tt class="py-lineno">1122</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">    <tt id="link-463" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-463', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1123"></a><tt class="py-lineno">1123</tt>  <tt class="py-line">    <tt id="link-459" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-459', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 <a name="L1124"></a><tt class="py-lineno">1124</tt>  <tt class="py-line">    <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">dummy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">    <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-464', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt id="link-465" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-465', 'data', 'link-126');">data</a></tt><tt class="py-op">.</tt><tt id="link-466" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-466', 'append', 'link-42');">append</a></tt> </tt>
-<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">    <tt id="link-467" class="py-name" targets="Function lxml.etree.ElementTree()=lxml.etree-module.html#ElementTree,Module xml.etree.ElementTree=xml.etree.ElementTree-module.html,Class xml.etree.ElementTree.ElementTree=xml.etree.ElementTree.ElementTree-class.html"><a title="lxml.etree.ElementTree
+<a name="L1125"></a><tt class="py-lineno">1125</tt>  <tt class="py-line">    <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-460" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-460', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt id="link-461" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-461', 'data', 'link-126');">data</a></tt><tt class="py-op">.</tt><tt id="link-462" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-462', 'append', 'link-42');">append</a></tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt>  <tt class="py-line">    <tt id="link-463" class="py-name" targets="Function lxml.etree.ElementTree()=lxml.etree-module.html#ElementTree,Module xml.etree.ElementTree=xml.etree.ElementTree-module.html,Class xml.etree.ElementTree.ElementTree=xml.etree.ElementTree.ElementTree-class.html"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-467', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-468" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-468', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-469" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-469', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt id="link-470" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-470', 'method', 'link-163');">method</a></tt><tt class="py-op">=</tt><tt id="link-471" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-471', 'method', 'link-163');">method</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-472" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-472', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-463', 'ElementTree', 'link-463');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-464" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-464', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-465" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-465', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt id="link-466" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-466', 'method', 'link-163');">method</a></tt><tt class="py-op">=</tt><tt id="link-467" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-467', 'method', 'link-163');">method</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt id="link-468" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-468', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1128"></a><tt class="py-lineno">1128</tt>  <tt class="py-line"> </tt>
 <a name="L1129"></a><tt class="py-lineno">1129</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
 <a name="L1130"></a><tt class="py-lineno">1130</tt>  <tt class="py-line"><tt class="py-comment"># Generates a string representation of an XML element, including all</tt> </tt>
@@ -2120,14 +2100,14 @@ xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return docl
 <a name="tostringlist"></a><div id="tostringlist-def"><a name="L1141"></a><tt class="py-lineno">1141</tt> <a class="py-toggle" href="#" id="tostringlist-toggle" onclick="return toggle('tostringlist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#tostringlist">tostringlist</a><tt class="py-op">(</tt><tt class="py-param">element</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">method</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="tostringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="tostringlist-expanded"><a name="L1142"></a><tt class="py-lineno">1142</tt>  <tt class="py-line">    <tt class="py-keyword">class</tt> <tt class="py-def-name">dummy</tt><tt class="py-op">:</tt> </tt>
 <a name="L1143"></a><tt class="py-lineno">1143</tt>  <tt class="py-line">        <tt class="py-keyword">pass</tt> </tt>
-</div><a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">    <tt id="link-473" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-473', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L1144"></a><tt class="py-lineno">1144</tt>  <tt class="py-line">    <tt id="link-469" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-469', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 <a name="L1145"></a><tt class="py-lineno">1145</tt>  <tt class="py-line">    <tt class="py-name">file</tt> <tt class="py-op">=</tt> <tt class="py-name">dummy</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">    <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-474', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt id="link-475" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-475', 'data', 'link-126');">data</a></tt><tt class="py-op">.</tt><tt id="link-476" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-476', 'append', 'link-42');">append</a></tt> </tt>
-<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">    <tt id="link-477" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L1146"></a><tt class="py-lineno">1146</tt>  <tt class="py-line">    <tt class="py-name">file</tt><tt class="py-op">.</tt><tt id="link-470" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-470', 'write', 'link-169');">write</a></tt> <tt class="py-op">=</tt> <tt id="link-471" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-471', 'data', 'link-126');">data</a></tt><tt class="py-op">.</tt><tt id="link-472" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-472', 'append', 'link-42');">append</a></tt> </tt>
+<a name="L1147"></a><tt class="py-lineno">1147</tt>  <tt class="py-line">    <tt id="link-473" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-477', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-478" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-478', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-479" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-479', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt id="link-480" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-480', 'method', 'link-163');">method</a></tt><tt class="py-op">=</tt><tt id="link-481" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-481', 'method', 'link-163');">method</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-473', 'ElementTree', 'link-463');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">element</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-474" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-474', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt id="link-475" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-475', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt id="link-476" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-476', 'method', 'link-163');">method</a></tt><tt class="py-op">=</tt><tt id="link-477" class="py-name"><a title="lxml.html.FormElement.method" class="py-name" href="#" onclick="return doclink('link-477', 'method', 'link-163');">method</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L1148"></a><tt class="py-lineno">1148</tt>  <tt class="py-line">    <tt class="py-comment"># FIXME: merge small fragments into larger parts</tt> </tt>
-<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-482" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-482', 'data', 'link-126');">data</a></tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-478" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-478', 'data', 'link-126');">data</a></tt> </tt>
 </div><a name="L1150"></a><tt class="py-lineno">1150</tt>  <tt class="py-line"> </tt>
 <a name="L1151"></a><tt class="py-lineno">1151</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
 <a name="L1152"></a><tt class="py-lineno">1152</tt>  <tt class="py-line"><tt class="py-comment"># Writes an element tree or element structure to sys.stdout.  This</tt> </tt>
@@ -2140,20 +2120,20 @@ xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return docl
 <a name="L1159"></a><tt class="py-lineno">1159</tt>  <tt class="py-line"> </tt>
 <a name="dump"></a><div id="dump-def"><a name="L1160"></a><tt class="py-lineno">1160</tt> <a class="py-toggle" href="#" id="dump-toggle" onclick="return toggle('dump');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#dump">dump</a><tt class="py-op">(</tt><tt class="py-param">elem</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="dump-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="dump-expanded"><a name="L1161"></a><tt class="py-lineno">1161</tt>  <tt class="py-line">    <tt class="py-comment"># debugging</tt> </tt>
-<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">,</tt> <tt id="link-483" class="py-name"><a title="lxml.etree.ElementTree
+<a name="L1162"></a><tt class="py-lineno">1162</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">isinstance</tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">,</tt> <tt id="link-479" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-483', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">        <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt id="link-484" class="py-name"><a title="lxml.etree.ElementTree
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-479', 'ElementTree', 'link-463');">ElementTree</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt>  <tt class="py-line">        <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt id="link-480" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-484', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
-<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-485" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-485', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">)</tt> </tt>
-<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">    <tt id="link-486" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-486', 'tail', 'link-19');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-487" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-487', 'getroot', 'link-487');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-488" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-488', 'tail', 'link-19');">tail</a></tt> </tt>
-<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-489" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-489', 'tail', 'link-19');">tail</a></tt> <tt class="py-keyword">or</tt> <tt id="link-490" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-490', 'tail', 'link-19');">tail</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">"\n"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt id="link-491" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-491', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-480', 'ElementTree', 'link-463');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt>  <tt class="py-line">    <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-481" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-481', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">)</tt> </tt>
+<a name="L1165"></a><tt class="py-lineno">1165</tt>  <tt class="py-line">    <tt id="link-482" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-482', 'tail', 'link-19');">tail</a></tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-483" class="py-name" targets="Method lxml.etree._ElementTree.getroot()=lxml.etree._ElementTree-class.html#getroot"><a title="lxml.etree._ElementTree.getroot" class="py-name" href="#" onclick="return doclink('link-483', 'getroot', 'link-483');">getroot</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt id="link-484" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-484', 'tail', 'link-19');">tail</a></tt> </tt>
+<a name="L1166"></a><tt class="py-lineno">1166</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-485" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-485', 'tail', 'link-19');">tail</a></tt> <tt class="py-keyword">or</tt> <tt id="link-486" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-486', 'tail', 'link-19');">tail</a></tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-string">"\n"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1167"></a><tt class="py-lineno">1167</tt>  <tt class="py-line">        <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">stdout</tt><tt class="py-op">.</tt><tt id="link-487" class="py-name"><a title="lxml.etree._ElementTree.write" class="py-name" href="#" onclick="return doclink('link-487', 'write', 'link-169');">write</a></tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1168"></a><tt class="py-lineno">1168</tt>  <tt class="py-line"> </tt>
 <a name="L1169"></a><tt class="py-lineno">1169</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
 <a name="L1170"></a><tt class="py-lineno">1170</tt>  <tt class="py-line"><tt class="py-comment"># parsing</tt> </tt>
@@ -2167,17 +2147,17 @@ xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doc
 <a name="L1178"></a><tt class="py-lineno">1178</tt>  <tt class="py-line"><tt class="py-comment"># @return An ElementTree instance</tt> </tt>
 <a name="L1179"></a><tt class="py-lineno">1179</tt>  <tt class="py-line"> </tt>
 <a name="parse"></a><div id="parse-def"><a name="L1180"></a><tt class="py-lineno">1180</tt> <a class="py-toggle" href="#" id="parse-toggle" onclick="return toggle('parse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#parse">parse</a><tt class="py-op">(</tt><tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="parse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="parse-expanded"><a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-492" class="py-name"><a title="lxml.etree.ElementTree
+</div><div id="parse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="parse-expanded"><a name="L1181"></a><tt class="py-lineno">1181</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-488" class="py-name"><a title="lxml.etree.ElementTree
 xml.etree.ElementTree
-xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-492', 'ElementTree', 'link-467');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">    <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-493" class="py-name"><a title="lxml.etree._ElementTree.parse
+xml.etree.ElementTree.ElementTree" class="py-name" href="#" onclick="return doclink('link-488', 'ElementTree', 'link-463');">ElementTree</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt>  <tt class="py-line">    <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-489" class="py-name"><a title="lxml.etree._ElementTree.parse
 lxml.etree.parse
 lxml.html.ElementSoup.parse
 lxml.html.html5parser.parse
 lxml.html.soupparser.parse
 lxml.objectify.parse
-lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-493', 'parse', 'link-119');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt id="link-494" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-494', 'parser', 'link-121');">parser</a></tt><tt class="py-op">)</tt> </tt>
+lxml.tests.common_imports.HelperTestCase.parse" class="py-name" href="#" onclick="return doclink('link-489', 'parse', 'link-119');">parse</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt id="link-490" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-490', 'parser', 'link-121');">parser</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L1183"></a><tt class="py-lineno">1183</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
 </div><a name="L1184"></a><tt class="py-lineno">1184</tt>  <tt class="py-line"> </tt>
 <a name="L1185"></a><tt class="py-lineno">1185</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
@@ -2193,89 +2173,89 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 <a name="L1195"></a><tt class="py-lineno">1195</tt>  <tt class="py-line"> </tt>
 <a name="iterparse"></a><div id="iterparse-def"><a name="L1196"></a><tt class="py-lineno">1196</tt> <a class="py-toggle" href="#" id="iterparse-toggle" onclick="return toggle('iterparse');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#iterparse">iterparse</a><tt class="py-op">(</tt><tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">events</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="iterparse-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="iterparse-expanded"><a name="L1197"></a><tt class="py-lineno">1197</tt>  <tt class="py-line">    <tt class="py-name">close_source</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
-<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-495" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-495', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"read"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1198"></a><tt class="py-lineno">1198</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-491" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-491', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"read"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L1199"></a><tt class="py-lineno">1199</tt>  <tt class="py-line">        <tt class="py-name">source</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-string">"rb"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1200"></a><tt class="py-lineno">1200</tt>  <tt class="py-line">        <tt class="py-name">close_source</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
-<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-496" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-496', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">        <tt id="link-497" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-497', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-498" class="py-name"><a title="lxml.etree.XMLParser
+<a name="L1201"></a><tt class="py-lineno">1201</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-492" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-492', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1202"></a><tt class="py-lineno">1202</tt>  <tt class="py-line">        <tt id="link-493" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-493', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-494" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-498', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-499" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-499', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-500" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-500', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-501" class="py-name" targets="Class xml.etree.ElementTree._IterParseIterator=xml.etree.ElementTree._IterParseIterator-class.html"><a title="xml.etree.ElementTree._IterParseIterator" class="py-name" href="#" onclick="return doclink('link-501', '_IterParseIterator', 'link-501');">_IterParseIterator</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt id="link-502" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-502', 'parser', 'link-121');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-name">close_source</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-494', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-495" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-495', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-496" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-496', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1203"></a><tt class="py-lineno">1203</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-497" class="py-name" targets="Class xml.etree.ElementTree._IterParseIterator=xml.etree.ElementTree._IterParseIterator-class.html"><a title="xml.etree.ElementTree._IterParseIterator" class="py-name" href="#" onclick="return doclink('link-497', '_IterParseIterator', 'link-497');">_IterParseIterator</a></tt><tt class="py-op">(</tt><tt class="py-name">source</tt><tt class="py-op">,</tt> <tt class="py-name">events</tt><tt class="py-op">,</tt> <tt id="link-498" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-498', 'parser', 'link-121');">parser</a></tt><tt class="py-op">,</tt> <tt class="py-name">close_source</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1204"></a><tt class="py-lineno">1204</tt>  <tt class="py-line"> </tt>
 <a name="_IterParseIterator"></a><div id="_IterParseIterator-def"><a name="L1205"></a><tt class="py-lineno">1205</tt> <a class="py-toggle" href="#" id="_IterParseIterator-toggle" onclick="return toggle('_IterParseIterator');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html">_IterParseIterator</a><tt class="py-op">(</tt><tt class="py-base-class">object</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="_IterParseIterator-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="_IterParseIterator-expanded"><a name="L1206"></a><tt class="py-lineno">1206</tt>  <tt class="py-line"> </tt>
 <a name="_IterParseIterator.__init__"></a><div id="_IterParseIterator.__init__-def"><a name="L1207"></a><tt class="py-lineno">1207</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__init__-toggle" onclick="return toggle('_IterParseIterator.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">source</tt><tt class="py-op">,</tt> <tt class="py-param">events</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">,</tt> <tt class="py-param">close_source</tt><tt class="py-op">=</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="_IterParseIterator.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__init__-expanded"><a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-503" class="py-name" targets="Variable lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file=lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-503', '_file', 'link-503');">_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">source</tt> </tt>
+</div><div id="_IterParseIterator.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="_IterParseIterator.__init__-expanded"><a name="L1208"></a><tt class="py-lineno">1208</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-499" class="py-name" targets="Variable lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file=lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase-class.html#_file"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-499', '_file', 'link-499');">_file</a></tt> <tt class="py-op">=</tt> <tt class="py-name">source</tt> </tt>
 <a name="L1209"></a><tt class="py-lineno">1209</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</tt> <tt class="py-op">=</tt> <tt class="py-name">close_source</tt> </tt>
 <a name="L1210"></a><tt class="py-lineno">1210</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 <a name="L1211"></a><tt class="py-lineno">1211</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
 <a name="L1212"></a><tt class="py-lineno">1212</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-504" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-504', 'root', 'link-504');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
-<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-505" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-505', 'parser', 'link-121');">parser</a></tt> </tt>
+<a name="L1213"></a><tt class="py-lineno">1213</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-500" class="py-name" targets="Variable lxml.etree.iterparse.root=lxml.etree.iterparse-class.html#root"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-500', 'root', 'link-500');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
+<a name="L1214"></a><tt class="py-lineno">1214</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-501" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-501', 'parser', 'link-121');">parser</a></tt> </tt>
 <a name="L1215"></a><tt class="py-lineno">1215</tt>  <tt class="py-line">        <tt class="py-comment"># wire up the parser for event reporting</tt> </tt>
-<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt id="link-506" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-506', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> </tt>
-<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt id="link-507" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-507', 'append', 'link-42');">append</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">.</tt><tt id="link-508" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-508', 'append', 'link-42');">append</a></tt> </tt>
+<a name="L1216"></a><tt class="py-lineno">1216</tt>  <tt class="py-line">        <tt id="link-502" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-502', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> </tt>
+<a name="L1217"></a><tt class="py-lineno">1217</tt>  <tt class="py-line">        <tt id="link-503" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-503', 'append', 'link-42');">append</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">.</tt><tt id="link-504" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-504', 'append', 'link-42');">append</a></tt> </tt>
 <a name="L1218"></a><tt class="py-lineno">1218</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">events</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 <a name="L1219"></a><tt class="py-lineno">1219</tt>  <tt class="py-line">            <tt class="py-name">events</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"end"</tt><tt class="py-op">]</tt> </tt>
 <a name="L1220"></a><tt class="py-lineno">1220</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">event</tt> <tt class="py-keyword">in</tt> <tt class="py-name">events</tt><tt class="py-op">:</tt> </tt>
 <a name="L1221"></a><tt class="py-lineno">1221</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"start"</tt><tt class="py-op">:</tt> </tt>
 <a name="L1222"></a><tt class="py-lineno">1222</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">                    <tt id="link-509" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-509', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">                    <tt id="link-510" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-510', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">                    <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-511" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-511', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1223"></a><tt class="py-lineno">1223</tt>  <tt class="py-line">                    <tt id="link-505" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-505', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1224"></a><tt class="py-lineno">1224</tt>  <tt class="py-line">                    <tt id="link-506" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-506', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L1225"></a><tt class="py-lineno">1225</tt>  <tt class="py-line">                    <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-507" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-507', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
 <a name="L1226"></a><tt class="py-lineno">1226</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">                        <tt id="link-512" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-512', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-513" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-513', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-514" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1227"></a><tt class="py-lineno">1227</tt>  <tt class="py-line">                        <tt id="link-508" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-508', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-509" class="py-name" targets="Method lxml.etree.TreeBuilder.start()=lxml.etree.TreeBuilder-class.html#start"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-509', 'start', 'link-509');">start</a></tt><tt class="py-op">(</tt><tt id="link-510" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-514', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">                    <tt id="link-515" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-515', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-510', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1228"></a><tt class="py-lineno">1228</tt>  <tt class="py-line">                    <tt id="link-511" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-511', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
 <a name="L1229"></a><tt class="py-lineno">1229</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">                    <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-516" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-516', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1230"></a><tt class="py-lineno">1230</tt>  <tt class="py-line">                    <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-512" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-512', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
 <a name="L1231"></a><tt class="py-lineno">1231</tt>  <tt class="py-line">                                <tt class="py-param">start</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_start</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">                        <tt id="link-517" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-517', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-518" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-518', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-519" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1232"></a><tt class="py-lineno">1232</tt>  <tt class="py-line">                        <tt id="link-513" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-513', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-514" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-514', 'start', 'link-509');">start</a></tt><tt class="py-op">(</tt><tt id="link-515" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-519', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">                    <tt id="link-520" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-520', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-515', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1233"></a><tt class="py-lineno">1233</tt>  <tt class="py-line">                    <tt id="link-516" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-516', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
 <a name="L1234"></a><tt class="py-lineno">1234</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-521" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-521', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
+<a name="L1235"></a><tt class="py-lineno">1235</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-517" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-517', 'append', 'link-42');">append</a></tt><tt class="py-op">,</tt> </tt>
 <a name="L1236"></a><tt class="py-lineno">1236</tt>  <tt class="py-line">                            <tt class="py-param">end</tt><tt class="py-op">=</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">                    <tt id="link-522" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-522', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-523" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-523', 'end', 'link-523');">end</a></tt><tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1237"></a><tt class="py-lineno">1237</tt>  <tt class="py-line">                    <tt id="link-518" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-518', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt id="link-519" class="py-name" targets="Method lxml.etree.TreeBuilder.end()=lxml.etree.TreeBuilder-class.html#end"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-519', 'end', 'link-519');">end</a></tt><tt class="py-op">(</tt><tt id="link-520" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-524', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">                <tt id="link-525" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-525', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-520', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1238"></a><tt class="py-lineno">1238</tt>  <tt class="py-line">                <tt id="link-521" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-521', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
 <a name="L1239"></a><tt class="py-lineno">1239</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"start-ns"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-526" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-526', 'append', 'link-42');">append</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1240"></a><tt class="py-lineno">1240</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">uri</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-522" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-522', 'append', 'link-42');">append</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 <a name="L1241"></a><tt class="py-lineno">1241</tt>  <tt class="py-line">                    <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">                        <tt id="link-527" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-527', 'uri', 'link-192');">uri</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-528" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-528', 'uri', 'link-192');">uri</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1242"></a><tt class="py-lineno">1242</tt>  <tt class="py-line">                        <tt id="link-523" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-523', 'uri', 'link-192');">uri</a></tt> <tt class="py-op">=</tt> <tt class="py-op">(</tt><tt id="link-524" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-524', 'uri', 'link-192');">uri</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1243"></a><tt class="py-lineno">1243</tt>  <tt class="py-line">                    <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
 <a name="L1244"></a><tt class="py-lineno">1244</tt>  <tt class="py-line">                        <tt class="py-keyword">pass</tt> </tt>
-<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">                    <tt id="link-529" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-529', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-530" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-530', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt id="link-531" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-531', 'uri', 'link-192');">uri</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">                <tt id="link-532" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-532', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+<a name="L1245"></a><tt class="py-lineno">1245</tt>  <tt class="py-line">                    <tt id="link-525" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-525', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-op">(</tt><tt id="link-526" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-526', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">,</tt> <tt id="link-527" class="py-name"><a title="lxml.tests.test_xpathevaluator.uri" class="py-name" href="#" onclick="return doclink('link-527', 'uri', 'link-192');">uri</a></tt> <tt class="py-keyword">or</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1246"></a><tt class="py-lineno">1246</tt>  <tt class="py-line">                <tt id="link-528" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-528', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
 <a name="L1247"></a><tt class="py-lineno">1247</tt>  <tt class="py-line">            <tt class="py-keyword">elif</tt> <tt class="py-name">event</tt> <tt class="py-op">==</tt> <tt class="py-string">"end-ns"</tt><tt class="py-op">:</tt> </tt>
-<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-533" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-533', 'append', 'link-42');">append</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">                    <tt id="link-534" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-534', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-</div><a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">                <tt id="link-535" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-535', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
+<a name="L1248"></a><tt class="py-lineno">1248</tt>  <tt class="py-line">                <tt class="py-keyword">def</tt> <tt class="py-def-name">handler</tt><tt class="py-op">(</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt> <tt class="py-param">event</tt><tt class="py-op">=</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-param">append</tt><tt class="py-op">=</tt><tt id="link-529" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-529', 'append', 'link-42');">append</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1249"></a><tt class="py-lineno">1249</tt>  <tt class="py-line">                    <tt id="link-530" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-530', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">event</tt><tt class="py-op">,</tt> <tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1250"></a><tt class="py-lineno">1250</tt>  <tt class="py-line">                <tt id="link-531" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-531', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndNamespaceDeclHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">handler</tt> </tt>
 <a name="L1251"></a><tt class="py-lineno">1251</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L1252"></a><tt class="py-lineno">1252</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ValueError</tt><tt class="py-op">(</tt><tt class="py-string">"unknown event %r"</tt> <tt class="py-op">%</tt> <tt class="py-name">event</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1253"></a><tt class="py-lineno">1253</tt>  <tt class="py-line"> </tt>
@@ -2292,24 +2272,24 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 <a name="L1264"></a><tt class="py-lineno">1264</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 <a name="L1265"></a><tt class="py-lineno">1265</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">e</tt> </tt>
 <a name="L1266"></a><tt class="py-lineno">1266</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-536', 'root', 'link-504');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> </tt>
+<a name="L1267"></a><tt class="py-lineno">1267</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-532" class="py-name"><a title="lxml.etree.iterparse.root" class="py-name" href="#" onclick="return doclink('link-532', 'root', 'link-500');">root</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> </tt>
 <a name="L1268"></a><tt class="py-lineno">1268</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_close_file</tt><tt class="py-op">:</tt> </tt>
-<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-537" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-537', '_file', 'link-503');">_file</a></tt><tt class="py-op">.</tt><tt id="link-538" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-538', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1269"></a><tt class="py-lineno">1269</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-533" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-533', '_file', 'link-499');">_file</a></tt><tt class="py-op">.</tt><tt id="link-534" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-534', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L1270"></a><tt class="py-lineno">1270</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">StopIteration</tt> </tt>
 <a name="L1271"></a><tt class="py-lineno">1271</tt>  <tt class="py-line">            <tt class="py-comment"># load event buffer</tt> </tt>
 <a name="L1272"></a><tt class="py-lineno">1272</tt>  <tt class="py-line">            <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_events</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">]</tt> </tt>
 <a name="L1273"></a><tt class="py-lineno">1273</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
-<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">            <tt id="link-539" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-539', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-540" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-540', '_file', 'link-503');">_file</a></tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
-lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-541', 'read', 'link-127');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">16384</tt><tt class="py-op">)</tt> </tt>
-<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-542" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-542', 'data', 'link-126');">data</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1274"></a><tt class="py-lineno">1274</tt>  <tt class="py-line">            <tt id="link-535" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-535', 'data', 'link-126');">data</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-536" class="py-name"><a title="lxml.tests.test_incremental_xmlfile._XmlFileTestCaseBase._file" class="py-name" href="#" onclick="return doclink('link-536', '_file', 'link-499');">_file</a></tt><tt class="py-op">.</tt><tt id="link-537" class="py-name"><a title="lxml.tests.common_imports.LargeFileLike.read
+lxml.tests.common_imports.SillyFileLike.read" class="py-name" href="#" onclick="return doclink('link-537', 'read', 'link-127');">read</a></tt><tt class="py-op">(</tt><tt class="py-number">16384</tt><tt class="py-op">)</tt> </tt>
+<a name="L1275"></a><tt class="py-lineno">1275</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-538" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-538', 'data', 'link-126');">data</a></tt><tt class="py-op">:</tt> </tt>
 <a name="L1276"></a><tt class="py-lineno">1276</tt>  <tt class="py-line">                <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-543" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-543', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-544" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-544', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1277"></a><tt class="py-lineno">1277</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-539" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-539', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-540" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-540', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L1278"></a><tt class="py-lineno">1278</tt>  <tt class="py-line">                <tt class="py-keyword">except</tt> <tt class="py-name">SyntaxError</tt> <tt class="py-keyword">as</tt> <tt class="py-name">exc</tt><tt class="py-op">:</tt> </tt>
 <a name="L1279"></a><tt class="py-lineno">1279</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">exc</tt> </tt>
 <a name="L1280"></a><tt class="py-lineno">1280</tt>  <tt class="py-line">            <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-545" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-545', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1281"></a><tt class="py-lineno">1281</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_root</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt id="link-541" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-541', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L1282"></a><tt class="py-lineno">1282</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 </div><a name="L1283"></a><tt class="py-lineno">1283</tt>  <tt class="py-line"> </tt>
 <a name="_IterParseIterator.__iter__"></a><div id="_IterParseIterator.__iter__-def"><a name="L1284"></a><tt class="py-lineno">1284</tt> <a class="py-toggle" href="#" id="_IterParseIterator.__iter__-toggle" onclick="return toggle('_IterParseIterator.__iter__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree._IterParseIterator-class.html#__iter__">__iter__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
@@ -2326,22 +2306,22 @@ lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('
 <a name="L1295"></a><tt class="py-lineno">1295</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
 <a name="L1296"></a><tt class="py-lineno">1296</tt>  <tt class="py-line"> </tt>
 <a name="XML"></a><div id="XML-def"><a name="L1297"></a><tt class="py-lineno">1297</tt> <a class="py-toggle" href="#" id="XML-toggle" onclick="return toggle('XML');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XML">XML</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML-expanded"><a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-546" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-546', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt id="link-547" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-547', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-548" class="py-name"><a title="lxml.etree.XMLParser
+</div><div id="XML-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XML-expanded"><a name="L1298"></a><tt class="py-lineno">1298</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-542" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-542', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1299"></a><tt class="py-lineno">1299</tt>  <tt class="py-line">        <tt id="link-543" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-543', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-544" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-548', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-549" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-549', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-550" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-550', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">    <tt id="link-551" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-551', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-552" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-552', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-553" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-544', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-545" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-545', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-546" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-546', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1300"></a><tt class="py-lineno">1300</tt>  <tt class="py-line">    <tt id="link-547" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-547', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-548" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-548', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-549" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-553', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-554" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-554', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-555" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-555', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-549', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1301"></a><tt class="py-lineno">1301</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-550" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-550', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-551" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-551', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1302"></a><tt class="py-lineno">1302</tt>  <tt class="py-line"> </tt>
 <a name="L1303"></a><tt class="py-lineno">1303</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
 <a name="L1304"></a><tt class="py-lineno">1304</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a string constant, and also returns</tt> </tt>
@@ -2354,29 +2334,29 @@ lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('
 <a name="L1311"></a><tt class="py-lineno">1311</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn (Element, dictionary)</tt> </tt>
 <a name="L1312"></a><tt class="py-lineno">1312</tt>  <tt class="py-line"> </tt>
 <a name="XMLID"></a><div id="XMLID-def"><a name="L1313"></a><tt class="py-lineno">1313</tt> <a class="py-toggle" href="#" id="XMLID-toggle" onclick="return toggle('XMLID');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#XMLID">XMLID</a><tt class="py-op">(</tt><tt class="py-param">text</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLID-expanded"><a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-556" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-556', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt id="link-557" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-557', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-558" class="py-name"><a title="lxml.etree.XMLParser
+</div><div id="XMLID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLID-expanded"><a name="L1314"></a><tt class="py-lineno">1314</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-552" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-552', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1315"></a><tt class="py-lineno">1315</tt>  <tt class="py-line">        <tt id="link-553" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-553', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-554" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-558', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-559" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-559', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-560" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-560', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">    <tt id="link-561" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-561', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-562" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-562', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-563" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-554', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-555" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-555', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-556" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-556', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1316"></a><tt class="py-lineno">1316</tt>  <tt class="py-line">    <tt id="link-557" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-557', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-558" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-558', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-559" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-563', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-564" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-564', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-565" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-565', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-559', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1317"></a><tt class="py-lineno">1317</tt>  <tt class="py-line">    <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt id="link-560" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-560', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-561" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-561', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L1318"></a><tt class="py-lineno">1318</tt>  <tt class="py-line">    <tt class="py-name">ids</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-566" class="py-name"><a title="lxml.etree._Element.iter
-lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-566', 'iter', 'link-7');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">        <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-567" class="py-name"><a title="lxml.etree._Attrib.get
+<a name="L1319"></a><tt class="py-lineno">1319</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt class="py-name">elem</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tree</tt><tt class="py-op">.</tt><tt id="link-562" class="py-name"><a title="lxml.etree._Element.iter
+lxml.etree._ElementTree.iter" class="py-name" href="#" onclick="return doclink('link-562', 'iter', 'link-7');">iter</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1320"></a><tt class="py-lineno">1320</tt>  <tt class="py-line">        <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt><tt class="py-op">.</tt><tt id="link-563" class="py-name"><a title="lxml.etree._Attrib.get
 lxml.etree._Element.get
 lxml.etree._IDDict.get
-lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-567', 'get', 'link-61');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"id"</tt><tt class="py-op">)</tt> </tt>
+lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return doclink('link-563', 'get', 'link-61');">get</a></tt><tt class="py-op">(</tt><tt class="py-string">"id"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1321"></a><tt class="py-lineno">1321</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
 <a name="L1322"></a><tt class="py-lineno">1322</tt>  <tt class="py-line">            <tt class="py-name">ids</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> </tt>
 <a name="L1323"></a><tt class="py-lineno">1323</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt><tt class="py-op">,</tt> <tt class="py-name">ids</tt> </tt>
@@ -2389,13 +2369,13 @@ lxml.etree._ProcessingInstruction.get" class="py-name" href="#" onclick="return
 <a name="L1330"></a><tt class="py-lineno">1330</tt>  <tt class="py-line"><tt class="py-comment"># @return An Element instance.</tt> </tt>
 <a name="L1331"></a><tt class="py-lineno">1331</tt>  <tt class="py-line"><tt class="py-comment"># @defreturn Element</tt> </tt>
 <a name="L1332"></a><tt class="py-lineno">1332</tt>  <tt class="py-line"> </tt>
-<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"><tt id="link-568" class="py-name" targets="Function lxml.etree.fromstring()=lxml.etree-module.html#fromstring,Function lxml.html.html5parser.fromstring()=lxml.html.html5parser-module.html#fromstring,Function lxml.html.soupparser.fromstring()=lxml.html.soupparser-module.html#fromstring,Function lxml.objectify.fromstring()=lxml.objectify-module.html#fromstring"><a title="lxml.etree.fromstring
+<a name="L1333"></a><tt class="py-lineno">1333</tt>  <tt class="py-line"><tt id="link-564" class="py-name" targets="Function lxml.etree.fromstring()=lxml.etree-module.html#fromstring,Function lxml.html.html5parser.fromstring()=lxml.html.html5parser-module.html#fromstring,Function lxml.html.soupparser.fromstring()=lxml.html.soupparser-module.html#fromstring,Function lxml.objectify.fromstring()=lxml.objectify-module.html#fromstring"><a title="lxml.etree.fromstring
 lxml.html.html5parser.fromstring
 lxml.html.soupparser.fromstring
-lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-568', 'fromstring', 'link-568');">fromstring</a></tt> <tt class="py-op">=</tt> <tt id="link-569" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
+lxml.objectify.fromstring" class="py-name" href="#" onclick="return doclink('link-564', 'fromstring', 'link-564');">fromstring</a></tt> <tt class="py-op">=</tt> <tt id="link-565" class="py-name" targets="Function lxml.etree.XML()=lxml.etree-module.html#XML,Function lxml.objectify.XML()=lxml.objectify-module.html#XML,Method lxml.tests.test_objectify.ObjectifyTestCase.XML()=lxml.tests.test_objectify.ObjectifyTestCase-class.html#XML,Method lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML()=lxml.tests.test_pyclasslookup.PyClassLookupTestCase-class.html#XML"><a title="lxml.etree.XML
 lxml.objectify.XML
 lxml.tests.test_objectify.ObjectifyTestCase.XML
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-569', 'XML', 'link-569');">XML</a></tt> </tt>
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#" onclick="return doclink('link-565', 'XML', 'link-565');">XML</a></tt> </tt>
 <a name="L1334"></a><tt class="py-lineno">1334</tt>  <tt class="py-line"> </tt>
 <a name="L1335"></a><tt class="py-lineno">1335</tt>  <tt class="py-line"><tt class="py-comment">##</tt> </tt>
 <a name="L1336"></a><tt class="py-lineno">1336</tt>  <tt class="py-line"><tt class="py-comment"># Parses an XML document from a sequence of string fragments.</tt> </tt>
@@ -2408,27 +2388,27 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.XML" class="py-name" href="#
 <a name="L1343"></a><tt class="py-lineno">1343</tt>  <tt class="py-line"><tt class="py-comment"># @since 1.3</tt> </tt>
 <a name="L1344"></a><tt class="py-lineno">1344</tt>  <tt class="py-line"> </tt>
 <a name="fromstringlist"></a><div id="fromstringlist-def"><a name="L1345"></a><tt class="py-lineno">1345</tt> <a class="py-toggle" href="#" id="fromstringlist-toggle" onclick="return toggle('fromstringlist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree-module.html#fromstringlist">fromstringlist</a><tt class="py-op">(</tt><tt class="py-param">sequence</tt><tt class="py-op">,</tt> <tt class="py-param">parser</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="fromstringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fromstringlist-expanded"><a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-570" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-570', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">        <tt id="link-571" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-571', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-572" class="py-name"><a title="lxml.etree.XMLParser
+</div><div id="fromstringlist-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="fromstringlist-expanded"><a name="L1346"></a><tt class="py-lineno">1346</tt>  <tt class="py-line">    <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-566" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-566', 'parser', 'link-121');">parser</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1347"></a><tt class="py-lineno">1347</tt>  <tt class="py-line">        <tt id="link-567" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-567', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt id="link-568" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-572', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-573" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-573', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-574" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-574', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
-<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-575" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-568', 'XMLParser', 'link-123');">XMLParser</a></tt><tt class="py-op">(</tt><tt id="link-569" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-569', 'target', 'link-104');">target</a></tt><tt class="py-op">=</tt><tt id="link-570" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-570', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1348"></a><tt class="py-lineno">1348</tt>  <tt class="py-line">    <tt class="py-keyword">for</tt> <tt id="link-571" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-575', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sequence</tt><tt class="py-op">:</tt> </tt>
-<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">        <tt id="link-576" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-576', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-577" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-577', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-578" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-571', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">sequence</tt><tt class="py-op">:</tt> </tt>
+<a name="L1349"></a><tt class="py-lineno">1349</tt>  <tt class="py-line">        <tt id="link-572" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-572', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-573" class="py-name"><a title="lxml.etree._FeedParser.feed" class="py-name" href="#" onclick="return doclink('link-573', 'feed', 'link-130');">feed</a></tt><tt class="py-op">(</tt><tt id="link-574" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-578', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-579" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-579', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-580', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-574', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1350"></a><tt class="py-lineno">1350</tt>  <tt class="py-line">    <tt class="py-keyword">return</tt> <tt id="link-575" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-575', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt id="link-576" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-576', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1351"></a><tt class="py-lineno">1351</tt>  <tt class="py-line"> </tt>
 <a name="L1352"></a><tt class="py-lineno">1352</tt>  <tt class="py-line"><tt class="py-comment"># --------------------------------------------------------------------</tt> </tt>
 <a name="L1353"></a><tt class="py-lineno">1353</tt>  <tt class="py-line"> </tt>
@@ -2451,10 +2431,10 @@ lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('
 <a name="L1370"></a><tt class="py-lineno">1370</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># last element</tt> </tt>
 <a name="L1371"></a><tt class="py-lineno">1371</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> <tt class="py-comment"># true if we're after an end tag</tt> </tt>
 <a name="L1372"></a><tt class="py-lineno">1372</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">element_factory</tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">            <tt class="py-name">element_factory</tt> <tt class="py-op">=</tt> <tt id="link-581" class="py-name"><a title="lxml.etree.Element
+<a name="L1373"></a><tt class="py-lineno">1373</tt>  <tt class="py-line">            <tt class="py-name">element_factory</tt> <tt class="py-op">=</tt> <tt id="link-577" class="py-name"><a title="lxml.etree.Element
 lxml.objectify.Element
 lxml.tests.test_pyclasslookup.PyClassLookupTestCase.Element
-xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-581', 'Element', 'link-14');">Element</a></tt> </tt>
+xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink('link-577', 'Element', 'link-14');">Element</a></tt> </tt>
 <a name="L1374"></a><tt class="py-lineno">1374</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt> <tt class="py-op">=</tt> <tt class="py-name">element_factory</tt> </tt>
 </div><a name="L1375"></a><tt class="py-lineno">1375</tt>  <tt class="py-line"> </tt>
 <a name="L1376"></a><tt class="py-lineno">1376</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
@@ -2472,35 +2452,35 @@ xml.etree.ElementTree.Element" class="py-name" href="#" onclick="return doclink(
 <a name="TreeBuilder._flush"></a><div id="TreeBuilder._flush-def"><a name="L1388"></a><tt class="py-lineno">1388</tt> <a class="py-toggle" href="#" id="TreeBuilder._flush-toggle" onclick="return toggle('TreeBuilder._flush');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#_flush">_flush</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="TreeBuilder._flush-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder._flush-expanded"><a name="L1389"></a><tt class="py-lineno">1389</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">:</tt> </tt>
 <a name="L1390"></a><tt class="py-lineno">1390</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">                <tt id="link-582" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1391"></a><tt class="py-lineno">1391</tt>  <tt class="py-line">                <tt id="link-578" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-582', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-578', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">)</tt> </tt>
 <a name="L1392"></a><tt class="py-lineno">1392</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt><tt class="py-op">:</tt> </tt>
-<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-583" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-583', 'tail', 'link-19');">tail</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (tail)"</tt> </tt>
-<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-584" class="py-name"><a title="lxml.etree._Element.tail
-xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-584', 'tail', 'link-19');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-585" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1393"></a><tt class="py-lineno">1393</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-579" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-579', 'tail', 'link-19');">tail</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (tail)"</tt> </tt>
+<a name="L1394"></a><tt class="py-lineno">1394</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-580" class="py-name"><a title="lxml.etree._Element.tail
+xml.etree.ElementTree.Element.tail" class="py-name" href="#" onclick="return doclink('link-580', 'tail', 'link-19');">tail</a></tt> <tt class="py-op">=</tt> <tt id="link-581" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-585', 'text', 'link-5');">text</a></tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-581', 'text', 'link-5');">text</a></tt> </tt>
 <a name="L1395"></a><tt class="py-lineno">1395</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-586" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1396"></a><tt class="py-lineno">1396</tt>  <tt class="py-line">                    <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-582" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-586', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (text)"</tt> </tt>
-<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-587" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-582', 'text', 'link-5');">text</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-string">"internal error (text)"</tt> </tt>
+<a name="L1397"></a><tt class="py-lineno">1397</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-583" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-587', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-588" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-583', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-584" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-588', 'text', 'link-5');">text</a></tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-584', 'text', 'link-5');">text</a></tt> </tt>
 <a name="L1398"></a><tt class="py-lineno">1398</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
 </div><a name="L1399"></a><tt class="py-lineno">1399</tt>  <tt class="py-line"> </tt>
 <a name="L1400"></a><tt class="py-lineno">1400</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
@@ -2510,7 +2490,7 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 <a name="L1404"></a><tt class="py-lineno">1404</tt>  <tt class="py-line">    <tt class="py-comment">#    containing ASCII text, or a Unicode string.</tt> </tt>
 <a name="L1405"></a><tt class="py-lineno">1405</tt>  <tt class="py-line"> </tt>
 <a name="TreeBuilder.data"></a><div id="TreeBuilder.data-def"><a name="L1406"></a><tt class="py-lineno">1406</tt> <a class="py-toggle" href="#" id="TreeBuilder.data-toggle" onclick="return toggle('TreeBuilder.data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#data">data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="TreeBuilder.data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.data-expanded"><a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-589" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-589', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt id="link-590" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-590', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
+</div><div id="TreeBuilder.data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.data-expanded"><a name="L1407"></a><tt class="py-lineno">1407</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt><tt class="py-op">.</tt><tt id="link-585" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-585', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt id="link-586" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-586', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1408"></a><tt class="py-lineno">1408</tt>  <tt class="py-line"> </tt>
 <a name="L1409"></a><tt class="py-lineno">1409</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
 <a name="L1410"></a><tt class="py-lineno">1410</tt>  <tt class="py-line">    <tt class="py-comment"># Opens a new element.</tt> </tt>
@@ -2522,15 +2502,15 @@ xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doc
 <a name="L1416"></a><tt class="py-lineno">1416</tt>  <tt class="py-line"> </tt>
 <a name="TreeBuilder.start"></a><div id="TreeBuilder.start-def"><a name="L1417"></a><tt class="py-lineno">1417</tt> <a class="py-toggle" href="#" id="TreeBuilder.start-toggle" onclick="return toggle('TreeBuilder.start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#start">start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrs</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="TreeBuilder.start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.start-expanded"><a name="L1418"></a><tt class="py-lineno">1418</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt><tt class="py-op">(</tt><tt id="link-591" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1419"></a><tt class="py-lineno">1419</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">elem</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_factory</tt><tt class="py-op">(</tt><tt id="link-587" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-591', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-587', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt class="py-name">attrs</tt><tt class="py-op">)</tt> </tt>
 <a name="L1420"></a><tt class="py-lineno">1420</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">:</tt> </tt>
-<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-592" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-592', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
-<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-593" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-593', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
+<a name="L1421"></a><tt class="py-lineno">1421</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-588" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-588', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
+<a name="L1422"></a><tt class="py-lineno">1422</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-589" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-589', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt class="py-name">elem</tt><tt class="py-op">)</tt> </tt>
 <a name="L1423"></a><tt class="py-lineno">1423</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
 <a name="L1424"></a><tt class="py-lineno">1424</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">elem</tt> </tt>
 </div><a name="L1425"></a><tt class="py-lineno">1425</tt>  <tt class="py-line"> </tt>
@@ -2543,30 +2523,30 @@ xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return docl
 <a name="L1432"></a><tt class="py-lineno">1432</tt>  <tt class="py-line"> </tt>
 <a name="TreeBuilder.end"></a><div id="TreeBuilder.end-def"><a name="L1433"></a><tt class="py-lineno">1433</tt> <a class="py-toggle" href="#" id="TreeBuilder.end-toggle" onclick="return toggle('TreeBuilder.end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.TreeBuilder-class.html#end">end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="TreeBuilder.end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TreeBuilder.end-expanded"><a name="L1434"></a><tt class="py-lineno">1434</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_flush</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-594" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-594', 'pop', 'link-594');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-595" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1435"></a><tt class="py-lineno">1435</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_elem</tt><tt class="py-op">.</tt><tt id="link-590" class="py-name" targets="Method lxml.etree._Attrib.pop()=lxml.etree._Attrib-class.html#pop"><a title="lxml.etree._Attrib.pop" class="py-name" href="#" onclick="return doclink('link-590', 'pop', 'link-590');">pop</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1436"></a><tt class="py-lineno">1436</tt>  <tt class="py-line">        <tt class="py-keyword">assert</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-591" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-595', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">==</tt> <tt id="link-596" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-591', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">==</tt> <tt id="link-592" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-596', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt>\ </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-592', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt>\ </tt>
 <a name="L1437"></a><tt class="py-lineno">1437</tt>  <tt class="py-line">               <tt class="py-string">"end tag mismatch (expected %s, got %s)"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt> </tt>
-<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">                   <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-597" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1438"></a><tt class="py-lineno">1438</tt>  <tt class="py-line">                   <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt><tt class="py-op">.</tt><tt id="link-593" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-597', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-598" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-593', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-594" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-598', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-594', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L1439"></a><tt class="py-lineno">1439</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_tail</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
 <a name="L1440"></a><tt class="py-lineno">1440</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_last</tt> </tt>
 </div></div><a name="L1441"></a><tt class="py-lineno">1441</tt>  <tt class="py-line"> </tt>
@@ -2587,7 +2567,7 @@ xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return docl
 </div><div id="XMLParser-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="XMLParser-expanded"><a name="L1456"></a><tt class="py-lineno">1456</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser.__init__"></a><div id="XMLParser.__init__-def"><a name="L1457"></a><tt class="py-lineno">1457</tt> <a class="py-toggle" href="#" id="XMLParser.__init__-toggle" onclick="return toggle('XMLParser.__init__');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">html</tt><tt class="py-op">=</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">,</tt> <tt class="py-param">encoding</tt><tt class="py-op">=</tt><tt class="py-name">None</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.__init__-expanded"><a name="L1458"></a><tt class="py-lineno">1458</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">            <tt class="py-keyword">from</tt> <tt id="link-599" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-599', 'xml', 'link-599');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
+<a name="L1459"></a><tt class="py-lineno">1459</tt>  <tt class="py-line">            <tt class="py-keyword">from</tt> <tt id="link-595" class="py-name" targets="Variable lxml.tests.test_threading.ThreadPipelineTestCase.xml=lxml.tests.test_threading.ThreadPipelineTestCase-class.html#xml"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-595', 'xml', 'link-595');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
 <a name="L1460"></a><tt class="py-lineno">1460</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
 <a name="L1461"></a><tt class="py-lineno">1461</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L1462"></a><tt class="py-lineno">1462</tt>  <tt class="py-line">                <tt class="py-keyword">import</tt> <tt class="py-name">pyexpat</tt> <tt class="py-keyword">as</tt> <tt class="py-name">expat</tt> </tt>
@@ -2595,35 +2575,35 @@ xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return docl
 <a name="L1464"></a><tt class="py-lineno">1464</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">ImportError</tt><tt class="py-op">(</tt> </tt>
 <a name="L1465"></a><tt class="py-lineno">1465</tt>  <tt class="py-line">                    <tt class="py-string">"No module named expat; use SimpleXMLTreeBuilder instead"</tt> </tt>
 <a name="L1466"></a><tt class="py-lineno">1466</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
-<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt id="link-600" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-600', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">ParserCreate</tt><tt class="py-op">(</tt><tt id="link-601" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-601', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"}"</tt><tt class="py-op">)</tt> </tt>
-<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-602" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-602', 'target', 'link-104');">target</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
-<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">            <tt id="link-603" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-603', 'target', 'link-104');">target</a></tt> <tt class="py-op">=</tt> <tt id="link-604" class="py-name"><a title="lxml.etree.TreeBuilder
-xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-604', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1467"></a><tt class="py-lineno">1467</tt>  <tt class="py-line">        <tt id="link-596" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-596', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">ParserCreate</tt><tt class="py-op">(</tt><tt id="link-597" class="py-name"><a title="lxml.etree.DocInfo.encoding" class="py-name" href="#" onclick="return doclink('link-597', 'encoding', 'link-171');">encoding</a></tt><tt class="py-op">,</tt> <tt class="py-string">"}"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1468"></a><tt class="py-lineno">1468</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-598" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-598', 'target', 'link-104');">target</a></tt> <tt class="py-keyword">is</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
+<a name="L1469"></a><tt class="py-lineno">1469</tt>  <tt class="py-line">            <tt id="link-599" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-599', 'target', 'link-104');">target</a></tt> <tt class="py-op">=</tt> <tt id="link-600" class="py-name"><a title="lxml.etree.TreeBuilder
+xml.etree.ElementTree.TreeBuilder" class="py-name" href="#" onclick="return doclink('link-600', 'TreeBuilder', 'link-125');">TreeBuilder</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
 <a name="L1470"></a><tt class="py-lineno">1470</tt>  <tt class="py-line">        <tt class="py-comment"># underscored names are provided for compatibility only</tt> </tt>
-<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-605" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-605', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-606" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-606', 'parser', 'link-121');">parser</a></tt> </tt>
-<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-607" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-607', 'target', 'link-104');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_target</tt> <tt class="py-op">=</tt> <tt id="link-608" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-608', 'target', 'link-104');">target</a></tt> </tt>
+<a name="L1471"></a><tt class="py-lineno">1471</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-601" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-601', 'parser', 'link-121');">parser</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-op">=</tt> <tt id="link-602" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-602', 'parser', 'link-121');">parser</a></tt> </tt>
+<a name="L1472"></a><tt class="py-lineno">1472</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-603" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-603', 'target', 'link-104');">target</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_target</tt> <tt class="py-op">=</tt> <tt id="link-604" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-604', 'target', 'link-104');">target</a></tt> </tt>
 <a name="L1473"></a><tt class="py-lineno">1473</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt> </tt>
-<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-609" class="py-name" targets="Variable lxml.etree.ErrorDomains._names=lxml.etree.ErrorDomains-class.html#_names,Variable lxml.etree.ErrorLevels._names=lxml.etree.ErrorLevels-class.html#_names,Variable lxml.etree.ErrorTypes._names=lxml.etree.ErrorTypes-class.html#_names,Variable lxml.etree.RelaxNGErrorTypes._names=lxml.etree.RelaxNGErrorTypes-class.html#_names"><a title="lxml.etree.ErrorDomains._names
+<a name="L1474"></a><tt class="py-lineno">1474</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-605" class="py-name" targets="Variable lxml.etree.ErrorDomains._names=lxml.etree.ErrorDomains-class.html#_names,Variable lxml.etree.ErrorLevels._names=lxml.etree.ErrorLevels-class.html#_names,Variable lxml.etree.ErrorTypes._names=lxml.etree.ErrorTypes-class.html#_names,Variable lxml.etree.RelaxNGErrorTypes._names=lxml.etree.RelaxNGErrorTypes-class.html#_names"><a title="lxml.etree.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
-lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-609', '_names', 'link-609');">_names</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># name memo cache</tt> </tt>
+lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-605', '_names', 'link-605');">_names</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> <tt class="py-comment"># name memo cache</tt> </tt>
 <a name="L1475"></a><tt class="py-lineno">1475</tt>  <tt class="py-line">        <tt class="py-comment"># callbacks</tt> </tt>
-<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">        <tt id="link-610" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-610', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">DefaultHandlerExpand</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_default</tt> </tt>
-<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">        <tt id="link-611" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-611', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start</tt> </tt>
-<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt id="link-612" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-612', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt> </tt>
-<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt id="link-613" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-613', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CharacterDataHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> </tt>
+<a name="L1476"></a><tt class="py-lineno">1476</tt>  <tt class="py-line">        <tt id="link-606" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-606', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">DefaultHandlerExpand</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_default</tt> </tt>
+<a name="L1477"></a><tt class="py-lineno">1477</tt>  <tt class="py-line">        <tt id="link-607" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-607', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start</tt> </tt>
+<a name="L1478"></a><tt class="py-lineno">1478</tt>  <tt class="py-line">        <tt id="link-608" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-608', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">EndElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_end</tt> </tt>
+<a name="L1479"></a><tt class="py-lineno">1479</tt>  <tt class="py-line">        <tt id="link-609" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-609', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CharacterDataHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_data</tt> </tt>
 <a name="L1480"></a><tt class="py-lineno">1480</tt>  <tt class="py-line">        <tt class="py-comment"># optional callbacks</tt> </tt>
-<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt id="link-614" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-614', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CommentHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_comment</tt> </tt>
-<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt id="link-615" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-615', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstructionHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pi</tt> </tt>
+<a name="L1481"></a><tt class="py-lineno">1481</tt>  <tt class="py-line">        <tt id="link-610" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-610', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">CommentHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_comment</tt> </tt>
+<a name="L1482"></a><tt class="py-lineno">1482</tt>  <tt class="py-line">        <tt id="link-611" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-611', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">ProcessingInstructionHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_pi</tt> </tt>
 <a name="L1483"></a><tt class="py-lineno">1483</tt>  <tt class="py-line">        <tt class="py-comment"># let expat do the buffering, if supported</tt> </tt>
 <a name="L1484"></a><tt class="py-lineno">1484</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L1485"></a><tt class="py-lineno">1485</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">buffer_text</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
@@ -2633,8 +2613,8 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 <a name="L1489"></a><tt class="py-lineno">1489</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L1490"></a><tt class="py-lineno">1490</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ordered_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
 <a name="L1491"></a><tt class="py-lineno">1491</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">specified_attributes</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
-<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">            <tt id="link-616" class="py-name"><a title="lxml.etree._ElementTree.parser
-lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-616', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt> </tt>
+<a name="L1492"></a><tt class="py-lineno">1492</tt>  <tt class="py-line">            <tt id="link-612" class="py-name"><a title="lxml.etree._ElementTree.parser
+lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href="#" onclick="return doclink('link-612', 'parser', 'link-121');">parser</a></tt><tt class="py-op">.</tt><tt class="py-name">StartElementHandler</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_start_list</tt> </tt>
 <a name="L1493"></a><tt class="py-lineno">1493</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
 <a name="L1494"></a><tt class="py-lineno">1494</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
 <a name="L1495"></a><tt class="py-lineno">1495</tt>  <tt class="py-line">        <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
@@ -2645,284 +2625,284 @@ lxml.tests.test_pyclasslookup.PyClassLookupTestCase.parser" class="py-name" href
 <a name="L1500"></a><tt class="py-lineno">1500</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> <tt class="py-comment"># unknown</tt> </tt>
 </div><a name="L1501"></a><tt class="py-lineno">1501</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._raiseerror"></a><div id="XMLParser._raiseerror-def"><a name="L1502"></a><tt class="py-lineno">1502</tt> <a class="py-toggle" href="#" id="XMLParser._raiseerror-toggle" onclick="return toggle('XMLParser._raiseerror');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_raiseerror">_raiseerror</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">value</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._raiseerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._raiseerror-expanded"><a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt id="link-617" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
-xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-617', 'ParseError', 'link-617');">ParseError</a></tt><tt class="py-op">(</tt><tt id="link-618" class="py-name"><a title="lxml.html.CheckboxGroup.value
+</div><div id="XMLParser._raiseerror-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._raiseerror-expanded"><a name="L1503"></a><tt class="py-lineno">1503</tt>  <tt class="py-line">        <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt id="link-613" class="py-name" targets="Class lxml.etree.ParseError=lxml.etree.ParseError-class.html,Class xml.etree.ElementTree.ParseError=xml.etree.ElementTree.ParseError-class.html"><a title="lxml.etree.ParseError
+xml.etree.ElementTree.ParseError" class="py-name" href="#" onclick="return doclink('link-613', 'ParseError', 'link-613');">ParseError</a></tt><tt class="py-op">(</tt><tt id="link-614" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-618', 'value', 'link-63');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt id="link-619" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-614', 'value', 'link-63');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1504"></a><tt class="py-lineno">1504</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt id="link-615" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-619', 'value', 'link-63');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">code</tt> </tt>
-<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt id="link-620" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-615', 'value', 'link-63');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">code</tt> </tt>
+<a name="L1505"></a><tt class="py-lineno">1505</tt>  <tt class="py-line">        <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt id="link-616" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-620', 'value', 'link-63');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt><tt class="py-op">,</tt> <tt id="link-621" class="py-name"><a title="lxml.html.CheckboxGroup.value
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-616', 'value', 'link-63');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt><tt class="py-op">,</tt> <tt id="link-617" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-621', 'value', 'link-63');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> </tt>
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-617', 'value', 'link-63');">value</a></tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> </tt>
 <a name="L1506"></a><tt class="py-lineno">1506</tt>  <tt class="py-line">        <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
 </div><a name="L1507"></a><tt class="py-lineno">1507</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._fixtext"></a><div id="XMLParser._fixtext-def"><a name="L1508"></a><tt class="py-lineno">1508</tt> <a class="py-toggle" href="#" id="XMLParser._fixtext-toggle" onclick="return toggle('XMLParser._fixtext');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixtext">_fixtext</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser._fixtext-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixtext-expanded"><a name="L1509"></a><tt class="py-lineno">1509</tt>  <tt class="py-line">        <tt class="py-comment"># convert text string to ascii, if possible</tt> </tt>
 <a name="L1510"></a><tt class="py-lineno">1510</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-622" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1511"></a><tt class="py-lineno">1511</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-618" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-622', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-618', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt class="py-name">encode</tt><tt class="py-op">(</tt><tt class="py-string">"ascii"</tt><tt class="py-op">)</tt> </tt>
 <a name="L1512"></a><tt class="py-lineno">1512</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">UnicodeError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-623" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1513"></a><tt class="py-lineno">1513</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-619" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-623', 'text', 'link-5');">text</a></tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-619', 'text', 'link-5');">text</a></tt> </tt>
 </div><a name="L1514"></a><tt class="py-lineno">1514</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._fixname"></a><div id="XMLParser._fixname-def"><a name="L1515"></a><tt class="py-lineno">1515</tt> <a class="py-toggle" href="#" id="XMLParser._fixname-toggle" onclick="return toggle('XMLParser._fixname');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_fixname">_fixname</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">key</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser._fixname-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._fixname-expanded"><a name="L1516"></a><tt class="py-lineno">1516</tt>  <tt class="py-line">        <tt class="py-comment"># expand qname, and convert name string to ascii, if possible</tt> </tt>
 <a name="L1517"></a><tt class="py-lineno">1517</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">            <tt id="link-624" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
+<a name="L1518"></a><tt class="py-lineno">1518</tt>  <tt class="py-line">            <tt id="link-620" class="py-name" targets="Variable lxml.etree.DTD.name=lxml.etree.DTD-class.html#name,Variable lxml.etree._Entity.name=lxml.etree._Entity-class.html#name,Variable lxml.html.InputMixin.name=lxml.html.InputMixin-class.html#name,Variable lxml.objectify.PyType.name=lxml.objectify.PyType-class.html#name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-624', 'name', 'link-624');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-625" class="py-name"><a title="lxml.etree.ErrorDomains._names
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-620', 'name', 'link-620');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-621" class="py-name"><a title="lxml.etree.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
-lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-625', '_names', 'link-609');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
+lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-621', '_names', 'link-605');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> </tt>
 <a name="L1519"></a><tt class="py-lineno">1519</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">            <tt id="link-626" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1520"></a><tt class="py-lineno">1520</tt>  <tt class="py-line">            <tt id="link-622" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-626', 'name', 'link-624');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
-<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"}"</tt> <tt class="py-keyword">in</tt> <tt id="link-627" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-622', 'name', 'link-620');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">key</tt> </tt>
+<a name="L1521"></a><tt class="py-lineno">1521</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-string">"}"</tt> <tt class="py-keyword">in</tt> <tt id="link-623" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-627', 'name', 'link-624');">name</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">                <tt id="link-628" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-623', 'name', 'link-620');">name</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1522"></a><tt class="py-lineno">1522</tt>  <tt class="py-line">                <tt id="link-624" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-628', 'name', 'link-624');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{"</tt> <tt class="py-op">+</tt> <tt id="link-629" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-624', 'name', 'link-620');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-string">"{"</tt> <tt class="py-op">+</tt> <tt id="link-625" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-629', 'name', 'link-624');">name</a></tt> </tt>
-<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-630" class="py-name"><a title="lxml.etree.ErrorDomains._names
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-625', 'name', 'link-620');">name</a></tt> </tt>
+<a name="L1523"></a><tt class="py-lineno">1523</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-626" class="py-name"><a title="lxml.etree.ErrorDomains._names
 lxml.etree.ErrorLevels._names
 lxml.etree.ErrorTypes._names
-lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-630', '_names', 'link-609');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-631" class="py-name"><a title="lxml.etree.DTD.name
+lxml.etree.RelaxNGErrorTypes._names" class="py-name" href="#" onclick="return doclink('link-626', '_names', 'link-605');">_names</a></tt><tt class="py-op">[</tt><tt class="py-name">key</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-627" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-631', 'name', 'link-624');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-632" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-627', 'name', 'link-620');">name</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-628" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-632', 'name', 'link-624');">name</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-633" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-628', 'name', 'link-620');">name</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1524"></a><tt class="py-lineno">1524</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt id="link-629" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-633', 'name', 'link-624');">name</a></tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-629', 'name', 'link-620');">name</a></tt> </tt>
 </div><a name="L1525"></a><tt class="py-lineno">1525</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._start"></a><div id="XMLParser._start-def"><a name="L1526"></a><tt class="py-lineno">1526</tt> <a class="py-toggle" href="#" id="XMLParser._start-toggle" onclick="return toggle('XMLParser._start');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start">_start</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser._start-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start-expanded"><a name="L1527"></a><tt class="py-lineno">1527</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
 <a name="L1528"></a><tt class="py-lineno">1528</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
-<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-634" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1529"></a><tt class="py-lineno">1529</tt>  <tt class="py-line">        <tt id="link-630" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-634', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt id="link-635" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-630', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt id="link-631" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-635', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt id="link-636" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-631', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1530"></a><tt class="py-lineno">1530</tt>  <tt class="py-line">        <tt id="link-632" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-636', 'attrib', 'link-17');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
-<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-637" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-632', 'attrib', 'link-17');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1531"></a><tt class="py-lineno">1531</tt>  <tt class="py-line">        <tt class="py-keyword">for</tt> <tt class="py-name">key</tt><tt class="py-op">,</tt> <tt id="link-633" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-637', 'value', 'link-63');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">.</tt><tt id="link-638" class="py-name"><a title="lxml.etree._Attrib.items
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-633', 'value', 'link-63');">value</a></tt> <tt class="py-keyword">in</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">.</tt><tt id="link-634" class="py-name"><a title="lxml.etree._Attrib.items
 lxml.etree._Element.items
-lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-638', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">            <tt id="link-639" class="py-name"><a title="lxml.etree._Element.attrib
+lxml.etree._IDDict.items" class="py-name" href="#" onclick="return doclink('link-634', 'items', 'link-67');">items</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1532"></a><tt class="py-lineno">1532</tt>  <tt class="py-line">            <tt id="link-635" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-639', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt id="link-640" class="py-name"><a title="lxml.html.CheckboxGroup.value
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-635', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">key</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt id="link-636" class="py-name"><a title="lxml.html.CheckboxGroup.value
 lxml.html.InputElement.value
 lxml.html.RadioGroup.value
 lxml.html.SelectElement.value
-lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-640', 'value', 'link-63');">value</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-641" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-641', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-642" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-642', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-643" class="py-name"><a title="lxml.etree._Comment.tag
+lxml.html.TextareaElement.value" class="py-name" href="#" onclick="return doclink('link-636', 'value', 'link-63');">value</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1533"></a><tt class="py-lineno">1533</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-637" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-637', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-638" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-638', 'start', 'link-509');">start</a></tt><tt class="py-op">(</tt><tt id="link-639" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-643', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-644" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-639', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-640" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-644', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-640', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1534"></a><tt class="py-lineno">1534</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._start_list"></a><div id="XMLParser._start_list-def"><a name="L1535"></a><tt class="py-lineno">1535</tt> <a class="py-toggle" href="#" id="XMLParser._start_list-toggle" onclick="return toggle('XMLParser._start_list');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_start_list">_start_list</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">,</tt> <tt class="py-param">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser._start_list-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._start_list-expanded"><a name="L1536"></a><tt class="py-lineno">1536</tt>  <tt class="py-line">        <tt class="py-name">fixname</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt> </tt>
 <a name="L1537"></a><tt class="py-lineno">1537</tt>  <tt class="py-line">        <tt class="py-name">fixtext</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt> </tt>
-<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt id="link-645" class="py-name"><a title="lxml.etree._Comment.tag
+<a name="L1538"></a><tt class="py-lineno">1538</tt>  <tt class="py-line">        <tt id="link-641" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-645', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt id="link-646" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-641', 'tag', 'link-1');">tag</a></tt> <tt class="py-op">=</tt> <tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt id="link-642" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-646', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-647" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-642', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1539"></a><tt class="py-lineno">1539</tt>  <tt class="py-line">        <tt id="link-643" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-647', 'attrib', 'link-17');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-643', 'attrib', 'link-17');">attrib</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
 <a name="L1540"></a><tt class="py-lineno">1540</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt class="py-name">attrib_in</tt><tt class="py-op">:</tt> </tt>
 <a name="L1541"></a><tt class="py-lineno">1541</tt>  <tt class="py-line">            <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">                <tt id="link-648" class="py-name"><a title="lxml.etree._Element.attrib
+<a name="L1542"></a><tt class="py-lineno">1542</tt>  <tt class="py-line">                <tt id="link-644" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-648', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-649" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-649', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-650', 'start', 'link-513');">start</a></tt><tt class="py-op">(</tt><tt id="link-651" class="py-name"><a title="lxml.etree._Comment.tag
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-644', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">[</tt><tt class="py-name">fixname</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">fixtext</tt><tt class="py-op">(</tt><tt class="py-name">attrib_in</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1543"></a><tt class="py-lineno">1543</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-645" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-645', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-646" class="py-name"><a title="lxml.etree.TreeBuilder.start" class="py-name" href="#" onclick="return doclink('link-646', 'start', 'link-509');">start</a></tt><tt class="py-op">(</tt><tt id="link-647" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-651', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-652" class="py-name"><a title="lxml.etree._Element.attrib
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-647', 'tag', 'link-1');">tag</a></tt><tt class="py-op">,</tt> <tt id="link-648" class="py-name"><a title="lxml.etree._Element.attrib
 lxml.etree._ProcessingInstruction.attrib
-xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-652', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.attrib" class="py-name" href="#" onclick="return doclink('link-648', 'attrib', 'link-17');">attrib</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1544"></a><tt class="py-lineno">1544</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._data"></a><div id="XMLParser._data-def"><a name="L1545"></a><tt class="py-lineno">1545</tt> <a class="py-toggle" href="#" id="XMLParser._data-toggle" onclick="return toggle('XMLParser._data');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_data">_data</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._data-expanded"><a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-653" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-653', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-654" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-654', 'data', 'link-126');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-655" class="py-name"><a title="lxml.etree.QName.text
+</div><div id="XMLParser._data-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._data-expanded"><a name="L1546"></a><tt class="py-lineno">1546</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-649" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-649', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-650" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-650', 'data', 'link-126');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-651" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-655', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-651', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1547"></a><tt class="py-lineno">1547</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._end"></a><div id="XMLParser._end-def"><a name="L1548"></a><tt class="py-lineno">1548</tt> <a class="py-toggle" href="#" id="XMLParser._end-toggle" onclick="return toggle('XMLParser._end');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_end">_end</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._end-expanded"><a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-656" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-656', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-657', 'end', 'link-523');">end</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt><tt class="py-op">(</tt><tt id="link-658" class="py-name"><a title="lxml.etree._Comment.tag
+</div><div id="XMLParser._end-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._end-expanded"><a name="L1549"></a><tt class="py-lineno">1549</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-652" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-652', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-653" class="py-name"><a title="lxml.etree.TreeBuilder.end" class="py-name" href="#" onclick="return doclink('link-653', 'end', 'link-519');">end</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixname</tt><tt class="py-op">(</tt><tt id="link-654" class="py-name"><a title="lxml.etree._Comment.tag
 lxml.etree._Element.tag
 lxml.etree._Entity.tag
 lxml.etree._ProcessingInstruction.tag
 lxml.tests.test_xpathevaluator.tag
-xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-658', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.tag" class="py-name" href="#" onclick="return doclink('link-654', 'tag', 'link-1');">tag</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1550"></a><tt class="py-lineno">1550</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._comment"></a><div id="XMLParser._comment-def"><a name="L1551"></a><tt class="py-lineno">1551</tt> <a class="py-toggle" href="#" id="XMLParser._comment-toggle" onclick="return toggle('XMLParser._comment');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_comment">_comment</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser._comment-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._comment-expanded"><a name="L1552"></a><tt class="py-lineno">1552</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">            <tt id="link-659" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-659', 'comment', 'link-659');">comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-660" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-660', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-661', 'comment', 'link-659');">comment</a></tt> </tt>
+<a name="L1553"></a><tt class="py-lineno">1553</tt>  <tt class="py-line">            <tt id="link-655" class="py-name" targets="Method lxml.etree.TreeBuilder.comment()=lxml.etree.TreeBuilder-class.html#comment"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-655', 'comment', 'link-655');">comment</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-656" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-656', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-657" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-657', 'comment', 'link-655');">comment</a></tt> </tt>
 <a name="L1554"></a><tt class="py-lineno">1554</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
 <a name="L1555"></a><tt class="py-lineno">1555</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
 <a name="L1556"></a><tt class="py-lineno">1556</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-662" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-662', 'comment', 'link-659');">comment</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-663" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-663', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1557"></a><tt class="py-lineno">1557</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-658" class="py-name"><a title="lxml.etree.TreeBuilder.comment" class="py-name" href="#" onclick="return doclink('link-658', 'comment', 'link-655');">comment</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-659" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-659', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1558"></a><tt class="py-lineno">1558</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._pi"></a><div id="XMLParser._pi-def"><a name="L1559"></a><tt class="py-lineno">1559</tt> <a class="py-toggle" href="#" id="XMLParser._pi-toggle" onclick="return toggle('XMLParser._pi');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_pi">_pi</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">target</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser._pi-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._pi-expanded"><a name="L1560"></a><tt class="py-lineno">1560</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">            <tt id="link-664" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-664', 'pi', 'link-664');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-665" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-665', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-666" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-666', 'pi', 'link-664');">pi</a></tt> </tt>
+<a name="L1561"></a><tt class="py-lineno">1561</tt>  <tt class="py-line">            <tt id="link-660" class="py-name" targets="Method lxml.etree.TreeBuilder.pi()=lxml.etree.TreeBuilder-class.html#pi"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-660', 'pi', 'link-660');">pi</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-661" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-661', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-662" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-662', 'pi', 'link-660');">pi</a></tt> </tt>
 <a name="L1562"></a><tt class="py-lineno">1562</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">AttributeError</tt><tt class="py-op">:</tt> </tt>
 <a name="L1563"></a><tt class="py-lineno">1563</tt>  <tt class="py-line">            <tt class="py-keyword">pass</tt> </tt>
 <a name="L1564"></a><tt class="py-lineno">1564</tt>  <tt class="py-line">        <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
-<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-667" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-667', 'pi', 'link-664');">pi</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-668" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-668', 'target', 'link-104');">target</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-669" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-669', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L1565"></a><tt class="py-lineno">1565</tt>  <tt class="py-line">            <tt class="py-keyword">return</tt> <tt id="link-663" class="py-name"><a title="lxml.etree.TreeBuilder.pi" class="py-name" href="#" onclick="return doclink('link-663', 'pi', 'link-660');">pi</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-664" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-664', 'target', 'link-104');">target</a></tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_fixtext</tt><tt class="py-op">(</tt><tt id="link-665" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-665', 'data', 'link-126');">data</a></tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1566"></a><tt class="py-lineno">1566</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser._default"></a><div id="XMLParser._default-def"><a name="L1567"></a><tt class="py-lineno">1567</tt> <a class="py-toggle" href="#" id="XMLParser._default-toggle" onclick="return toggle('XMLParser._default');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#_default">_default</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">text</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-</div><div id="XMLParser._default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._default-expanded"><a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt id="link-670" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-670', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt id="link-671" class="py-name"><a title="lxml.etree.QName.text
+</div><div id="XMLParser._default-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser._default-expanded"><a name="L1568"></a><tt class="py-lineno">1568</tt>  <tt class="py-line">        <tt id="link-666" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-666', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">=</tt> <tt id="link-667" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-671', 'text', 'link-5');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-672" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-672', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&amp;"</tt><tt class="py-op">:</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-667', 'text', 'link-5');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1569"></a><tt class="py-lineno">1569</tt>  <tt class="py-line">        <tt class="py-keyword">if</tt> <tt id="link-668" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-668', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&amp;"</tt><tt class="py-op">:</tt> </tt>
 <a name="L1570"></a><tt class="py-lineno">1570</tt>  <tt class="py-line">            <tt class="py-comment"># deal with undefined entities</tt> </tt>
 <a name="L1571"></a><tt class="py-lineno">1571</tt>  <tt class="py-line">            <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-673" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-673', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-674" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-674', 'data', 'link-126');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt><tt class="py-op">[</tt><tt id="link-675" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1572"></a><tt class="py-lineno">1572</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-669" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-669', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-670" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-670', 'data', 'link-126');">data</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">entity</tt><tt class="py-op">[</tt><tt id="link-671" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-675', 'text', 'link-5');">text</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-671', 'text', 'link-5');">text</a></tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 <a name="L1573"></a><tt class="py-lineno">1573</tt>  <tt class="py-line">            <tt class="py-keyword">except</tt> <tt class="py-name">KeyError</tt><tt class="py-op">:</tt> </tt>
-<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">                <tt class="py-keyword">from</tt> <tt id="link-676" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-676', 'xml', 'link-599');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
+<a name="L1574"></a><tt class="py-lineno">1574</tt>  <tt class="py-line">                <tt class="py-keyword">from</tt> <tt id="link-672" class="py-name"><a title="lxml.tests.test_threading.ThreadPipelineTestCase.xml" class="py-name" href="#" onclick="return doclink('link-672', 'xml', 'link-595');">xml</a></tt><tt class="py-op">.</tt><tt class="py-name">parsers</tt> <tt class="py-keyword">import</tt> <tt class="py-name">expat</tt> </tt>
 <a name="L1575"></a><tt class="py-lineno">1575</tt>  <tt class="py-line">                <tt class="py-name">err</tt> <tt class="py-op">=</tt> <tt class="py-name">expat</tt><tt class="py-op">.</tt><tt class="py-name">error</tt><tt class="py-op">(</tt> </tt>
 <a name="L1576"></a><tt class="py-lineno">1576</tt>  <tt class="py-line">                    <tt class="py-string">"undefined entity %s: line %d, column %d"</tt> <tt class="py-op">%</tt> </tt>
-<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-677" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1577"></a><tt class="py-lineno">1577</tt>  <tt class="py-line">                    <tt class="py-op">(</tt><tt id="link-673" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-677', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</tt><tt class="py-op">,</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-673', 'text', 'link-5');">text</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</tt><tt class="py-op">,</tt> </tt>
 <a name="L1578"></a><tt class="py-lineno">1578</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt><tt class="py-op">)</tt> </tt>
 <a name="L1579"></a><tt class="py-lineno">1579</tt>  <tt class="py-line">                    <tt class="py-op">)</tt> </tt>
 <a name="L1580"></a><tt class="py-lineno">1580</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">code</tt> <tt class="py-op">=</tt> <tt class="py-number">11</tt> <tt class="py-comment"># XML_ERROR_UNDEFINED_ENTITY</tt> </tt>
 <a name="L1581"></a><tt class="py-lineno">1581</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">lineno</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorLineNumber</tt> </tt>
 <a name="L1582"></a><tt class="py-lineno">1582</tt>  <tt class="py-line">                <tt class="py-name">err</tt><tt class="py-op">.</tt><tt class="py-name">offset</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">ErrorColumnNumber</tt> </tt>
 <a name="L1583"></a><tt class="py-lineno">1583</tt>  <tt class="py-line">                <tt class="py-keyword">raise</tt> <tt class="py-name">err</tt> </tt>
-<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-678" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-678', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">and</tt> <tt id="link-679" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1584"></a><tt class="py-lineno">1584</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt id="link-674" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-674', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;"</tt> <tt class="py-keyword">and</tt> <tt id="link-675" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-679', 'text', 'link-5');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">9</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;!DOCTYPE"</tt><tt class="py-op">:</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-675', 'text', 'link-5');">text</a></tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-number">9</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-string">"&lt;!DOCTYPE"</tt><tt class="py-op">:</tt> </tt>
 <a name="L1585"></a><tt class="py-lineno">1585</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># inside a doctype declaration</tt> </tt>
 <a name="L1586"></a><tt class="py-lineno">1586</tt>  <tt class="py-line">        <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">None</tt><tt class="py-op">:</tt> </tt>
 <a name="L1587"></a><tt class="py-lineno">1587</tt>  <tt class="py-line">            <tt class="py-comment"># parse doctype contents</tt> </tt>
-<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-680" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-680', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">:</tt> </tt>
+<a name="L1588"></a><tt class="py-lineno">1588</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt id="link-676" class="py-name"><a title="lxml.etree._Element.prefix" class="py-name" href="#" onclick="return doclink('link-676', 'prefix', 'link-194');">prefix</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"&gt;"</tt><tt class="py-op">:</tt> </tt>
 <a name="L1589"></a><tt class="py-lineno">1589</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 <a name="L1590"></a><tt class="py-lineno">1590</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
-<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">            <tt id="link-681" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1591"></a><tt class="py-lineno">1591</tt>  <tt class="py-line">            <tt id="link-677" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-681', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-682" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-677', 'text', 'link-5');">text</a></tt> <tt class="py-op">=</tt> <tt id="link-678" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-682', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-683" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-683', 'strip', 'link-683');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-684" class="py-name"><a title="lxml.etree.QName.text
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-678', 'text', 'link-5');">text</a></tt><tt class="py-op">.</tt><tt id="link-679" class="py-name" targets="Function lxml.doctestcompare.strip()=lxml.doctestcompare-module.html#strip"><a title="lxml.doctestcompare.strip" class="py-name" href="#" onclick="return doclink('link-679', 'strip', 'link-679');">strip</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1592"></a><tt class="py-lineno">1592</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt id="link-680" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-684', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-680', 'text', 'link-5');">text</a></tt><tt class="py-op">:</tt> </tt>
 <a name="L1593"></a><tt class="py-lineno">1593</tt>  <tt class="py-line">                <tt class="py-keyword">return</tt> </tt>
-<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">.</tt><tt id="link-685" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-685', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt id="link-686" class="py-name"><a title="lxml.etree.QName.text
+<a name="L1594"></a><tt class="py-lineno">1594</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">.</tt><tt id="link-681" class="py-name"><a title="lxml.etree._Element.append" class="py-name" href="#" onclick="return doclink('link-681', 'append', 'link-42');">append</a></tt><tt class="py-op">(</tt><tt id="link-682" class="py-name"><a title="lxml.etree.QName.text
 lxml.etree._Element.text
 lxml.etree._Entity.text
 lxml.objectify.ObjectifiedElement.text
-xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-686', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
+xml.etree.ElementTree.Element.text" class="py-name" href="#" onclick="return doclink('link-682', 'text', 'link-5');">text</a></tt><tt class="py-op">)</tt> </tt>
 <a name="L1595"></a><tt class="py-lineno">1595</tt>  <tt class="py-line">            <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">)</tt> </tt>
 <a name="L1596"></a><tt class="py-lineno">1596</tt>  <tt class="py-line">            <tt class="py-keyword">if</tt> <tt class="py-name">n</tt> <tt class="py-op">&gt;</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
-<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">                <tt id="link-687" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-687', 'type', 'link-405');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-688" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-688', 'type', 'link-405');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"PUBLIC"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
-<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                    <tt id="link-689" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1597"></a><tt class="py-lineno">1597</tt>  <tt class="py-line">                <tt id="link-683" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-683', 'type', 'link-401');">type</a></tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1598"></a><tt class="py-lineno">1598</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-684" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-684', 'type', 'link-401');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"PUBLIC"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L1599"></a><tt class="py-lineno">1599</tt>  <tt class="py-line">                    <tt id="link-685" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-689', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt id="link-690" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-690', 'type', 'link-405');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
-<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-691" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-691', 'type', 'link-405');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"SYSTEM"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
-<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">                    <tt id="link-692" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-685', 'name', 'link-620');">name</a></tt><tt class="py-op">,</tt> <tt id="link-686" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-686', 'type', 'link-401');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
+<a name="L1600"></a><tt class="py-lineno">1600</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt id="link-687" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-687', 'type', 'link-401');">type</a></tt> <tt class="py-op">==</tt> <tt class="py-string">"SYSTEM"</tt> <tt class="py-keyword">and</tt> <tt class="py-name">n</tt> <tt class="py-op">==</tt> <tt class="py-number">3</tt><tt class="py-op">:</tt> </tt>
+<a name="L1601"></a><tt class="py-lineno">1601</tt>  <tt class="py-line">                    <tt id="link-688" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-692', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt id="link-693" class="py-name"><a title="lxml.etree._LogEntry.type
-lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-693', 'type', 'link-405');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-688', 'name', 'link-620');">name</a></tt><tt class="py-op">,</tt> <tt id="link-689" class="py-name"><a title="lxml.etree._LogEntry.type
+lxml.html.InputElement.type" class="py-name" href="#" onclick="return doclink('link-689', 'type', 'link-401');">type</a></tt><tt class="py-op">,</tt> <tt class="py-name">system</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> </tt>
 <a name="L1602"></a><tt class="py-lineno">1602</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 <a name="L1603"></a><tt class="py-lineno">1603</tt>  <tt class="py-line">                <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
 <a name="L1604"></a><tt class="py-lineno">1604</tt>  <tt class="py-line">                    <tt class="py-keyword">return</tt> </tt>
 <a name="L1605"></a><tt class="py-lineno">1605</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt class="py-name">pubid</tt><tt class="py-op">:</tt> </tt>
 <a name="L1606"></a><tt class="py-lineno">1606</tt>  <tt class="py-line">                    <tt class="py-name">pubid</tt> <tt class="py-op">=</tt> <tt class="py-name">pubid</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
-<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-694" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-694', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-695" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-695', 'target', 'link-104');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"doctype"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
-<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-696" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-696', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-697" class="py-name" targets="Variable lxml.etree.DocInfo.doctype=lxml.etree.DocInfo-class.html#doctype"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-697', 'doctype', 'link-697');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-698" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1607"></a><tt class="py-lineno">1607</tt>  <tt class="py-line">                <tt class="py-keyword">if</tt> <tt id="link-690" class="py-name"><a title="lxml.objectify.ObjectPath.hasattr" class="py-name" href="#" onclick="return doclink('link-690', 'hasattr', 'link-15');">hasattr</a></tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-691" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-691', 'target', 'link-104');">target</a></tt><tt class="py-op">,</tt> <tt class="py-string">"doctype"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1608"></a><tt class="py-lineno">1608</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-692" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-692', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-693" class="py-name" targets="Variable lxml.etree.DocInfo.doctype=lxml.etree.DocInfo-class.html#doctype"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-693', 'doctype', 'link-693');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-694" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-698', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-699" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-699', 'doctype', 'link-697');">doctype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">:</tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-694', 'name', 'link-620');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1609"></a><tt class="py-lineno">1609</tt>  <tt class="py-line">                <tt class="py-keyword">elif</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-695" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-695', 'doctype', 'link-693');">doctype</a></tt> <tt class="py-keyword">is</tt> <tt class="py-keyword">not</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">:</tt> </tt>
 <a name="L1610"></a><tt class="py-lineno">1610</tt>  <tt class="py-line">                    <tt class="py-comment"># warn about deprecated call</tt> </tt>
-<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">(</tt><tt id="link-700" class="py-name"><a title="lxml.etree.DTD.name
+<a name="L1611"></a><tt class="py-lineno">1611</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_XMLParser__doctype</tt><tt class="py-op">(</tt><tt id="link-696" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-700', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
-<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-701" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-701', 'doctype', 'link-697');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-702" class="py-name"><a title="lxml.etree.DTD.name
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-696', 'name', 'link-620');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1612"></a><tt class="py-lineno">1612</tt>  <tt class="py-line">                    <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-697" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-697', 'doctype', 'link-693');">doctype</a></tt><tt class="py-op">(</tt><tt id="link-698" class="py-name"><a title="lxml.etree.DTD.name
 lxml.etree._Entity.name
 lxml.html.InputMixin.name
-lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-702', 'name', 'link-624');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('link-698', 'name', 'link-620');">name</a></tt><tt class="py-op">,</tt> <tt class="py-name">pubid</tt><tt class="py-op">,</tt> <tt class="py-name">system</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
 <a name="L1613"></a><tt class="py-lineno">1613</tt>  <tt class="py-line">                <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_doctype</tt> <tt class="py-op">=</tt> <tt class="py-name">None</tt> </tt>
 </div><a name="L1614"></a><tt class="py-lineno">1614</tt>  <tt class="py-line"> </tt>
 <a name="L1615"></a><tt class="py-lineno">1615</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
@@ -2941,7 +2921,7 @@ lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('li
 <a name="L1628"></a><tt class="py-lineno">1628</tt>  <tt class="py-line">            <tt class="py-op">)</tt> </tt>
 </div><a name="L1629"></a><tt class="py-lineno">1629</tt>  <tt class="py-line"> </tt>
 <a name="L1630"></a><tt class="py-lineno">1630</tt>  <tt class="py-line">    <tt class="py-comment"># sentinel, if doctype is redefined in a subclass</tt> </tt>
-<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">    <tt class="py-name">__doctype</tt> <tt class="py-op">=</tt> <tt id="link-703" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-703', 'doctype', 'link-697');">doctype</a></tt> </tt>
+<a name="L1631"></a><tt class="py-lineno">1631</tt>  <tt class="py-line">    <tt class="py-name">__doctype</tt> <tt class="py-op">=</tt> <tt id="link-699" class="py-name"><a title="lxml.etree.DocInfo.doctype" class="py-name" href="#" onclick="return doclink('link-699', 'doctype', 'link-693');">doctype</a></tt> </tt>
 <a name="L1632"></a><tt class="py-lineno">1632</tt>  <tt class="py-line"> </tt>
 <a name="L1633"></a><tt class="py-lineno">1633</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
 <a name="L1634"></a><tt class="py-lineno">1634</tt>  <tt class="py-line">    <tt class="py-comment"># Feeds data to the parser.</tt> </tt>
@@ -2950,9 +2930,9 @@ lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('li
 <a name="L1637"></a><tt class="py-lineno">1637</tt>  <tt class="py-line"> </tt>
 <a name="XMLParser.feed"></a><div id="XMLParser.feed-def"><a name="L1638"></a><tt class="py-lineno">1638</tt> <a class="py-toggle" href="#" id="XMLParser.feed-toggle" onclick="return toggle('XMLParser.feed');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#feed">feed</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">data</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser.feed-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.feed-expanded"><a name="L1639"></a><tt class="py-lineno">1639</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
-<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt><tt class="py-op">(</tt><tt id="link-704" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-704', 'data', 'link-126');">data</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
-<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-705" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-705', 'v', 'link-276');">v</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-706" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-706', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1640"></a><tt class="py-lineno">1640</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt><tt class="py-op">(</tt><tt id="link-700" class="py-name"><a title="lxml.etree.TreeBuilder.data" class="py-name" href="#" onclick="return doclink('link-700', 'data', 'link-126');">data</a></tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L1641"></a><tt class="py-lineno">1641</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-701" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-701', 'v', 'link-276');">v</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1642"></a><tt class="py-lineno">1642</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-702" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-702', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt> </tt>
 </div><a name="L1643"></a><tt class="py-lineno">1643</tt>  <tt class="py-line"> </tt>
 <a name="L1644"></a><tt class="py-lineno">1644</tt>  <tt class="py-line">    <tt class="py-comment">##</tt> </tt>
 <a name="L1645"></a><tt class="py-lineno">1645</tt>  <tt class="py-line">    <tt class="py-comment"># Finishes feeding data to the parser.</tt> </tt>
@@ -2963,22 +2943,22 @@ lxml.objectify.PyType.name" class="py-name" href="#" onclick="return doclink('li
 <a name="XMLParser.close"></a><div id="XMLParser.close-def"><a name="L1650"></a><tt class="py-lineno">1650</tt> <a class="py-toggle" href="#" id="XMLParser.close-toggle" onclick="return toggle('XMLParser.close');">-</a><tt class="py-line">    <tt class="py-keyword">def</tt> <a class="py-def-name" href="xml.etree.ElementTree.XMLParser-class.html#close">close</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
 </div><div id="XMLParser.close-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="XMLParser.close-expanded"><a name="L1651"></a><tt class="py-lineno">1651</tt>  <tt class="py-line">        <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L1652"></a><tt class="py-lineno">1652</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt><tt class="py-op">.</tt><tt class="py-name">Parse</tt><tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-comment"># end of data</tt> </tt>
-<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-707" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-707', 'v', 'link-276');">v</a></tt><tt class="py-op">:</tt> </tt>
-<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-708" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-708', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt> </tt>
-<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-709" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-709', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-710" class="py-name"><a title="lxml.etree.TreeBuilder.close
-lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-710', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
-<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-711" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-711', 'target', 'link-104');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-comment"># get rid of circular references</tt> </tt>
+<a name="L1653"></a><tt class="py-lineno">1653</tt>  <tt class="py-line">        <tt class="py-keyword">except</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_error</tt><tt class="py-op">,</tt> <tt id="link-703" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-703', 'v', 'link-276');">v</a></tt><tt class="py-op">:</tt> </tt>
+<a name="L1654"></a><tt class="py-lineno">1654</tt>  <tt class="py-line">            <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_raiseerror</tt><tt class="py-op">(</tt><tt id="link-704" class="py-name"><a title="lxml.tests.test_objectify.v" class="py-name" href="#" onclick="return doclink('link-704', 'v', 'link-276');">v</a></tt><tt class="py-op">)</tt> </tt>
+<a name="L1655"></a><tt class="py-lineno">1655</tt>  <tt class="py-line">        <tt class="py-name">tree</tt> <tt class="py-op">=</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-705" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-705', 'target', 'link-104');">target</a></tt><tt class="py-op">.</tt><tt id="link-706" class="py-name"><a title="lxml.etree.TreeBuilder.close
+lxml.etree._FeedParser.close" class="py-name" href="#" onclick="return doclink('link-706', 'close', 'link-133');">close</a></tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1656"></a><tt class="py-lineno">1656</tt>  <tt class="py-line">        <tt class="py-keyword">del</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt id="link-707" class="py-name"><a title="lxml.etree._ProcessingInstruction.target" class="py-name" href="#" onclick="return doclink('link-707', 'target', 'link-104');">target</a></tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">_parser</tt> <tt class="py-comment"># get rid of circular references</tt> </tt>
 <a name="L1657"></a><tt class="py-lineno">1657</tt>  <tt class="py-line">        <tt class="py-keyword">return</tt> <tt class="py-name">tree</tt> </tt>
 </div></div><a name="L1658"></a><tt class="py-lineno">1658</tt>  <tt class="py-line"> </tt>
 <a name="L1659"></a><tt class="py-lineno">1659</tt>  <tt class="py-line"><tt class="py-comment"># compatibility</tt> </tt>
-<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"><tt class="py-name">XMLTreeBuilder</tt> <tt class="py-op">=</tt> <tt id="link-712" class="py-name"><a title="lxml.etree.XMLParser
+<a name="L1660"></a><tt class="py-lineno">1660</tt>  <tt class="py-line"><tt class="py-name">XMLTreeBuilder</tt> <tt class="py-op">=</tt> <tt id="link-708" class="py-name"><a title="lxml.etree.XMLParser
 lxml.tests.test_elementtree._ETreeTestCaseBase.XMLParser
-xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-712', 'XMLParser', 'link-123');">XMLParser</a></tt> </tt>
+xml.etree.ElementTree.XMLParser" class="py-name" href="#" onclick="return doclink('link-708', 'XMLParser', 'link-123');">XMLParser</a></tt> </tt>
 <a name="L1661"></a><tt class="py-lineno">1661</tt>  <tt class="py-line"> </tt>
 <a name="L1662"></a><tt class="py-lineno">1662</tt>  <tt class="py-line"><tt class="py-comment"># workaround circular import.</tt> </tt>
 <a name="L1663"></a><tt class="py-lineno">1663</tt>  <tt class="py-line"><tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
 <a name="L1664"></a><tt class="py-lineno">1664</tt>  <tt class="py-line">    <tt class="py-keyword">from</tt> <tt class="py-name">ElementC14N</tt> <tt class="py-keyword">import</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
-<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">    <tt id="link-713" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-713', '_serialize', 'link-166');">_serialize</a></tt><tt class="py-op">[</tt><tt class="py-string">"c14n"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
+<a name="L1665"></a><tt class="py-lineno">1665</tt>  <tt class="py-line">    <tt id="link-709" class="py-name"><a title="xml.etree.ElementTree._serialize" class="py-name" href="#" onclick="return doclink('link-709', '_serialize', 'link-166');">_serialize</a></tt><tt class="py-op">[</tt><tt class="py-string">"c14n"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">_serialize_c14n</tt> </tt>
 <a name="L1666"></a><tt class="py-lineno">1666</tt>  <tt class="py-line"><tt class="py-keyword">except</tt> <tt class="py-name">ImportError</tt><tt class="py-op">:</tt> </tt>
 <a name="L1667"></a><tt class="py-lineno">1667</tt>  <tt class="py-line">    <tt class="py-keyword">pass</tt> </tt>
 <a name="L1668"></a><tt class="py-lineno">1668</tt>  <tt class="py-line"> </tt><script type="text/javascript">
@@ -3019,7 +2999,7 @@ expandto(location.href);
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:10 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:13 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 2baa60dbb8d4126e7ce10c7733bdb6d66d30447e..40c38b2d9ad9184e2d6b3274b79bfb0bf7418eff 100644 (file)
@@ -729,7 +729,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 71579255cfcc53145e696b5eb5c8bac2a4fb89fe..7b330641f05021eb7bd0ba98444ad827ad1bd892 100644 (file)
@@ -423,7 +423,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 8842b65ff31631144521eab1ce1273c1ba1c45f4..8b52e7f5e5f0afa8f21381ba2dab083142f8ab94 100644 (file)
@@ -192,7 +192,7 @@ exceptions.BaseException --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 96bd73e8ce959f82764d30913ac17b1b88276783..a65759b65e0f29c5fbf7ea16f6515f264b9f09c1 100644 (file)
@@ -324,7 +324,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index a6df05ba6dd455f5d1e5bb295f0bad6629ee3236..2d28602fbb3ae1ff534b6fb18dac802ffad38142 100644 (file)
@@ -309,7 +309,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 913507eccf793964ad86af35418c37f3586aa0e4..f6d8b36853352547e1d7adfce207a90d61ab598e 100644 (file)
@@ -475,7 +475,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 66e61375055fd1aec988c2daa743433abaeaeeab..259ac7af29e4faecc7ee923a0e66208c541b554c 100644 (file)
@@ -263,7 +263,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 1e6689754256bf577ece9773441c022ad9735b75..6d8ef195d9cce2b6665ab8c16b84028f76b981fb 100644 (file)
@@ -241,7 +241,7 @@ object --+
 <table border="0" cellpadding="0" cellspacing="0" width="100%%">
   <tr>
     <td align="left" class="footer">
-    Generated by Epydoc 3.0.1 on Sun Jul 28 14:02:08 2013
+    Generated by Epydoc 3.0.1 on Thu Nov  7 17:44:10 2013
     </td>
     <td align="right" class="footer">
       <a target="mainFrame" href="http://epydoc.sourceforge.net"
index 39cb58576c98bf5d6ff10ee4b472617bc7730edd..5c2e69a1dda67ffe739ff72eba6300d666b672d0 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="how-to-build-lxml-from-source">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu current" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to build lxml from source</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu current" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to build lxml from source</h1>
 
 <p>To build lxml from source, you need libxml2 and libxslt properly
 installed, <em>including the header files</em>.  These are likely shipped in
@@ -88,6 +88,13 @@ python setup.py build_ext -i --with-cython
 <pre class="literal-block">
 make inplace
 </pre>
+<p>To speed up the build in test environments (e.g. on a continuous
+integration server), set the <tt class="docutils literal">CFLAGS</tt> environment variable to
+disable C compiler optimisations (e.g. "-O0" for gcc, that's
+minus-oh-zero), for example:</p>
+<pre class="literal-block">
+CFLAGS="-O0"  make inplace
+</pre>
 <p>If you get errors about missing header files (e.g. <tt class="docutils literal">Python.h</tt> or
 <tt class="docutils literal">libxml/xmlversion.h</tt>) then you need to make sure the development
 packages of Python, libxml2 and libxslt are properly installed.  On
@@ -116,9 +123,7 @@ Type "help", "copyright", "credits" or "license" for more information.
 &gt;&gt;&gt;
 </pre>
 <p>To make sure everything gets recompiled cleanly after changes, you can
-run <tt class="docutils literal">make clean</tt> or delete the file <tt class="docutils literal">src/lxml/etree.c</tt>.  Distutils
-do not automatically pick up changes that affect files other than the
-main file <tt class="docutils literal">src/lxml/etree.pyx</tt>.</p>
+run <tt class="docutils literal">make clean</tt> or delete the file <tt class="docutils literal">src/lxml/etree.c</tt>.</p>
 </div>
 <div class="section" id="running-the-tests-and-reporting-errors">
 <h1>Running the tests and reporting errors</h1>
@@ -305,7 +310,7 @@ installed using <tt class="docutils literal">dpkg <span class="pre">-i</span></t
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 46fdb41999cc9efd032e9021602aec93974ba051..c7eeb2292bed60d1bd09a0a2a06c5245ebd83e71 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="the-public-c-api-of-lxml-etree">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu current" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The public C-API of lxml.etree</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu current" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The public C-API of lxml.etree</h1>
 
 <p>As of version 1.1, lxml.etree provides a public C-API.  This allows external
 C extensions to efficiently access public functions and classes of lxml,
@@ -94,7 +94,7 @@ includes may not be sufficient.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
diff --git a/doc/html/changes-3.2.3.html b/doc/html/changes-3.2.3.html
deleted file mode 100644 (file)
index 08ecd76..0000000
+++ /dev/null
@@ -1,2569 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="generator" content="Docutils 0.10: http://docutils.sourceforge.net/" />
-<title>lxml changelog</title>
-<link rel="stylesheet" href="style.css" type="text/css" />
-</head>
-<body>
-<div class="document" id="lxml-changelog">
-<h1 class="title">lxml changelog</h1>
-
-<div class="section" id="id1">
-<h1>3.2.3 (2013-07-28)</h1>
-<div class="section" id="bugs-fixed">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fix support for Python 2.4 which was lost in 3.2.2.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id2">
-<h1>3.2.2 (2013-07-28)</h1>
-<div class="section" id="features-added">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id3">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185701">LP#1185701</a>: spurious XMLSyntaxError after finishing iterparse().</li>
-<li>Crash in lxml.objectify during xsi annotation.</li>
-</ul>
-</div>
-<div class="section" id="other-changes">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Return values of user provided element class lookup methods are now
-validated against the type of the XML node they represent to prevent
-API class mismatches.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id4">
-<h1>3.2.1 (2013-05-11)</h1>
-<div class="section" id="id5">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The methods <tt class="docutils literal">apply_templates()</tt> and <tt class="docutils literal">process_children()</tt> of XSLT
-extension elements have gained two new boolean options <tt class="docutils literal">elements_only</tt>
-and <tt class="docutils literal">remove_blank_text</tt> that discard either all strings or whitespace-only
-strings from the result list.</li>
-</ul>
-</div>
-<div class="section" id="id6">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When moving Elements to another tree, the namespace cleanup mechanism
-no longer drops namespace prefixes from attributes for which it finds
-a default namespace declaration, to prevent them from appearing as
-unnamespaced attributes after serialisation.</li>
-<li>Returning non-type objects from a custom class lookup method could lead
-to a crash.</li>
-<li>Instantiating and using subtypes of Comments and ProcessingInstructions
-crashed.</li>
-</ul>
-</div>
-<div class="section" id="id7">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id8">
-<h1>3.2.0 (2013-04-28)</h1>
-<div class="section" id="id9">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id10">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/690319">LP#690319</a>: Leading whitespace could change the behaviour of the string
-parsing functions in <tt class="docutils literal">lxml.html</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/599318">LP#599318</a>: The string parsing functions in <tt class="docutils literal">lxml.html</tt> are more robust
-in the face of uncommon HTML content like framesets or missing body tags.
-Patch by Stefan Seelmann.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/712941">LP#712941</a>: I/O errors while trying to access files with paths that contain
-non-ASCII characters could raise <tt class="docutils literal">UnicodeDecodeError</tt> instead of properly
-reporting the <tt class="docutils literal">IOError</tt>.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/673205">LP#673205</a>: Parsing from in-memory strings disabled network access in the
-default parser and made subsequent attempts to parse from a URL fail.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/971754">LP#971754</a>: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
-of overwriting the current value.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/715687">LP#715687</a>: lxml.html.clean no longer discards scripts that are explicitly
-allowed by the user provided whitelist.  Patch by Christine Koppelt.</li>
-</ul>
-</div>
-<div class="section" id="id11">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id12">
-<h1>3.1.2 (2013-04-12)</h1>
-<div class="section" id="id13">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id14">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1136509">LP#1136509</a>: Passing attributes through the namespace-unaware API of
-the sax bridge (i.e. the <tt class="docutils literal">handler.startElement()</tt> method) failed
-with a <tt class="docutils literal">TypeError</tt>.  Patch by Mike Bayer.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1123074">LP#1123074</a>: Fix serialisation error in XSLT output when converting
-the result tree to a Unicode string.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/105">GH#105</a>: Replace illegal usage of <tt class="docutils literal">xmlBufLength()</tt> in libxml2 2.9.0
-by properly exported API function <tt class="docutils literal">xmlBufUse()</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id15">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id16">
-<h1>3.1.1 (2013-03-29)</h1>
-<div class="section" id="id17">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id18">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1160386">LP#1160386</a>: Write access to <tt class="docutils literal">lxml.html.FormElement.fields</tt> raised
-an AttributeError in Py3.</li>
-<li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
-</ul>
-</div>
-<div class="section" id="id19">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
-from the module dict.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id20">
-<h1>3.1.0 (2013-02-10)</h1>
-<div class="section" id="id21">
-<h2>Features added</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/89">GH#89</a>: lxml.html.clean allows overriding the set of attributes that it
-considers 'safe'.  Patch by Francis Devereux.</li>
-</ul>
-</div>
-<div class="section" id="id22">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1104370">LP#1104370</a>: <tt class="docutils literal">copy.copy(el.attrib)</tt> raised an exception.  It now returns
-a copy of the attributes as a plain Python dict.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/95">GH#95</a>: When used with namespace prefixes, the  <tt class="docutils literal"><span class="pre">el.find*()</span></tt> methods
-always used the first namespace mapping that was provided for each
-path expression instead of using the one that was actually passed
-in for the current run.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1092521">LP#1092521</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/91">GH#91</a>: Fix undefined C symbol in Python runtimes compiled
-without threading support.  Patch by Ulrich Seidl.</li>
-</ul>
-</div>
-<div class="section" id="id23">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="beta1-2012-12-21">
-<h1>3.1beta1 (2012-12-21)</h1>
-<div class="section" id="id24">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New build-time option <tt class="docutils literal"><span class="pre">--with-unicode-strings</span></tt> for Python 2 that
-makes the API always return Unicode strings for names and text
-instead of byte strings for plain ASCII content.</li>
-<li>New incremental XML file writing API <tt class="docutils literal">etree.xmlfile()</tt>.</li>
-<li>E factory in lxml.objectify is callable to simplify the creation of
-tags with non-identifier names without having to resort to getattr().</li>
-</ul>
-</div>
-<div class="section" id="id25">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When starting from a non-namespaced element in lxml.objectify, searching
-for a child without explicitly specifying a namespace incorrectly found
-namespaced elements with the requested local name, instead of restricting
-the search to non-namespaced children.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/85">GH#85</a>: Deprecation warnings were fixed for Python 3.x.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/33">GH#33</a>: lxml.html.fromstring() failed to accept bytes input in Py3.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1080792">LP#1080792</a>: Static build of libxml2 2.9.0 failed due to missing file.</li>
-</ul>
-</div>
-<div class="section" id="id26">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
-removed from the module API of lxml.objectify.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1075622">LP#1075622</a>: lxml.builder is faster for adding text to elements with
-many children.  Patch by Anders Hammarquist.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id27">
-<h1>3.0.2 (2012-12-14)</h1>
-<div class="section" id="id28">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id29">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fix crash during interpreter shutdown by switching to Cython 0.17.3 for building.</li>
-</ul>
-</div>
-<div class="section" id="id30">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id31">
-<h1>3.0.1 (2012-10-14)</h1>
-<div class="section" id="id32">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id33">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065924">LP#1065924</a>: Element proxies could disappear during garbage collection
-in PyPy without proper cleanup.</li>
-<li><a class="reference external" href="https://github.com/lxml/lxml/issues/71">GH#71</a>: Failure to work with libxml2 2.6.x.</li>
-<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065139">LP#1065139</a>: static MacOS-X build failed in Py3.</li>
-</ul>
-</div>
-<div class="section" id="id34">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id35">
-<h1>3.0 (2012-10-08)</h1>
-<div class="section" id="id36">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id37">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>End-of-file handling was incorrect in iterparse() when reading from
-a low-level C file stream and failed in libxml2 2.9.0 due to its
-improved consistency checks.</li>
-</ul>
-</div>
-<div class="section" id="id38">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The build no longer uses Cython by default unless the generated C files
-are missing.  To use Cython, pass the option &quot;--with-cython&quot;.  To ignore
-the fatal build error when Cython is required but not available (e.g. to
-run special setup.py commands that do not actually run a build), pass
-&quot;--without-cython&quot;.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2012-09-26">
-<h1>3.0beta1 (2012-09-26)</h1>
-<div class="section" id="id39">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Python level access to (optional) libxml2 memory debugging features
-to simplify debugging of memory leaks etc.</li>
-</ul>
-</div>
-<div class="section" id="id40">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fix a memory leak in XPath by switching to Cython 0.17.1.</li>
-<li>Some tests were adapted to work with PyPy.</li>
-</ul>
-</div>
-<div class="section" id="id41">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha2-2012-08-23">
-<h1>3.0alpha2 (2012-08-23)</h1>
-<div class="section" id="id42">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">.iter()</tt> method of elements now accepts <tt class="docutils literal">tag</tt> arguments like
-<tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt> to search for elements with a given local name in any
-namespace. With this addition, all combinations of wildcards now work
-as expected:
-<tt class="docutils literal">&quot;{ns}name&quot;</tt>, <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{ns}*&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{}*&quot;</span></tt>
-and <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.  Note that <tt class="docutils literal">&quot;name&quot;</tt> is equivalent to <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>,
-but <tt class="docutils literal">&quot;*&quot;</tt> is <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.
-The same change applies to the <tt class="docutils literal">.getiterator()</tt>, <tt class="docutils literal">.itersiblings()</tt>,
-<tt class="docutils literal">.iterancestors()</tt>, <tt class="docutils literal">.iterdescendants()</tt>, <tt class="docutils literal">.iterchildren()</tt>
-and <tt class="docutils literal">.itertext()</tt> methods;the <tt class="docutils literal">strip_attributes()</tt>,
-<tt class="docutils literal">strip_elements()</tt> and <tt class="docutils literal">strip_tags()</tt> functions as well as the
-<tt class="docutils literal">iterparse()</tt> class.  Patch by Simon Sapin.</li>
-<li>C14N allows specifying the inclusive prefixes to be promoted
-to top-level during exclusive serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id43">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
-failed to read the entire string.</li>
-</ul>
-</div>
-<div class="section" id="id44">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="alpha1-2012-07-31">
-<h1>3.0alpha1 (2012-07-31)</h1>
-<div class="section" id="id45">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Initial support for building in PyPy (through cpyext).</li>
-<li>DTD objects gained an API that allows read access to their
-declarations.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> gained support for parsing line-by-line (e.g.
-from grep output) and for surrounding the output with a new root
-tag.</li>
-<li><tt class="docutils literal"><span class="pre">E-factory</span></tt> in <tt class="docutils literal">lxml.builder</tt> accepts subtypes of known data
-types (such as string subtypes) when building elements around them.</li>
-<li>Tree iteration and <tt class="docutils literal">iterparse()</tt> with a selective <tt class="docutils literal">tag</tt>
-argument supports passing a set of tags.  Tree nodes will be
-returned by the iterators if they match any of the tags.</li>
-</ul>
-</div>
-<div class="section" id="id46">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods in <tt class="docutils literal">lxml.objectify</tt> no longer use XPath
-internally, which makes them faster in many cases (especially when
-short circuiting after a single or couple of elements) and fixes
-some behavioural differences compared to <tt class="docutils literal">lxml.etree</tt>.  Note that
-this means that they no longer support arbitrary XPath expressions
-but only the subset that the <tt class="docutils literal">ElementPath</tt> language supports.
-The previous implementation was also redundant with the normal
-XPath support, which can be used as a replacement.</li>
-<li><tt class="docutils literal"><span class="pre">el.find('*')</span></tt> could accidentally return a comment or processing
-instruction that happened to be in the wrong spot.  (Same for the
-other <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods.)</li>
-<li>The error logging is less intrusive and avoids a global setup where
-possible.</li>
-<li>Fixed undefined names in html5lib parser.</li>
-<li><tt class="docutils literal">xpathgrep.py</tt> did not work in Python 3.</li>
-<li><tt class="docutils literal">Element.attrib.update()</tt> did not accept an <tt class="docutils literal">attrib</tt> of
-another Element as parameter.</li>
-<li>For subtypes of <tt class="docutils literal">ElementBase</tt> that make the <tt class="docutils literal">.text</tt> or <tt class="docutils literal">.tail</tt>
-properties immutable (as in objectify, for example), inserting text
-when creating Elements through the E-Factory feature of the class
-constructor would fail with an exception, stating that the text
-cannot be modified.</li>
-</ul>
-</div>
-<div class="section" id="id47">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The code base was overhauled to properly use 'const' where the API
-of libxml2 and libxslt requests it.  This also has an impact on the
-public C-API of lxml itself, as defined in <tt class="docutils literal">etreepublic.pxd</tt>, as
-well as the provided declarations in the <tt class="docutils literal">lxml/includes/</tt> directory.
-Code that uses these declarations may have to be adapted.  On the
-plus side, this fixes several C compiler warnings, also for user
-code, thus making it easier to spot real problems again.</li>
-<li>The functionality of &quot;lxml.cssselect&quot; was moved into a separate PyPI
-package called &quot;cssselect&quot;.  To continue using it, you must install
-that package separately.  The &quot;lxml.cssselect&quot; module is still
-available and provides the same interface, provided the &quot;cssselect&quot;
-package can be imported at runtime.</li>
-<li>Element attributes passed in as an <tt class="docutils literal">attrib</tt> dict or as keyword
-arguments are now sorted by (namespaced) name before being created
-to make their order predictable for serialisation and iteration.
-Note that adding or deleting attributes afterwards does not take
-that order into account, i.e. setting a new attribute appends it
-after the existing ones.</li>
-<li>Several classes that are for internal use only were removed
-from the <tt class="docutils literal">lxml.etree</tt> module dict:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
-_ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
-__ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
-_ClassNamespaceRegistry, _FunctionNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _ParserContext, _PythonSaxParserTarget,
-_TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
-_ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
-_OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
-_ParserSchemaValidationContext, _XPathContext,
-_XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam</tt></li>
-<li>Several internal classes can no longer be inherited from:
-<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
-_IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
-_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
-_FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
-_ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
-_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
-_AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
-_XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam,
-_XSLTResultTree, _XSLTProcessingInstruction</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id48">
-<h1>2.3.6 (2012-09-28)</h1>
-<div class="section" id="id49">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id50">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
-failed to read the entire string.</li>
-</ul>
-</div>
-<div class="section" id="id51">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id52">
-<h1>2.3.5 (2012-07-31)</h1>
-<div class="section" id="id53">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id54">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when merging text nodes in <tt class="docutils literal">element.remove()</tt>.</li>
-<li>Crash in sax/target parser when reporting empty doctype.</li>
-</ul>
-</div>
-<div class="section" id="id55">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id56">
-<h1>2.3.4 (2012-03-26)</h1>
-<div class="section" id="id57">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id58">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when building an nsmap (Element property) with empty
-namespace URIs.</li>
-<li>Crash due to race condition when errors (or user messages) occur
-during threaded XSLT processing.</li>
-<li>XSLT stylesheet compilation could ignore compilation errors.</li>
-</ul>
-</div>
-<div class="section" id="id59">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id60">
-<h1>2.3.3 (2012-01-04)</h1>
-<div class="section" id="id61">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.tostring()</tt> gained new serialisation options
-<tt class="docutils literal">with_tail</tt> and <tt class="docutils literal">doctype</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id62">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
-requesting start events.</li>
-<li>Fixed parsing of more selectors in cssselect.  Whitespace before
-pseudo-elements and pseudo-classes is significant as it is a
-descendant combinator.
-&quot;E :pseudo&quot; should parse the same as &quot;E *:pseudo&quot;, not &quot;E:pseudo&quot;.
-Patch by Simon Sapin.</li>
-<li>lxml.html.diff no longer raises an exception when hitting
-'img' tags without 'src' attribute.</li>
-</ul>
-</div>
-<div class="section" id="id63">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id64">
-<h1>2.3.2 (2011-11-11)</h1>
-<div class="section" id="id65">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
-<tt class="docutils literal">cleanup_namespaces</tt> to remove the objectify namespace
-declarations (and generally clean up the namespace declarations)
-after removing the type annotations.</li>
-<li><tt class="docutils literal">lxml.objectify</tt> gained its own <tt class="docutils literal">SubElement()</tt> function as a
-copy of <tt class="docutils literal">etree.SubElement</tt> to avoid an otherwise redundant import
-of <tt class="docutils literal">lxml.etree</tt> on the user side.</li>
-</ul>
-</div>
-<div class="section" id="id66">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed the &quot;descendant&quot; bug in cssselect a second time (after a first
-fix in lxml 2.3.1).  The previous change resulted in a serious
-performance regression for the XPath based evaluation of the
-translated expression.  Note that this breaks the usage of some of
-the generated XPath expressions as XSLT location paths that
-previously worked in 2.3.1.</li>
-<li>Fixed parsing of some selectors in cssselect. Whitespace after combinators
-&quot;&gt;&quot;, &quot;+&quot; and &quot;~&quot; is now correctly ignored. Previously is was parsed as
-a descendant combinator. For example, &quot;div&gt; .foo&quot; was parsed the same as
-&quot;div&gt;* .foo&quot; instead of &quot;div&gt;.foo&quot;. Patch by Simon Sapin.</li>
-</ul>
-</div>
-<div class="section" id="id67">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id68">
-<h1>2.3.1 (2011-09-25)</h1>
-<div class="section" id="id69">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New option <tt class="docutils literal">kill_tags</tt> in <tt class="docutils literal">lxml.html.clean</tt> to remove specific
-tags and their content (i.e. their whole subtree).</li>
-<li><tt class="docutils literal">pi.get()</tt> and <tt class="docutils literal">pi.attrib</tt> on processing instructions to parse
-pseudo-attributes from the text content of processing instructions.</li>
-<li><tt class="docutils literal">lxml.get_include()</tt> returns a list of include paths that can be
-used to compile external C code against lxml.etree.  This is
-specifically required for statically linked lxml builds when code
-needs to compile against the exact same header file versions as lxml
-itself.</li>
-<li><tt class="docutils literal">Resolver.resolve_file()</tt> takes an additional option
-<tt class="docutils literal">close_file</tt> that configures if the file(-like) object will be
-closed after reading or not.  By default, the file will be closed,
-as the user is not expected to keep a reference to it.</li>
-</ul>
-</div>
-<div class="section" id="id70">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>HTML cleaning didn't remove 'data:' links.</li>
-<li>The html5lib parser integration now uses the 'official'
-implementation in html5lib itself, which makes it work with newer
-releases of the library.</li>
-<li>In <tt class="docutils literal">lxml.sax</tt>, <tt class="docutils literal">endElementNS()</tt> could incorrectly reject a plain
-tag name when the corresponding start event inferred the same plain
-tag name to be in the default namespace.</li>
-<li>When an open file-like object is passed into <tt class="docutils literal">parse()</tt> or
-<tt class="docutils literal">iterparse()</tt>, the parser will no longer close it after use.  This
-reverts a change in lxml 2.3 where all files would be closed.  It is
-the users responsibility to properly close the file(-like) object,
-also in error cases.</li>
-<li>Assertion error in lxml.html.cleaner when discarding top-level elements.</li>
-<li>In lxml.cssselect, use the xpath 'A//B' (short for
-'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for
-the css descendant selector ('A B').  This makes a few edge cases
-like <tt class="docutils literal">&quot;div <span class="pre">*:last-child&quot;</span></tt> consistent with the selector behavior in
-WebKit and Firefox, and makes more css expressions valid location
-paths (for use in xsl:template match).</li>
-<li>In lxml.html, non-selected <tt class="docutils literal">&lt;option&gt;</tt> tags no longer show up in the
-collected form values.</li>
-<li>Adding/removing <tt class="docutils literal">&lt;option&gt;</tt> values to/from a multiple select form
-field properly selects them and unselects them.</li>
-</ul>
-</div>
-<div class="section" id="id71">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Static builds can specify the download directory with the
-<tt class="docutils literal"><span class="pre">--download-dir</span></tt> option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id72">
-<h1>2.3 (2011-02-06)</h1>
-<div class="section" id="id73">
-<h2>Features added</h2>
-<ul class="simple">
-<li>When looking for children, <tt class="docutils literal">lxml.objectify</tt> takes '{}tag' as
-meaning an empty namespace, as opposed to the parent namespace.</li>
-</ul>
-</div>
-<div class="section" id="id74">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>When finished reading from a file-like object, the parser
-immediately calls its <tt class="docutils literal">.close()</tt> method.</li>
-<li>When finished parsing, <tt class="docutils literal">iterparse()</tt> immediately closes the input
-file.</li>
-<li>Work-around for libxml2 bug that can leave the HTML parser in a
-non-functional state after parsing a severly broken document (fixed
-in libxml2 2.7.8).</li>
-<li><tt class="docutils literal">marque</tt> tag in HTML cleanup code is correctly named <tt class="docutils literal">marquee</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id75">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Some public functions in the Cython-level C-API have more explicit
-return types.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2010-09-06">
-<h1>2.3beta1 (2010-09-06)</h1>
-<div class="section" id="id76">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id77">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li><tt class="docutils literal">XMLID()</tt> function was missing the optional <tt class="docutils literal">parser</tt> and
-<tt class="docutils literal">base_url</tt> parameters.</li>
-<li>Searching for wildcard tags in <tt class="docutils literal">iterparse()</tt> was broken in Py3.</li>
-<li><tt class="docutils literal">lxml.html.open_in_browser()</tt> didn't work in Python 3 due to the
-use of os.tempnam.  It now takes an optional 'encoding' parameter.</li>
-</ul>
-</div>
-<div class="section" id="id78">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="alpha2-2010-07-24">
-<h1>2.3alpha2 (2010-07-24)</h1>
-<div class="section" id="id79">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id80">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XSLT when generating text-only result documents with a
-stylesheet created in a different thread.</li>
-</ul>
-</div>
-<div class="section" id="id81">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
-(following ElementTree 1.3).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha1-2010-06-19">
-<h1>2.3alpha1 (2010-06-19)</h1>
-<div class="section" id="id82">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Keyword argument <tt class="docutils literal">namespaces</tt> in <tt class="docutils literal">lxml.cssselect.CSSSelector()</tt>
-to pass a prefix-to-namespace mapping for the selector.</li>
-<li>New function <tt class="docutils literal">lxml.etree.register_namespace(prefix, uri)</tt> that
-globally registers a namespace prefix for a namespace that newly
-created Elements in that namespace will use automatically.  Follows
-ElementTree 1.3.</li>
-<li>Support 'unicode' string name as encoding parameter in
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>Support 'c14n' serialisation method in <tt class="docutils literal">ElementTree.write()</tt> and
-<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
-<li>The ElementPath expression syntax (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) was extended to
-match the upcoming ElementTree 1.3 that will ship in the standard
-library of Python 3.2/2.7.  This includes extended support for
-predicates as well as namespace prefixes (as known from XPath).</li>
-<li>During regular XPath evaluation, various ESXLT functions are
-available within their namespace when using libxslt 1.1.26 or later.</li>
-<li>Support passing a readily configured logger instance into
-<tt class="docutils literal">PyErrorLog</tt>, instead of a logger name.</li>
-<li>On serialisation, the new <tt class="docutils literal">doctype</tt> parameter can be used to
-override the DOCTYPE (internal subset) of the document.</li>
-<li>New parameter <tt class="docutils literal">output_parent</tt> to <tt class="docutils literal">XSLTExtension.apply_templates()</tt>
-to append the resulting content directly to an output element.</li>
-<li><tt class="docutils literal">XSLTExtension.process_children()</tt> to process the content of the
-XSLT extension element itself.</li>
-<li>ISO-Schematron support based on the de-facto Schematron reference
-'skeleton implementation'.</li>
-<li>XSLT objects now take XPath object as <tt class="docutils literal">__call__</tt> stylesheet
-parameters.</li>
-<li>Enable path caching in ElementPath (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) to avoid parsing
-overhead.</li>
-<li>Setting the value of a namespaced attribute always uses a prefixed
-namespace instead of the default namespace even if both declare the
-same namespace URI.  This avoids serialisation problems when an
-attribute from a default namespace is set on an element from a
-different namespace.</li>
-<li>XSLT extension elements: support for XSLT context nodes other than
-elements: document root, comments, processing instructions.</li>
-<li>Support for strings (in addition to Elements) in node-sets returned
-by extension functions.</li>
-<li>Forms that lack an <tt class="docutils literal">action</tt> attribute default to the base URL of
-the document on submit.</li>
-<li>XPath attribute result strings have an <tt class="docutils literal">attrname</tt> property.</li>
-<li>Namespace URIs get validated against RFC 3986 at the API level
-(required by the XML namespace specification).</li>
-<li>Target parsers show their target object in the <tt class="docutils literal">.target</tt> property
-(compatible with ElementTree).</li>
-</ul>
-</div>
-<div class="section" id="id83">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>API is hardened against invalid proxy instances to prevent crashes
-due to incorrectly instantiated Element instances.</li>
-<li>Prevent crash when instantiating <tt class="docutils literal">CommentBase</tt> and friends.</li>
-<li>Export ElementTree compatible XML parser class as
-<tt class="docutils literal">XMLTreeBuilder</tt>, as it is called in ET 1.2.</li>
-<li>ObjectifiedDataElements in lxml.objectify were not hashable.  They
-now use the hash value of the underlying Python value (string,
-number, etc.) to which they compare equal.</li>
-<li>Parsing broken fragments in lxml.html could fail if the fragment
-contained an orphaned closing '&lt;/div&gt;' tag.</li>
-<li>Using XSLT extension elements around the root of the output document
-crashed.</li>
-<li><tt class="docutils literal">lxml.cssselect</tt> did not distinguish between <tt class="docutils literal"><span class="pre">x[attr=&quot;val&quot;]</span></tt> and
-<tt class="docutils literal">x <span class="pre">[attr=&quot;val&quot;]</span></tt> (with a space).  The latter now matches the
-attribute independent of the element.</li>
-<li>Rewriting multiple links inside of HTML text content could end up
-replacing unrelated content as replacements could impact the
-reported position of subsequent matches.  Modifications are now
-simplified by letting the <tt class="docutils literal">iterlinks()</tt> generator in <tt class="docutils literal">lxml.html</tt>
-return links in reversed order if they appear inside the same text
-node.  Thus, replacements and link-internal modifications no longer
-change the position of links reported afterwards.</li>
-<li>The <tt class="docutils literal">.value</tt> attribute of <tt class="docutils literal">textarea</tt> elements in lxml.html did
-not represent the complete raw value (including child tags etc.). It
-now serialises the complete content on read and replaces the
-complete content by a string on write.</li>
-<li>Target parser didn't call <tt class="docutils literal">.close()</tt> on the target object if
-parsing failed.  Now it is guaranteed that <tt class="docutils literal">.close()</tt> will be
-called after parsing, regardless of the outcome.</li>
-</ul>
-</div>
-<div class="section" id="id84">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.1.2 and later.</li>
-<li>Static MS Windows builds can now download their dependencies
-themselves.</li>
-<li><tt class="docutils literal">Element.attrib</tt> no longer uses a cyclic reference back to its
-Element object.  It therefore no longer requires the garbage
-collector to clean up.</li>
-<li>Static builds include libiconv, in addition to libxml2 and libxslt.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id85">
-<h1>2.2.8 (2010-09-02)</h1>
-<div class="section" id="id86">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in newer libxml2 versions when moving elements between
-documents that had attributes on replaced XInclude nodes.</li>
-<li>Import fix for urljoin in Python 3.1+.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id87">
-<h1>2.2.7 (2010-07-24)</h1>
-<div class="section" id="id88">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XSLT when generating text-only result documents with a
-stylesheet created in a different thread.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id89">
-<h1>2.2.6 (2010-03-02)</h1>
-<div class="section" id="id90">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Fixed several Python 3 regressions by building with Cython 0.11.3.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id91">
-<h1>2.2.5 (2010-02-28)</h1>
-<div class="section" id="id92">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for running XSLT extension elements on the input root node
-(e.g. in a template matching on &quot;/&quot;).</li>
-</ul>
-</div>
-<div class="section" id="id93">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in XPath evaluation when reading smart strings from a document
-other than the original context document.</li>
-<li>Support recent versions of html5lib by not requiring its
-<tt class="docutils literal">XHTMLParser</tt> in <tt class="docutils literal">htmlparser.py</tt> anymore.</li>
-<li>Manually instantiating the custom element classes in
-<tt class="docutils literal">lxml.objectify</tt> could crash.</li>
-<li>Invalid XML text characters were not rejected by the API when they
-appeared in unicode strings directly after non-ASCII characters.</li>
-<li>lxml.html.open_http_urllib() did not work in Python 3.</li>
-<li>The functions <tt class="docutils literal">strip_tags()</tt> and <tt class="docutils literal">strip_elements()</tt> in
-<tt class="docutils literal">lxml.etree</tt> did not remove all occurrences of a tag in all cases.</li>
-<li>Crash in XSLT extension elements when the XSLT context node is not
-an element.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id94">
-<h1>2.2.4 (2009-11-11)</h1>
-<div class="section" id="id95">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Static build of libxml2/libxslt was broken.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id96">
-<h1>2.2.3 (2009-10-30)</h1>
-<div class="section" id="id97">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id98">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
-parser.</li>
-<li>Looking up and deleting attributes without a namespace could hit a
-namespaced attribute of the same name instead.</li>
-<li>Late errors during calls to <tt class="docutils literal">SubElement()</tt> (e.g. attribute related
-ones) could leave a partially initialised element in the tree.</li>
-<li>Modifying trees that contain parsed entity references could result
-in an infinite loop.</li>
-<li>ObjectifiedElement.__setattr__ created an empty-string child element when the
-attribute value was rejected as a non-unicode/non-ascii string</li>
-<li>Syntax errors in <tt class="docutils literal">lxml.cssselect</tt> could result in misleading error
-messages.</li>
-<li>Invalid syntax in CSS expressions could lead to an infinite loop in
-the parser of <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS special character escapes were not properly handled in
-<tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>CSS Unicode escapes were not properly decoded in <tt class="docutils literal">lxml.cssselect</tt>.</li>
-<li>Select options in HTML forms that had no explicit <tt class="docutils literal">value</tt>
-attribute were not handled correctly.  The HTML standard dictates
-that their value is defined by their text content.  This is now
-supported by lxml.html.</li>
-<li>XPath raised a TypeError when finding CDATA sections.  This is now
-fully supported.</li>
-<li>Calling <tt class="docutils literal">help(lxml.objectify)</tt> didn't work at the prompt.</li>
-<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify no longer defines the default
-namespaces when annotation is disabled.</li>
-<li>Feed parser failed to honout the 'recover' option on parse errors.</li>
-<li>Diverting the error logging to Python's logging system was broken.</li>
-</ul>
-</div>
-<div class="section" id="id99">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id100">
-<h1>2.2.2 (2009-06-21)</h1>
-<div class="section" id="id101">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New helper functions <tt class="docutils literal">strip_attributes()</tt>, <tt class="docutils literal">strip_elements()</tt>,
-<tt class="docutils literal">strip_tags()</tt> in lxml.etree to remove attributes/subtrees/tags
-from a subtree.</li>
-</ul>
-</div>
-<div class="section" id="id102">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Namespace cleanup on subtree insertions could result in missing
-namespace declarations (and potentially crashes) if the element
-defining a namespace was deleted and the namespace was not used by
-the top element of the inserted subtree but only in deeper subtrees.</li>
-<li>Raising an exception from a parser target callback didn't always
-terminate the parser.</li>
-<li>Only {true, false, 1, 0} are accepted as the lexical representation for
-BoolElement ({True, False, T, F, t, f} not any more), restoring lxml &lt;= 2.0
-behaviour.</li>
-</ul>
-</div>
-<div class="section" id="id103">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id104">
-<h1>2.2.1 (2009-06-02)</h1>
-<div class="section" id="id105">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Injecting default attributes into a document during XML Schema
-validation (also at parse time).</li>
-<li>Pass <tt class="docutils literal">huge_tree</tt> parser option to disable parser security
-restrictions imposed by libxml2 2.7.</li>
-</ul>
-</div>
-<div class="section" id="id106">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The script for statically building libxml2 and libxslt didn't work
-in Py3.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> also passes invalid schema documents on to libxml2
-for parsing (which could lead to a crash before release 2.6.24).</li>
-</ul>
-</div>
-<div class="section" id="id107">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id108">
-<h1>2.2 (2009-03-21)</h1>
-<div class="section" id="id109">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
-<tt class="docutils literal">tree.docinfo.standalone</tt> and by passing <tt class="docutils literal">standalone=True/False</tt>
-on serialisation.</li>
-</ul>
-</div>
-<div class="section" id="id110">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing an XML Schema with external imports from a
-filename.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta4-2009-02-27">
-<h1>2.2beta4 (2009-02-27)</h1>
-<div class="section" id="id111">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support strings and instantiable Element classes as child arguments
-to the constructor of custom Element classes.</li>
-<li>GZip compression support for serialisation to files and file-like
-objects.</li>
-</ul>
-</div>
-<div class="section" id="id112">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Deep-copying an ElementTree copied neither its sibling PIs and
-comments nor its internal/external DTD subsets.</li>
-<li>Soupparser failed on broken attributes without values.</li>
-<li>Crash in XSLT when overwriting an already defined attribute using
-<tt class="docutils literal">xsl:attribute</tt>.</li>
-<li>Crash bug in exception handling code under Python 3.  This was due
-to a problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">lxml.html.FormElement._name()</tt> failed for non top-level forms.</li>
-<li><tt class="docutils literal">TAG</tt> special attribute in constructor of custom Element classes
-was evaluated incorrectly.</li>
-</ul>
-</div>
-<div class="section" id="id113">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Official support for Python 3.0.1.</li>
-<li><tt class="docutils literal">Element.findtext()</tt> now returns an empty string instead of None
-for Elements without text content.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2009-02-17">
-<h1>2.2beta3 (2009-02-17)</h1>
-<div class="section" id="id114">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">XSLT.strparam()</tt> class method to wrap quoted string parameters
-that require escaping.</li>
-</ul>
-</div>
-<div class="section" id="id115">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in XPath evaluators.</li>
-<li>Crash when parsing indented XML in one thread and merging it with
-other documents parsed in another thread.</li>
-<li>Setting the <tt class="docutils literal">base</tt> attribute in <tt class="docutils literal">lxml.objectify</tt> from a unicode
-string failed.</li>
-<li>Fixes following changes in Python 3.0.1.</li>
-<li>Minor fixes for Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id116">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The global error log (which is copied into the exception log) is now
-local to a thread, which fixes some race conditions.</li>
-<li>More robust error handling on serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2009-01-25">
-<h1>2.2beta2 (2009-01-25)</h1>
-<div class="section" id="id117">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling.  This was due to a
-problem in Cython, not lxml itself.</li>
-<li><tt class="docutils literal">iter_links</tt> (and related link-rewriting functions) in
-<tt class="docutils literal">lxml.html</tt> would interpret CSS like <tt class="docutils literal"><span class="pre">url(&quot;link&quot;)</span></tt> incorrectly
-(treating the quotation marks as part of the link).</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id118">
-<h1>2.1.5 (2009-01-06)</h1>
-<div class="section" id="id119">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Potential memory leak on exception handling.  This was due to a
-problem in Cython, not lxml itself.</li>
-<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta1-2008-12-12">
-<h1>2.2beta1 (2008-12-12)</h1>
-<div class="section" id="id120">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Allow <tt class="docutils literal">lxml.html.diff.htmldiff</tt> to accept Element objects, not
-just HTML strings.</li>
-</ul>
-</div>
-<div class="section" id="id121">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when using an XPath evaluator in multiple threads.</li>
-<li>Fixed missing whitespace before <tt class="docutils literal"><span class="pre">Link:...</span></tt> in <tt class="docutils literal">lxml.html.diff</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id122">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Export <tt class="docutils literal">lxml.html.parse</tt>.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id123">
-<h1>2.1.4 (2008-12-12)</h1>
-<div class="section" id="id124">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when using an XPath evaluator in multiple threads.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id125">
-<h1>2.0.11 (2008-12-12)</h1>
-<div class="section" id="id126">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when using an XPath evaluator in multiple threads.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="alpha1-2008-11-23">
-<h1>2.2alpha1 (2008-11-23)</h1>
-<div class="section" id="id127">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for XSLT result tree fragments in XPath/XSLT extension
-functions.</li>
-<li>QName objects have new properties <tt class="docutils literal">namespace</tt> and <tt class="docutils literal">localname</tt>.</li>
-<li>New options for exclusive C14N and C14N without comments.</li>
-<li>Instantiating a custom Element classes creates a new Element.</li>
-</ul>
-</div>
-<div class="section" id="id128">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>XSLT didn't inherit the parse options of the input document.</li>
-<li>0-bytes could slip through the API when used inside of Unicode
-strings.</li>
-<li>With <tt class="docutils literal">lxml.html.clean.autolink</tt>, links with balanced parenthesis,
-that end in a parenthesis, will be linked in their entirety (typical
-with Wikipedia links).</li>
-</ul>
-</div>
-<div class="section" id="id129">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id130">
-<h1>2.1.3 (2008-11-17)</h1>
-<div class="section" id="id131">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id132">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-<li>Parser Unicode decoding errors could get swallowed by other
-exceptions.</li>
-<li>Name/import errors in some Python modules.</li>
-<li>Internal DTD subsets that did not specify a system or public ID were
-not serialised and did not appear in the docinfo property of
-ElementTrees.</li>
-<li>Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.</li>
-<li>Test suite fixes for libxml2 2.7.</li>
-<li>Resolver.resolve_string() did not work for non-ASCII byte strings.</li>
-<li>Resolver.resolve_file() was broken.</li>
-<li>Overriding the parser encoding didn't work for many encodings.</li>
-</ul>
-</div>
-<div class="section" id="id133">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id134">
-<h1>2.0.10 (2008-11-17)</h1>
-<div class="section" id="id135">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Ref-count leaks when lxml enters a try-except statement while an
-outside exception lives in sys.exc_*(). This was due to a problem in
-Cython, not lxml itself.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id136">
-<h1>2.1.2 (2008-09-05)</h1>
-<div class="section" id="id137">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.etree now tries to find the absolute path name of files when
-parsing from a file-like object.  This helps custom resolvers when
-resolving relative URLs, as lixbml2 can prepend them with the path
-of the source document.</li>
-</ul>
-</div>
-<div class="section" id="id138">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-<div class="section" id="id139">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id140">
-<h1>2.0.9 (2008-09-05)</h1>
-<div class="section" id="id141">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory problem when passing documents between threads.</li>
-<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
-exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id142">
-<h1>2.1.1 (2008-07-24)</h1>
-<div class="section" id="id143">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id144">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>Encoding problem when including text with ElementInclude under
-Python 3.</li>
-</ul>
-</div>
-<div class="section" id="id145">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id146">
-<h1>2.0.8 (2008-07-24)</h1>
-<div class="section" id="id147">
-<h2>Features added</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
-with whitespace in URL attributes.</li>
-</ul>
-</div>
-<div class="section" id="id148">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when parsing XSLT stylesheets in a thread and using them in
-another.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id149">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="id150">
-<h1>2.1 (2008-07-09)</h1>
-<div class="section" id="id151">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
-keyword option).</li>
-<li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
-with whitespace in URL attributes.</li>
-</ul>
-</div>
-<div class="section" id="id152">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Custom resolvers were not used for XMLSchema includes/imports and
-XInclude processing.</li>
-<li>CSS selector parser dropped remaining expression after a function
-with parameters.</li>
-</ul>
-</div>
-<div class="section" id="id153">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
-<tt class="docutils literal">objectify.enable_recursive_str()</tt> instead</li>
-<li>Speed-up when running XSLTs on documents from other threads</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id154">
-<h1>2.0.7 (2008-06-20)</h1>
-<div class="section" id="id155">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
-</ul>
-</div>
-<div class="section" id="id156">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Descending dot-separated classes in CSS selectors were not resolved
-correctly.</li>
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Potential threading problem in XInclude.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-</ul>
-</div>
-<div class="section" id="id157">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta3-2008-06-19">
-<h1>2.1beta3 (2008-06-19)</h1>
-<div class="section" id="id158">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
-<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
-<li>Support for parsing from file-like objects that return unicode
-strings.</li>
-<li>New function <tt class="docutils literal">etree.cleanup_namespaces(el)</tt> that removes unused
-namespace declarations from a (sub)tree (experimental).</li>
-<li>XSLT results support the buffer protocol in Python 3.</li>
-<li>Polymorphic functions in <tt class="docutils literal">lxml.html</tt> that accept either a tree or
-a parsable string will return either a UTF-8 encoded byte string, a
-unicode string or a tree, based on the type of the input.
-Previously, the result was always a byte string or a tree.</li>
-<li>Support for Python 2.6 and 3.0 beta.</li>
-<li>File name handling now uses a heuristic to convert between byte
-strings (usually filenames) and unicode strings (usually URLs).</li>
-<li>Parsing from a plain file object frees the GIL under Python 2.x.</li>
-<li>Running <tt class="docutils literal">iterparse()</tt> on a plain file (or filename) frees the GIL
-on reading under Python 2.x.</li>
-<li>Conversion functions <tt class="docutils literal">html_to_xhtml()</tt> and <tt class="docutils literal">xhtml_to_html()</tt> in
-lxml.html (experimental).</li>
-<li>Most features in lxml.html work for XHTML namespaced tag names
-(experimental).</li>
-</ul>
-</div>
-<div class="section" id="id159">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
-<li>Crash in Element class lookup classes when the __init__() method of
-the super class is not called from Python subclasses.</li>
-<li>A number of problems related to unicode/byte string conversion of
-filenames and error messages were fixed.</li>
-<li>Building on MacOS-X now passes the &quot;flat_namespace&quot; option to the C
-compiler, which reportedly prevents build quirks and crashes on this
-platform.</li>
-<li>Windows build was broken.</li>
-<li>Rare crash when serialising to a file object with certain encodings.</li>
-</ul>
-</div>
-<div class="section" id="id160">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Non-ASCII characters in attribute values are no longer escaped on
-serialisation.</li>
-<li>Passing non-ASCII byte strings or invalid unicode strings as .tag,
-namespaces, etc. will result in a ValueError instead of an
-AssertionError (just like the tag well-formedness check).</li>
-<li>Up to several times faster attribute access (i.e. tree traversal) in
-lxml.objectify.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id161">
-<h1>2.0.6 (2008-05-31)</h1>
-<div class="section" id="id162">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id163">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Incorrect evaluation of <tt class="docutils literal"><span class="pre">el.find(&quot;tag[child]&quot;)</span></tt>.</li>
-<li>Windows build was broken.</li>
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-document is deleted while the subtree is still in use.</li>
-<li>Rare crash when serialising to a file object with certain encodings.</li>
-</ul>
-</div>
-<div class="section" id="id164">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml should now build without problems on MacOS-X.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="beta2-2008-05-02">
-<h1>2.1beta2 (2008-05-02)</h1>
-<div class="section" id="id165">
-<h2>Features added</h2>
-<ul class="simple">
-<li>All parse functions in lxml.html take a <tt class="docutils literal">parser</tt> keyword argument.</li>
-<li>lxml.html has a new parser class <tt class="docutils literal">XHTMLParser</tt> and a module
-attribute <tt class="docutils literal">xhtml_parser</tt> that provide XML parsers that are
-pre-configured for the lxml.html package.</li>
-</ul>
-</div>
-<div class="section" id="id166">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Moving a subtree from a document created in one thread into a
-document of another thread could crash when the rest of the source
-document is deleted while the subtree is still in use.</li>
-<li>Passing an nsmap when creating an Element will no longer strip
-redundantly defined namespace URIs.  This prevented the definition
-of more than one prefix for a namespace on the same Element.</li>
-</ul>
-</div>
-<div class="section" id="id167">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>If the default namespace is redundantly defined with a prefix on the
-same Element, the prefix will now be preferred for subelements and
-attributes.  This allows users to work around a problem in libxml2
-where attributes from the default namespace could serialise without
-a prefix even when they appear on an Element with a different
-namespace (i.e. they would end up in the wrong namespace).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id168">
-<h1>2.0.5 (2008-05-01)</h1>
-<div class="section" id="id169">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id170">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
-</ul>
-</div>
-<div class="section" id="id171">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="beta1-2008-04-15">
-<h1>2.1beta1 (2008-04-15)</h1>
-<div class="section" id="id172">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
-<li>Parser option <tt class="docutils literal">strip_cdata</tt> for normalising or keeping CDATA
-sections.  Defaults to <tt class="docutils literal">True</tt> as before, thus replacing CDATA
-sections by their text content.</li>
-<li><tt class="docutils literal">CDATA()</tt> factory to wrap string content as CDATA section.</li>
-</ul>
-</div>
-<div class="section" id="id173">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Resolving to a filename in custom resolvers didn't work.</li>
-<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
-let some XSLT errors pass silently.</li>
-<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
-<li>lxml.etree accepted non well-formed namespace prefix names.</li>
-</ul>
-</div>
-<div class="section" id="id174">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
-takes care of namespace cleanup when moving elements between
-different namespace contexts.</li>
-<li>New Elements created through the <tt class="docutils literal">makeelement()</tt> method of an HTML
-parser or through lxml.html now end up in a new HTML document
-(doctype HTML 4.01 Transitional) instead of a generic XML document.
-This mostly impacts the serialisation and the availability of a DTD
-context.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id175">
-<h1>2.0.4 (2008-04-13)</h1>
-<div class="section" id="id176">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id177">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Hanging thread in conjunction with GTK threading.</li>
-<li>Crash bug in iterparse when moving elements into other documents.</li>
-<li>HTML elements' <tt class="docutils literal">.cssselect()</tt> method was broken.</li>
-<li><tt class="docutils literal"><span class="pre">ElementTree.find*()</span></tt> didn't accept QName objects.</li>
-</ul>
-</div>
-<div class="section" id="id178">
-<h2>Other changes</h2>
-</div>
-</div>
-<div class="section" id="alpha1-2008-03-27">
-<h1>2.1alpha1 (2008-03-27)</h1>
-<div class="section" id="id179">
-<h2>Features added</h2>
-<ul class="simple">
-<li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
-<li><tt class="docutils literal">XSLTAccessControl</tt> instances have a property <tt class="docutils literal">options</tt> that
-returns a dict of access configuration options.</li>
-<li>Constant instances <tt class="docutils literal">DENY_ALL</tt> and <tt class="docutils literal">DENY_WRITE</tt> on
-<tt class="docutils literal">XSLTAccessControl</tt> class.</li>
-<li>Extension elements for XSLT (experimental!)</li>
-<li><tt class="docutils literal">Element.base</tt> property returns the xml:base or HTML base URL of
-an Element.</li>
-<li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
-</ul>
-</div>
-<div class="section" id="id180">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Default encoding for plain text serialisation was different from
-that of XML serialisation (UTF-8 instead of ASCII).</li>
-</ul>
-</div>
-<div class="section" id="id181">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Minor API speed-ups.</li>
-<li>The benchmark suite now uses tail text in the trees, which makes the
-absolute numbers incomparable to previous results.</li>
-<li>Generating the HTML documentation now requires <a class="reference external" href="http://pygments.org/">Pygments</a>, which is
-used to enable syntax highlighting for the doctest examples.</li>
-</ul>
-<p>Most long-time deprecated functions and methods were removed:</p>
-<ul>
-<li><p class="first"><tt class="docutils literal">etree.clearErrorLog()</tt>, use <tt class="docutils literal">etree.clear_error_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.useGlobalPythonLog()</tt>, use
-<tt class="docutils literal">etree.use_global_python_log()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.ElementClassLookup.setFallback()</tt>, use
-<tt class="docutils literal">etree.ElementClassLookup.set_fallback()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.getDefaultParser()</tt>, use <tt class="docutils literal">etree.get_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setDefaultParser()</tt>, use <tt class="docutils literal">etree.set_default_parser()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">etree.setElementClassLookup()</tt>, use
-<tt class="docutils literal">etree.set_element_class_lookup()</tt></p>
-<p>Note that <tt class="docutils literal">parser.setElementClassLookup()</tt> has not been removed
-yet, although <tt class="docutils literal">parser.set_element_class_lookup()</tt> should be used
-instead.</p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespace()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespace()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespaces()</tt>, use
-<tt class="docutils literal">xpath_evaluator.register_namespaces()</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setPytypeAttributeTag</tt>, use
-<tt class="docutils literal">objectify.set_pytype_attribute_tag</tt></p>
-</li>
-<li><p class="first"><tt class="docutils literal">objectify.setDefaultParser()</tt>, use
-<tt class="docutils literal">objectify.set_default_parser()</tt></p>
-</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id182">
-<h1>2.0.3 (2008-03-26)</h1>
-<div class="section" id="id183">
-<h2>Features added</h2>
-<ul class="simple">
-<li>soupparser.parse() allows passing keyword arguments on to
-BeautifulSoup.</li>
-<li><tt class="docutils literal">fromstring()</tt> method in <tt class="docutils literal">lxml.html.soupparser</tt>.</li>
-</ul>
-</div>
-<div class="section" id="id184">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
-<tt class="docutils literal">&lt;br&gt;</tt>).</li>
-<li>Handle entity replacements correctly in target parser.</li>
-<li>Crash when using <tt class="docutils literal">iterparse()</tt> with XML Schema validation.</li>
-<li>The BeautifulSoup parser (soupparser.py) did not replace entities,
-which made them turn up in text content.</li>
-<li>Attribute assignment of custom PyTypes in objectify could fail to
-correctly serialise the value to a string.</li>
-</ul>
-</div>
-<div class="section" id="id185">
-<h2>Other changes</h2>
-<ul class="simple">
-<li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
-<tt class="docutils literal">lxml.html.soupparser</tt> with a more consistent API.  The old module
-remains for compatibility with ElementTree's own ElementSoup module.</li>
-<li>Setting the XSLT_CONFIG and XML2_CONFIG environment variables at
-build time will let setup.py pick up the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> and
-<tt class="docutils literal"><span class="pre">xslt-config</span></tt> scripts from the supplied path name.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xml2-config=/path/to/xml2-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> script that is used to determine the C
-compiler options.  The same applies for the <tt class="docutils literal"><span class="pre">--with-xslt-config</span></tt>
-option.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id186">
-<h1>2.0.2 (2008-02-22)</h1>
-<div class="section" id="id187">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support passing <tt class="docutils literal">base_url</tt> to file parser functions to override
-the filename of the file(-like) object.</li>
-</ul>
-</div>
-<div class="section" id="id188">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The prefix for objectify's pytype namespace was missing from the set
-of default prefixes.</li>
-<li>Memory leak in Schematron (fixed only for libxml2 2.6.31+).</li>
-<li>Error type names in RelaxNG were reported incorrectly.</li>
-<li>Slice deletion bug fixed in objectify.</li>
-</ul>
-</div>
-<div class="section" id="id189">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
-<li>Add a <tt class="docutils literal">method</tt> argument to <tt class="docutils literal">lxml.html.tostring()</tt>
-(<tt class="docutils literal"><span class="pre">method=&quot;xml&quot;</span></tt> for XHTML output).</li>
-<li>Make it clearer that methods like <tt class="docutils literal">lxml.html.fromstring()</tt> take a
-<tt class="docutils literal">base_url</tt> argument.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id190">
-<h1>2.0.1 (2008-02-13)</h1>
-<div class="section" id="id191">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
-<li>Loads of new docstrings reflect the signature of functions and
-methods to make them visible in API docs and <tt class="docutils literal">help()</tt></li>
-</ul>
-</div>
-<div class="section" id="id192">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
-<tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li>Form elements would return None for <tt class="docutils literal">form.fields.keys()</tt> if there
-was an unnamed input field.  Now unnamed input fields are completely
-ignored.</li>
-<li>Setting an element slice in objectify could insert slice-overlapping
-elements at the wrong position.</li>
-</ul>
-</div>
-<div class="section" id="id193">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The generated API documentation was cleaned up and disburdened from
-non-public classes etc.</li>
-<li>The previously public module <tt class="docutils literal">lxml.html.setmixin</tt> was renamed to
-<tt class="docutils literal">lxml.html._setmixin</tt> as it is not an official part of lxml.  If
-you want to use it, feel free to copy it over to your own source
-base.</li>
-<li>Passing <tt class="docutils literal"><span class="pre">--with-xslt-config=/path/to/xslt-config</span></tt> to setup.py will
-override the <tt class="docutils literal"><span class="pre">xslt-config</span></tt> script that is used to determine the C
-compiler options.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id194">
-<h1>2.0 (2008-02-01)</h1>
-<div class="section" id="id195">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Passing the <tt class="docutils literal">unicode</tt> type as <tt class="docutils literal">encoding</tt> to <tt class="docutils literal">tostring()</tt> will
-serialise to unicode.  The <tt class="docutils literal">tounicode()</tt> function is now
-deprecated.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> can parse from StringIO.</li>
-<li><tt class="docutils literal">makeparser()</tt> function in <tt class="docutils literal">lxml.objectify</tt> to create a new
-parser with the usual objectify setup.</li>
-<li>Plain ASCII XPath string results are no longer forced into unicode
-objects as in 2.0beta1, but are returned as plain strings as before.</li>
-<li>All XPath string results are 'smart' objects that have a
-<tt class="docutils literal">getparent()</tt> method to retrieve their parent Element.</li>
-<li><tt class="docutils literal">with_tail</tt> option in serialiser functions.</li>
-<li>More accurate exception messages in validator creation.</li>
-<li>Parse-time XML schema validation (<tt class="docutils literal">schema</tt> parser keyword).</li>
-<li>XPath string results of the <tt class="docutils literal">text()</tt> function and attribute
-selection make their Element container accessible through a
-<tt class="docutils literal">getparent()</tt> method.  As a side-effect, they are now always
-unicode objects (even ASCII strings).</li>
-<li><tt class="docutils literal">XSLT</tt> objects are usable in any thread - at the cost of a deep
-copy if they were not created in that thread.</li>
-<li>Invalid entity names and character references will be rejected by
-the <tt class="docutils literal">Entity()</tt> factory.</li>
-<li><tt class="docutils literal">entity.text</tt> returns the textual representation of the entity,
-e.g. <tt class="docutils literal">&amp;amp;</tt>.</li>
-<li>New properties <tt class="docutils literal">position</tt> and <tt class="docutils literal">code</tt> on ParseError exception (as
-in ET 1.3)</li>
-<li>Rich comparison of <tt class="docutils literal">element.attrib</tt> proxies.</li>
-<li>ElementTree compatible TreeBuilder class.</li>
-<li>Use default prefixes for some common XML namespaces.</li>
-<li><tt class="docutils literal">lxml.html.clean.Cleaner</tt> now allows for a <tt class="docutils literal">host_whitelist</tt>, and
-two overridable methods: <tt class="docutils literal">allow_embedded_url(el, url)</tt> and the
-more general <tt class="docutils literal">allow_element(el)</tt>.</li>
-<li>Extended slicing of Elements as in <tt class="docutils literal"><span class="pre">element[1:-1:2]</span></tt>, both in
-etree and in objectify</li>
-<li>Resolvers can now provide a <tt class="docutils literal">base_url</tt> keyword argument when
-resolving a document as string data.</li>
-<li>When using <tt class="docutils literal">lxml.doctestcompare</tt> you can give the doctest option
-<tt class="docutils literal">NOPARSE_MARKUP</tt> (like <tt class="docutils literal"># doctest: +NOPARSE_MARKUP</tt>) to suppress
-the special checking for one test.</li>
-<li>Separate <tt class="docutils literal">feed_error_log</tt> property for the feed parser interface.
-The normal parser interface and <tt class="docutils literal">iterparse</tt> continue to use
-<tt class="docutils literal">error_log</tt>.</li>
-<li>The normal parsers and the feed parser interface are now separated
-and can be used concurrently on the same parser instance.</li>
-<li><tt class="docutils literal">fromstringlist()</tt> and <tt class="docutils literal">tostringlist()</tt> functions as in
-ElementTree 1.3</li>
-<li><tt class="docutils literal">iterparse()</tt> accepts an <tt class="docutils literal">html</tt> boolean keyword argument for
-parsing with the HTML parser (note that this interface may be
-subject to change)</li>
-<li>Parsers accept an <tt class="docutils literal">encoding</tt> keyword argument that overrides the encoding
-of the parsed documents.</li>
-<li>New C-API function <tt class="docutils literal">hasChild()</tt> to test for children</li>
-<li><tt class="docutils literal">annotate()</tt> function in objectify can annotate with Python types and XSI
-types in one step.  Accompanied by <tt class="docutils literal">xsiannotate()</tt> and <tt class="docutils literal">pyannotate()</tt>.</li>
-<li><tt class="docutils literal">ET.write()</tt>, <tt class="docutils literal">tostring()</tt> and <tt class="docutils literal">tounicode()</tt> now accept a keyword
-argument <tt class="docutils literal">method</tt> that can be one of 'xml' (or None), 'html' or 'text' to
-serialise as XML, HTML or plain text content.</li>
-<li><tt class="docutils literal">iterfind()</tt> method on Elements returns an iterator equivalent to
-<tt class="docutils literal">findall()</tt></li>
-<li><tt class="docutils literal">itertext()</tt> method on Elements</li>
-<li>Setting a QName object as value of the .text property or as an attribute
-will resolve its prefix in the respective context</li>
-<li>ElementTree-like parser target interface as described in
-<a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">http://effbot.org/elementtree/elementtree-xmlparser.htm</a></li>
-<li>ElementTree-like feed parser interface on XMLParser and HTMLParser
-(<tt class="docutils literal">feed()</tt> and <tt class="docutils literal">close()</tt> methods)</li>
-<li>Reimplemented <tt class="docutils literal">objectify.E</tt> for better performance and improved
-integration with objectify.  Provides extended type support based on
-registered PyTypes.</li>
-<li>XSLT objects now support deep copying</li>
-<li>New <tt class="docutils literal">makeSubElement()</tt> C-API function that allows creating a new
-subelement straight with text, tail and attributes.</li>
-<li>XPath extension functions can now access the current context node
-(<tt class="docutils literal">context.context_node</tt>) and use a context dictionary
-(<tt class="docutils literal">context.eval_context</tt>) from the context provided in their first
-parameter</li>
-<li>HTML tag soup parser based on BeautifulSoup in <tt class="docutils literal">lxml.html.ElementSoup</tt></li>
-<li>New module <tt class="docutils literal">lxml.doctestcompare</tt> by Ian Bicking for writing simplified
-doctests based on XML/HTML output.  Use by importing <tt class="docutils literal">lxml.usedoctest</tt> or
-<tt class="docutils literal">lxml.html.usedoctest</tt> from within a doctest.</li>
-<li>New module <tt class="docutils literal">lxml.cssselect</tt> by Ian Bicking for selecting Elements with CSS
-selectors.</li>
-<li>New package <tt class="docutils literal">lxml.html</tt> written by Ian Bicking for advanced HTML
-treatment.</li>
-<li>Namespace class setup is now local to the <tt class="docutils literal">ElementNamespaceClassLookup</tt>
-instance and no longer global.</li>
-<li>Schematron validation (incomplete in libxml2)</li>
-<li>Additional <tt class="docutils literal">stringify</tt> argument to <tt class="docutils literal">objectify.PyType()</tt> takes a
-conversion function to strings to support setting text values from arbitrary
-types.</li>
-<li>Entity support through an <tt class="docutils literal">Entity</tt> factory and element classes.  XML
-parsers now have a <tt class="docutils literal">resolve_entities</tt> keyword argument that can be set to
-False to keep entities in the document.</li>
-<li><tt class="docutils literal">column</tt> field on error log entries to accompany the <tt class="docutils literal">line</tt> field</li>
-<li>Error specific messages in XPath parsing and evaluation
-NOTE: for evaluation errors, you will now get an XPathEvalError instead of
-an XPathSyntaxError.  To catch both, you can except on <tt class="docutils literal">XPathError</tt></li>
-<li>The regular expression functions in XPath now support passing a node-set
-instead of a string</li>
-<li>Extended type annotation in objectify: new <tt class="docutils literal">xsiannotate()</tt> function</li>
-<li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
-</ul>
-</div>
-<div class="section" id="id196">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
-<li>Some Python 2.4-isms prevented lxml from building/running under
-Python 2.3.</li>
-<li>XPath on ElementTrees could crash when selecting the virtual root
-node of the ElementTree.</li>
-<li>Compilation <tt class="docutils literal"><span class="pre">--without-threading</span></tt> was buggy in alpha5/6.</li>
-<li>Memory leak in the <tt class="docutils literal">parse()</tt> function.</li>
-<li>Minor bugs in XSLT error message formatting.</li>
-<li>Result document memory leak in target parser.</li>
-<li>Target parser failed to report comments.</li>
-<li>In the <tt class="docutils literal">lxml.html</tt> <tt class="docutils literal">iter_links</tt> method, links in <tt class="docutils literal">&lt;object&gt;</tt>
-tags weren't recognized.  (Note: plugin-specific link parameters
-still aren't recognized.)  Also, the <tt class="docutils literal">&lt;embed&gt;</tt> tag, though not
-standard, is now included in <tt class="docutils literal">lxml.html.defs.special_inline_tags</tt>.</li>
-<li>Using custom resolvers on XSLT stylesheets parsed from a string
-could request ill-formed URLs.</li>
-<li>With <tt class="docutils literal">lxml.doctestcompare</tt> if you do <tt class="docutils literal">&lt;tag <span class="pre">xmlns=&quot;...&quot;&gt;</span></tt> in your
-output, it will then be namespace-neutral (before the ellipsis was
-treated as a real namespace).</li>
-<li>AttributeError in feed parser on parse errors</li>
-<li>XML feed parser setup problem</li>
-<li>Type annotation for unicode strings in <tt class="docutils literal">DataElement()</tt></li>
-<li>lxml failed to serialise namespace declarations of elements other than the
-root node of a tree</li>
-<li>Race condition in XSLT where the resolver context leaked between concurrent
-XSLT calls</li>
-<li>lxml.etree did not check tag/attribute names</li>
-<li>The XML parser did not report undefined entities as error</li>
-<li>The text in exceptions raised by XML parsers, validators and XPath
-evaluators now reports the first error that occurred instead of the last</li>
-<li>Passing '' as XPath namespace prefix did not raise an error</li>
-<li>Thread safety in XPath evaluators</li>
-</ul>
-</div>
-<div class="section" id="id197">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>Exceptions carry only the part of the error log that is related to
-the operation that caused the error.</li>
-<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> now enforce passing the source
-file/filename through the <tt class="docutils literal">file</tt> keyword argument.</li>
-<li>The test suite now skips most doctests under Python 2.3.</li>
-<li><tt class="docutils literal">make clean</tt> no longer removes the .c files (use <tt class="docutils literal">make
-realclean</tt> instead)</li>
-<li>Minor performance tweaks for Element instantiation and subelement
-creation</li>
-<li>Various places in the XPath, XSLT and iteration APIs now require
-keyword-only arguments.</li>
-<li>The argument order in <tt class="docutils literal">element.itersiblings()</tt> was changed to
-match the order used in all other iteration methods.  The second
-argument ('preceding') is now a keyword-only argument.</li>
-<li>The <tt class="docutils literal">getiterator()</tt> method on Elements and ElementTrees was
-reverted to return an iterator as it did in lxml 1.x.  The ET API
-specification allows it to return either a sequence or an iterator,
-and it traditionally returned a sequence in ET and an iterator in
-lxml.  However, it is now deprecated in favour of the <tt class="docutils literal">iter()</tt>
-method, which should be used in new code wherever possible.</li>
-<li>The 'pretty printed' serialisation of ElementTree objects now
-inserts newlines at the root level between processing instructions,
-comments and the root tag.</li>
-<li>A 'pretty printed' serialisation is now terminated with a newline.</li>
-<li>Second argument to <tt class="docutils literal">lxml.etree.Extension()</tt> helper is no longer
-required, third argument is now a keyword-only argument <tt class="docutils literal">ns</tt>.</li>
-<li><tt class="docutils literal">lxml.html.tostring</tt> takes an <tt class="docutils literal">encoding</tt> argument.</li>
-<li>The module source files were renamed to &quot;lxml.*.pyx&quot;, such as
-&quot;lxml.etree.pyx&quot;.  This was changed for consistency with the way
-Pyrex commonly handles package imports.  The main effect is that
-classes now know about their fully qualified class name, including
-the package name of their module.</li>
-<li>Keyword-only arguments in some API functions, especially in the
-parsers and serialisers.</li>
-<li>Tag name validation in lxml.etree (and lxml.html) now distinguishes
-between HTML tags and XML tags based on the parser that was used to
-parse or create them.  HTML tags no longer reject any non-ASCII
-characters in tag names but only spaces and the special characters
-<tt class="docutils literal"><span class="pre">&lt;&gt;&amp;/&quot;'</span></tt>.</li>
-<li>lxml.etree now emits a warning if you use XPath with libxml2 2.6.27
-(which can crash on certain XPath errors)</li>
-<li>Type annotation in objectify now preserves the already annotated type by
-default to prevent loosing type information that is already there.</li>
-<li><tt class="docutils literal">element.getiterator()</tt> returns a list, use <tt class="docutils literal">element.iter()</tt> to retrieve
-an iterator (ElementTree 1.3 compatible behaviour)</li>
-<li>objectify.PyType for None is now called &quot;NoneType&quot;</li>
-<li><tt class="docutils literal">el.getiterator()</tt> renamed to <tt class="docutils literal">el.iter()</tt>, following ElementTree 1.3 -
-original name is still available as alias</li>
-<li>In the public C-API, <tt class="docutils literal">findOrBuildNodeNs()</tt> was replaced by the more
-generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
-<li>Major refactoring in XPath/XSLT extension function code</li>
-<li>Network access in parsers disabled by default</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id198">
-<h1>1.3.6 (2007-10-29)</h1>
-<div class="section" id="id199">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Backported decref crash fix from 2.0</li>
-<li>Well hidden free-while-in-use crash bug in ObjectPath</li>
-</ul>
-</div>
-<div class="section" id="id200">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>The test suites now run <tt class="docutils literal">gc.collect()</tt> in the <tt class="docutils literal">tearDown()</tt>
-methods.  While this makes them take a lot longer to run, it also
-makes it easier to link a specific test to garbage collection
-problems that would otherwise appear in later tests.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id201">
-<h1>1.3.5 (2007-10-22)</h1>
-<div class="section" id="id202">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id203">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.etree could crash when adding more than 10000 namespaces to a
-document</li>
-<li>lxml failed to serialise namespace declarations of elements other
-than the root node of a tree</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id204">
-<h1>1.3.4 (2007-08-30)</h1>
-<div class="section" id="id205">
-<h2>Features added</h2>
-<ul class="simple">
-<li>The <tt class="docutils literal">ElementMaker</tt> in <tt class="docutils literal">lxml.builder</tt> now accepts the keyword arguments
-<tt class="docutils literal">namespace</tt> and <tt class="docutils literal">nsmap</tt> to set a namespace and nsmap for the Elements it
-creates.</li>
-<li>The <tt class="docutils literal">docinfo</tt> on ElementTree objects has new properties <tt class="docutils literal">internalDTD</tt>
-and <tt class="docutils literal">externalDTD</tt> that return a DTD object for the internal or external
-subset of the document respectively.</li>
-<li>Serialising an ElementTree now includes any internal DTD subsets that are
-part of the document, as well as comments and PIs that are siblings of the
-root node.</li>
-</ul>
-</div>
-<div class="section" id="id206">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parsing with the <tt class="docutils literal">no_network</tt> option could fail</li>
-</ul>
-</div>
-<div class="section" id="id207">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>lxml now raises a TagNameWarning about tag names containing ':' instead of
-an Error as 1.3.3 did.  The reason is that a number of projects currently
-misuse the previous lack of tag name validation to generate namespace
-prefixes without declaring namespaces.  Apart from the danger of generating
-broken XML this way, it also breaks most of the namespace-aware tools in
-XML, including XPath, XSLT and validation.  lxml 1.3.x will continue to
-support this bug with a Warning, while lxml 2.0 will be strict about
-well-formed tag names (not only regarding ':').</li>
-<li>Serialising an Element no longer includes its comment and PI siblings (only
-ElementTree serialisation includes them).</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id208">
-<h1>1.3.3 (2007-07-26)</h1>
-<div class="section" id="id209">
-<h2>Features added</h2>
-<ul class="simple">
-<li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
-instructions and comments while parsing XML</li>
-<li>Parsers now support stripping PIs (keyword argument 'remove_pis')</li>
-<li><tt class="docutils literal">etree.fromstring()</tt> now supports parsing both HTML and XML, depending on
-the parser you pass.</li>
-<li>Support <tt class="docutils literal">base_url</tt> keyword argument in <tt class="docutils literal">HTML()</tt> and <tt class="docutils literal">XML()</tt></li>
-</ul>
-</div>
-<div class="section" id="id210">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parsing from Python Unicode strings failed on some platforms</li>
-<li><tt class="docutils literal">Element()</tt> did not raise an exception on tag names containing ':'</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags. It also accepts <tt class="docutils literal">Element</tt> now.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id211">
-<h1>1.3.2 (2007-07-03)</h1>
-<div class="section" id="id212">
-<h2>Features added</h2>
-</div>
-<div class="section" id="id213">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>&quot;deallocating None&quot; crash bug</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id214">
-<h1>1.3.1 (2007-07-02)</h1>
-<div class="section" id="id215">
-<h2>Features added</h2>
-<ul class="simple">
-<li>objectify.DataElement now supports setting values from existing data
-elements (not just plain Python types) and reuses defined namespaces etc.</li>
-<li>E-factory support for lxml.objectify (<tt class="docutils literal">objectify.E</tt>)</li>
-</ul>
-</div>
-<div class="section" id="id216">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Better way to prevent crashes in Element proxy cleanup code</li>
-<li>objectify.DataElement didn't set up None value correctly</li>
-<li>objectify.DataElement didn't check the value against the provided type hints</li>
-<li>Reference-counting bug in <tt class="docutils literal">Element.attrib.pop()</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id217">
-<h1>1.3 (2007-06-24)</h1>
-<div class="section" id="id218">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
-scheme that can access the entire tree in read-only mode to help determining
-a suitable Element class</li>
-<li>Parsers take a <tt class="docutils literal">remove_comments</tt> keyword argument that skips over comments</li>
-<li><tt class="docutils literal">parse()</tt> function in <tt class="docutils literal">objectify</tt>, corresponding to <tt class="docutils literal">XML()</tt> etc.</li>
-<li><tt class="docutils literal">Element.addnext(el)</tt> and <tt class="docutils literal">Element.addprevious(el)</tt> methods to support
-adding processing instructions and comments around the root node</li>
-<li><tt class="docutils literal">Element.attrib</tt> was missing <tt class="docutils literal">clear()</tt> and <tt class="docutils literal">pop()</tt> methods</li>
-<li>Extended type annotation in objectify: cleaner annotation namespace setup
-plus new <tt class="docutils literal">deannotate()</tt> function</li>
-<li>Support for custom Element class instantiation in lxml.sax: passing a
-<tt class="docutils literal">makeelement</tt> function to the ElementTreeContentHandler will reuse the
-lookup context of that function</li>
-<li>'.' represents empty ObjectPath (identity)</li>
-<li><tt class="docutils literal">Element.values()</tt> to accompany the existing <tt class="docutils literal">.keys()</tt> and <tt class="docutils literal">.items()</tt></li>
-<li><tt class="docutils literal">collectAttributes()</tt> C-function to build a list of attribute
-keys/values/items for a libxml2 node</li>
-<li><tt class="docutils literal">DTD</tt> validator class (like <tt class="docutils literal">RelaxNG</tt> and <tt class="docutils literal">XMLSchema</tt>)</li>
-<li>HTML generator helpers by Fredrik Lundh in <tt class="docutils literal">lxml.htmlbuilder</tt></li>
-<li><tt class="docutils literal">ElementMaker</tt> XML generator by Fredrik Lundh in <tt class="docutils literal">lxml.builder.E</tt></li>
-<li>Support for pickeling <tt class="docutils literal">objectify.ObjectifiedElement</tt> objects to XML</li>
-<li><tt class="docutils literal">update()</tt> method on Element.attrib</li>
-<li>Optimised replacement for libxml2's _xmlReconsiliateNs(). This allows lxml
-a better handling of namespaces when moving elements between documents.</li>
-</ul>
-</div>
-<div class="section" id="id219">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Removing Elements from a tree could make them loose their namespace
-declarations</li>
-<li><tt class="docutils literal">ElementInclude</tt> didn't honour base URL of original document</li>
-<li>Replacing the children slice of an Element would cut off the tails of the
-original children</li>
-<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
-<tt class="docutils literal">ProcessingInstruction</tt> as tags</li>
-<li>API functions now check incoming strings for XML conformity.  Zero bytes or
-low ASCII characters are no longer accepted (AssertionError).</li>
-<li>XSLT parsing failed to pass resolver context on to imported documents</li>
-<li>passing '' as namespace prefix in nsmap could be passed through to libxml2</li>
-<li>Objectify couldn't handle prefixed XSD type names in <tt class="docutils literal">xsi:type</tt></li>
-<li>More ET compatible behaviour when writing out XML declarations or not</li>
-<li>More robust error handling in <tt class="docutils literal">iterparse()</tt></li>
-<li>Documents lost their top-level PIs and comments on serialisation</li>
-<li>lxml.sax failed on comments and PIs. Comments are now properly ignored and
-PIs are copied.</li>
-<li>Possible memory leaks in namespace handling when moving elements between
-documents</li>
-</ul>
-</div>
-<div class="section" id="id220">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>major restructuring in the documentation</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id221">
-<h1>1.2.1 (2007-02-27)</h1>
-<div class="section" id="id222">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Build fixes for MS compiler</li>
-<li>Item assignments to special names like <tt class="docutils literal"><span class="pre">element[&quot;text&quot;]</span></tt> failed</li>
-<li>Renamed ObjectifiedDataElement.__setText() to _setText() to make it easier
-to access</li>
-<li>The pattern for attribute names in ObjectPath was too restrictive</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id223">
-<h1>1.2 (2007-02-20)</h1>
-<div class="section" id="id224">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Rich comparison of QName objects</li>
-<li>Support for regular expressions in benchmark selection</li>
-<li>get/set emulation (not .attrib!) for attributes on processing instructions</li>
-<li>ElementInclude Python module for ElementTree compatible XInclude processing
-that honours custom resolvers registered with the source document</li>
-<li>ElementTree.parser property holds the parser used to parse the document</li>
-<li>setup.py has been refactored for greater readability and flexibility</li>
-<li>--rpath flag to setup.py to induce automatic linking-in of dynamic library
-runtime search paths has been renamed to --auto-rpath. This makes it
-possible to pass an --rpath directly to distutils; previously this was being
-shadowed.</li>
-</ul>
-</div>
-<div class="section" id="id225">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Element instantiation now uses locks to prevent race conditions with threads</li>
-<li>ElementTree.write() did not raise an exception when the file was not writable</li>
-<li>Error handling could crash under Python &lt;= 2.4.1 - fixed by disabling thread
-support in these environments</li>
-<li>Element.find*() did not accept QName objects as path</li>
-</ul>
-</div>
-<div class="section" id="id226">
-<h2>Other changes</h2>
-<ul class="simple">
-<li>code cleanup: redundant _NodeBase super class merged into _Element class
-Note: although the impact should be zero in most cases, this change breaks
-the compatibiliy of the public C-API</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id227">
-<h1>1.1.2 (2006-10-30)</h1>
-<div class="section" id="id228">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Data elements in objectify support repr(), which is now used by dump()</li>
-<li>Source distribution now ships with a patched Pyrex</li>
-<li>New C-API function makeElement() to create new elements with text,
-tail, attributes and namespaces</li>
-<li>Reuse original parser flags for XInclude</li>
-<li>Simplified support for handling XSLT processing instructions</li>
-</ul>
-</div>
-<div class="section" id="id229">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Parser resources were not freed before the next parser run</li>
-<li>Open files and XML strings returned by Python resolvers were not
-closed/freed</li>
-<li>Crash in the IDDict returned by XMLDTDID</li>
-<li>Copying Comments and ProcessingInstructions failed</li>
-<li>Memory leak for external URLs in _XSLTProcessingInstruction.parseXSL()</li>
-<li>Memory leak when garbage collecting tailed root elements</li>
-<li>HTML script/style content was not propagated to .text</li>
-<li>Show text xincluded between text nodes correctly in .text and .tail</li>
-<li>'integer * objectify.StringElement' operation was not supported</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id230">
-<h1>1.1.1 (2006-09-21)</h1>
-<div class="section" id="id231">
-<h2>Features added</h2>
-<ul class="simple">
-<li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
-<li>countchildren() method on objectify.ObjectifiedElement</li>
-<li>Support custom elements for tree nodes in lxml.objectify</li>
-</ul>
-</div>
-<div class="section" id="id232">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</li>
-<li>Error messages from XSLT did not reach <tt class="docutils literal">XSLT.error_log</tt></li>
-<li>Factories objectify.Element() and objectify.DataElement() were missing
-<tt class="docutils literal">attrib</tt> and <tt class="docutils literal">nsmap</tt> keyword arguments</li>
-<li>Changing the default parser in lxml.objectify did not update the factories
-Element() and DataElement()</li>
-<li>Let lxml.objectify.Element() always generate tree elements (not data
-elements)</li>
-<li>Build under Windows failed ('0' bug in patched Pyrex version)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id233">
-<h1>1.1 (2006-09-13)</h1>
-<div class="section" id="id234">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Comments and processing instructions return '&lt;!-- coment --&gt;' and
-'&lt;?pi-target content?&gt;' for repr()</li>
-<li>Parsers are now the preferred (and default) place where element class lookup
-schemes should be registered.  Namespace lookup is no longer supported by
-default.</li>
-<li>Support for Python 2.5 beta</li>
-<li>Unlock the GIL for deep copying documents and for XPath()</li>
-<li>New <tt class="docutils literal">compact</tt> keyword argument for parsing read-only documents</li>
-<li>Support for parser options in iterparse()</li>
-<li>The <tt class="docutils literal">namespace</tt> axis is supported in XPath and returns (prefix, URI)
-tuples</li>
-<li>The XPath expression &quot;/&quot; now returns an empty list instead of raising an
-exception</li>
-<li>XML-Object API on top of lxml (lxml.objectify)</li>
-<li>Customizable Element class lookup:<ul>
-<li>different pre-implemented lookup mechanisms</li>
-<li>support for externally provided lookup functions</li>
-</ul>
-</li>
-<li>Support for processing instructions (ET-like, not compatible)</li>
-<li>Public C-level API for independent extension modules</li>
-<li>Module level <tt class="docutils literal">iterwalk()</tt> function as 'iterparse' for trees</li>
-<li>Module level <tt class="docutils literal">iterparse()</tt> function similar to ElementTree (see
-documentation for differences)</li>
-<li>Element.nsmap property returns a mapping of all namespace prefixes known at
-the Element to their namespace URI</li>
-<li>Reentrant threading support in RelaxNG, XMLSchema and XSLT</li>
-<li>Threading support in parsers and serializers:<ul>
-<li>All in-memory operations (tostring, parse(StringIO), etc.) free the GIL</li>
-<li>File operations (on file names) free the GIL</li>
-<li>Reading from file-like objects frees the GIL and reacquires it for reading</li>
-<li>Serialisation to file-like objects is single-threaded (high lock overhead)</li>
-</ul>
-</li>
-<li>Element iteration over XPath axes:<ul>
-<li>Element.iterdescendants() iterates over the descendants of an element</li>
-<li>Element.iterancestors() iterates over the ancestors of an element (from
-parent to parent)</li>
-<li>Element.itersiblings() iterates over either the following or preceding
-siblings of an element</li>
-<li>Element.iterchildren() iterates over the children of an element in either
-direction</li>
-<li>All iterators support the <tt class="docutils literal">tag</tt> keyword argument to restrict the
-generated elements</li>
-</ul>
-</li>
-<li>Element.getnext() and Element.getprevious() return the direct siblings of an
-element</li>
-</ul>
-</div>
-<div class="section" id="id235">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>filenames with local 8-bit encoding were not supported</li>
-<li>1.1beta did not compile under Python 2.3</li>
-<li>ignore unknown 'pyval' attribute values in objectify</li>
-<li>objectify.ObjectifiedElement.addattr() failed to accept Elements and Lists</li>
-<li>objectify.ObjectPath.setattr() failed to accept Elements and Lists</li>
-<li>XPathSyntaxError now inherits from XPathError</li>
-<li>Threading race conditions in RelaxNG and XMLSchema</li>
-<li>Crash when mixing elements from XSLT results into other trees, concurrent
-XSLT is only allowed when the stylesheet was parsed in the main thread</li>
-<li>The EXSLT <tt class="docutils literal">regexp:match</tt> function now works as defined (except for some
-differences in the regular expression syntax)</li>
-<li>Setting element.text to '' returned None on request, not the empty string</li>
-<li><tt class="docutils literal">iterparse()</tt> could crash on long XML files</li>
-<li>Creating documents no longer copies the parser for later URL resolving.  For
-performance reasons, only a reference is kept.  Resolver updates on the
-parser will now be reflected by documents that were parsed before the
-change.  Although this should rarely become visible, it is a behavioral
-change from 1.0.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id236">
-<h1>1.0.4 (2006-09-09)</h1>
-<div class="section" id="id237">
-<h2>Features added</h2>
-<ul class="simple">
-<li>List-like <tt class="docutils literal">Element.extend()</tt> method</li>
-</ul>
-</div>
-<div class="section" id="id238">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash in tail handling in <tt class="docutils literal">Element.replace()</tt></li>
-</ul>
-</div>
-</div>
-<div class="section" id="id239">
-<h1>1.0.3 (2006-08-08)</h1>
-<div class="section" id="id240">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Element.replace(old, new) method to replace a subelement by another one</li>
-</ul>
-</div>
-<div class="section" id="id241">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Crash when mixing elements from XSLT results into other trees</li>
-<li>Copying/deepcopying did not work for ElementTree objects</li>
-<li>Setting an attribute to a non-string value did not raise an exception</li>
-<li>Element.remove() deleted the tail text from the removed Element</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id242">
-<h1>1.0.2 (2006-06-27)</h1>
-<div class="section" id="id243">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for setting a custom default Element class as opposed to namespace
-specific classes (which still override the default class)</li>
-</ul>
-</div>
-<div class="section" id="id244">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Rare exceptions in Python list functions were not handled</li>
-<li>Parsing accepted unicode strings with XML encoding declaration in certain
-cases</li>
-<li>Parsing 8-bit encoded strings from StringIO objects raised an exception</li>
-<li>Module function <tt class="docutils literal">initThread()</tt> was removed - useless (and never worked)</li>
-<li>XSLT and parser exception messages include the error line number</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id245">
-<h1>1.0.1 (2006-06-09)</h1>
-<div class="section" id="id246">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Repeated calls to Element.attrib now efficiently return the same instance</li>
-</ul>
-</div>
-<div class="section" id="id247">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Document deallocation could crash in certain garbage collection scenarios</li>
-<li>Extension function calls in XSLT variable declarations could break the
-stylesheet and crash on repeated calls</li>
-<li>Deep copying Elements could loose namespaces declared in parents</li>
-<li>Deep copying Elements did not copy tail</li>
-<li>Parsing file(-like) objects failed to load external entities</li>
-<li>Parsing 8-bit strings from file(-like) objects raised an exception</li>
-<li>xsl:include failed when the stylesheet was parsed from a file-like object</li>
-<li>lxml.sax.ElementTreeProducer did not call startDocument() / endDocument()</li>
-<li>MSVC compiler complained about long strings (supports only 2048 bytes)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id248">
-<h1>1.0 (2006-06-01)</h1>
-<div class="section" id="id249">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Element.getiterator() and the findall() methods support finding arbitrary
-elements from a namespace (pattern <tt class="docutils literal">{namespace}*</tt>)</li>
-<li>Another speedup in tree iteration code</li>
-<li>General speedup of Python Element object creation and deallocation</li>
-<li>Writing C14N no longer serializes in memory (reduced memory footprint)</li>
-<li>PyErrorLog for error logging through the Python <tt class="docutils literal">logging</tt> module</li>
-<li><tt class="docutils literal">Element.getroottree()</tt> returns an ElementTree for the root node of the
-document that contains the element.</li>
-<li>ElementTree.getpath(element) returns a simple, absolute XPath expression to
-find the element in the tree structure</li>
-<li>Error logs have a <tt class="docutils literal">last_error</tt> attribute for convenience</li>
-<li>Comment texts can be changed through the API</li>
-<li>Formatted output via <tt class="docutils literal">pretty_print</tt> keyword in serialization functions</li>
-<li>XSLT can block access to file system and network via <tt class="docutils literal">XSLTAccessControl</tt></li>
-<li>ElementTree.write() no longer serializes in memory (reduced memory
-footprint)</li>
-<li>Speedup of Element.findall(tag) and Element.getiterator(tag)</li>
-<li>Support for writing the XML representation of Elements and ElementTrees to
-Python unicode strings via <tt class="docutils literal">etree.tounicode()</tt></li>
-<li>Support for writing XSLT results to Python unicode strings via <tt class="docutils literal">unicode()</tt></li>
-<li>Parsing a unicode string no longer copies the string (reduced memory
-footprint)</li>
-<li>Parsing file-like objects reads chunks rather than the whole file (reduced
-memory footprint)</li>
-<li>Parsing StringIO objects from the start avoids copying the string (reduced
-memory footprint)</li>
-<li>Read-only 'docinfo' attribute in ElementTree class holds DOCTYPE
-information, original encoding and XML version as seen by the parser</li>
-<li>etree module can be compiled without libxslt by commenting out the line
-<tt class="docutils literal">include &quot;xslt.pxi&quot;</tt> near the end of the etree.pyx source file</li>
-<li>Better error messages in parser exceptions</li>
-<li>Error reporting also works in XSLT</li>
-<li>Support for custom document loaders (URI resolvers) in parsers and XSLT,
-resolvers are registered at parser level</li>
-<li>Implementation of exslt:regexp for XSLT based on the Python 're' module,
-enabled by default, can be switched off with 'regexp=False' keyword argument</li>
-<li>Support for exslt extensions (libexslt) and libxslt extra functions
-(node-set, document, write, output)</li>
-<li>Substantial speedup in XPath.evaluate()</li>
-<li>HTMLParser for parsing (broken) HTML</li>
-<li>XMLDTDID function parses XML into tuple (root node, ID dict) based on xml:id
-implementation of libxml2 (as opposed to ET compatible XMLID)</li>
-</ul>
-</div>
-<div class="section" id="id250">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory leak in Element.__setitem__</li>
-<li>Memory leak in Element.attrib.items() and Element.attrib.values()</li>
-<li>Memory leak in XPath extension functions</li>
-<li>Memory leak in unicode related setup code</li>
-<li>Element now raises ValueError on empty tag names</li>
-<li>Namespace fixing after moving elements between documents could fail if the
-source document was freed too early</li>
-<li>Setting namespace-less tag names on namespaced elements ('{ns}t' -&gt; 't')
-didn't reset the namespace</li>
-<li>Unknown constants from newer libxml2 versions could raise exceptions in the
-error handlers</li>
-<li>lxml.etree compiles much faster</li>
-<li>On libxml2 &lt;= 2.6.22, parsing strings with encoding declaration could fail
-in certain cases</li>
-<li>Document reference in ElementTree objects was not updated when the root
-element was moved to a different document</li>
-<li>Running absolute XPath expressions on an Element now evaluates against the
-root tree</li>
-<li>Evaluating absolute XPath expressions (<tt class="docutils literal">/*</tt>) on an ElementTree could fail</li>
-<li>Crashes when calling XSLT, RelaxNG, etc. with uninitialized ElementTree
-objects</li>
-<li>Removed public function <tt class="docutils literal">initThreadLogging()</tt>, replaced by more general
-<tt class="docutils literal">initThread()</tt> which fixes a number of setup problems in threads</li>
-<li>Memory leak when using iconv encoders in tostring/write</li>
-<li>Deep copying Elements and ElementTrees maintains the document information</li>
-<li>Serialization functions raise LookupError for unknown encodings</li>
-<li>Memory deallocation crash resulting from deep copying elements</li>
-<li>Some ElementTree methods could crash if the root node was not initialized
-(neither file nor element passed to the constructor)</li>
-<li>Element/SubElement failed to set attribute namespaces from passed <tt class="docutils literal">attrib</tt>
-dictionary</li>
-<li><tt class="docutils literal">tostring()</tt> adds an XML declaration for non-ASCII encodings</li>
-<li><tt class="docutils literal">tostring()</tt> failed to serialize encodings that contain 0-bytes</li>
-<li>ElementTree.xpath() and XPathDocumentEvaluator were not using the
-ElementTree root node as reference point</li>
-<li>Calling <tt class="docutils literal"><span class="pre">document('')</span></tt> in XSLT failed to return the stylesheet</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id251">
-<h1>0.9.2 (2006-05-10)</h1>
-<div class="section" id="id252">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Speedup for Element.makeelement(): the new element reuses the original
-libxml2 document instead of creating a new empty one</li>
-<li>Speedup for reversed() iteration over element children (Py2.4+ only)</li>
-<li>ElementTree compatible QName class</li>
-<li>RelaxNG and XMLSchema accept any Element, not only ElementTrees</li>
-</ul>
-</div>
-<div class="section" id="id253">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
-<li>Memory leak if write_c14n fails to write the file after conversion</li>
-<li>Crash in XMLSchema and RelaxNG when passing non-schema documents</li>
-<li>Memory leak in RelaxNG() when RelaxNGParseError is raised</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id254">
-<h1>0.9.1 (2006-03-30)</h1>
-<div class="section" id="id255">
-<h2>Features added</h2>
-<ul class="simple">
-<li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
-SaxError on mismatch</li>
-<li>lxml.sax.ElementTreeContentHandler supports namespace-less SAX events
-(startElement, endElement) and defaults to empty attributes (keyword
-argument)</li>
-<li>Speedup for repeatedly accessing element tag names</li>
-<li>Minor API performance improvements</li>
-</ul>
-</div>
-<div class="section" id="id256">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Memory deallocation bug when using XSLT output method &quot;html&quot;</li>
-<li>sax.py was handling UTF-8 encoded tag names where it shouldn't</li>
-<li>lxml.tests package will no longer be installed (is still in source tar)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id257">
-<h1>0.9 (2006-03-20)</h1>
-<div class="section" id="id258">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Error logging API for libxml2 error messages</li>
-<li>Various performance improvements</li>
-<li>Benchmark script for lxml, ElementTree and cElementTree</li>
-<li>Support for registering extension functions through new FunctionNamespace
-class (see doc/extensions.txt)</li>
-<li>ETXPath class for XPath expressions in ElementTree notation ('//{ns}tag')</li>
-<li>Support for variables in XPath expressions (also in XPath class)</li>
-<li>XPath class for compiled XPath expressions</li>
-<li>XMLID module level function (ElementTree compatible)</li>
-<li>XMLParser API for customized libxml2 parser configuration</li>
-<li>Support for custom Element classes through new Namespace API (see
-doc/namespace_extensions.txt)</li>
-<li>Common exception base class LxmlError for module exceptions</li>
-<li>real iterator support in iter(Element), Element.getiterator()</li>
-<li>XSLT objects are callable, result trees support str()</li>
-<li>Added MANIFEST.in for easier creation of RPM files.</li>
-<li>'getparent' method on elements allows navigation to an element's
-parent element.</li>
-<li>Python core compatible SAX tree builder and SAX event generator. See
-doc/sax.txt for more information.</li>
-</ul>
-</div>
-<div class="section" id="id259">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Segfaults and memory leaks in various API functions of Element</li>
-<li>Segfault in XSLT.tostring()</li>
-<li>ElementTree objects no longer interfere, Elements can be root of different
-ElementTrees at the same time</li>
-<li>document('') works in XSLT documents read from files (in-memory documents
-cannot support this due to libxslt deficiencies)</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id260">
-<h1>0.8 (2005-11-03)</h1>
-<div class="section" id="id261">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Support for copy.deepcopy() on elements. copy.copy() works also, but
-does the same thing, and does <em>not</em> create a shallow copy, as that
-makes no sense in the context of libxml2 trees. This means a
-potential incompatibility with ElementTree, but there's more chance
-that it works than if copy.copy() isn't supported at all.</li>
-<li>Increased compatibility with (c)ElementTree; .parse() on ElementTree is
-supported and parsing of gzipped XML files works.</li>
-<li>implemented index() on elements, allowing one to find the index of a
-SubElement.</li>
-</ul>
-</div>
-<div class="section" id="id262">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Use xslt-config instead of xml2-config to find out libxml2
-directories to take into account a case where libxslt is installed
-in a different directory than libxslt.</li>
-<li>Eliminate crash condition in iteration when text nodes are changed.</li>
-<li>Passing 'None' to tostring() does not result in a segfault anymore,
-but an AssertionError.</li>
-<li>Some test fixes for Windows.</li>
-<li>Raise XMLSyntaxError and XPathSyntaxError instead of plain python
-syntax errors. This should be less confusing.</li>
-<li>Fixed error with uncaught exception in Pyrex code.</li>
-<li>Calling lxml.etree.fromstring('') throws XMLSyntaxError instead of a
-segfault.</li>
-<li>has_key() works on attrib. 'in' tests also work correctly on attrib.</li>
-<li>INSTALL.txt was saying 2.2.16 instead of 2.6.16 as a supported
-libxml2 version, as it should.</li>
-<li>Passing a UTF-8 encoded string to the XML() function would fail;
-fixed.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id263">
-<h1>0.7 (2005-06-15)</h1>
-<div class="section" id="id264">
-<h2>Features added</h2>
-<ul class="simple">
-<li>parameters (XPath expressions) can be passed to XSLT using keyword
-parameters.</li>
-<li>Simple XInclude support. Calling the xinclude() method on a tree
-will process any XInclude statements in the document.</li>
-<li>XMLSchema support. Use the XMLSchema class or the convenience
-xmlschema() method on a tree to do XML Schema (XSD) validation.</li>
-<li>Added convenience xslt() method on tree. This is less efficient
-than the XSLT object, but makes it easier to write quick code.</li>
-<li>Added convenience relaxng() method on tree. This is less efficient
-than the RelaxNG object, but makes it easier to write quick code.</li>
-<li>Make it possible to use XPathEvaluator with elements as well. The
-XPathEvaluator in this case will retain the element so multiple
-XPath queries can be made against one element efficiently. This
-replaces the second argument to the .evaluate() method that existed
-previously.</li>
-<li>Allow registerNamespace() to be called on an XPathEvaluator, after
-creation, to add additional namespaces. Also allow registerNamespaces(),
-which does the same for a namespace dictionary.</li>
-<li>Add 'prefix' attribute to element to be able to read prefix information.
-This is entirely read-only.</li>
-<li>It is possible to supply an extra nsmap keyword parameter to
-the Element() and SubElement() constructors, which supplies a
-prefix to namespace URI mapping. This will create namespace
-prefix declarations on these elements and these prefixes will show up
-in XML serialization.</li>
-</ul>
-</div>
-<div class="section" id="id265">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Killed yet another memory management related bug: trees created
-using newDoc would not get a libxml2-level dictionary, which caused
-problems when deallocating these documents later if they contained a
-node that came from a document with a dictionary.</li>
-<li>Moving namespaced elements between documents was problematic as
-references to the original document would remain. This has been fixed
-by applying xmlReconciliateNs() after each move operation.</li>
-<li>Can pass None to 'dump()' without segfaults.</li>
-<li>tostring() works properly for non-root elements as well.</li>
-<li>Cleaned out the tostring() method so it should handle encoding
-correctly.</li>
-<li>Cleaned out the ElementTree.write() method so it should handle encoding
-correctly. Writing directly to a file should also be faster, as there is no
-need to go through a Python string in that case. Made sure the test cases
-test both serializing to StringIO as well as serializing to a real file.</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id266">
-<h1>0.6 (2005-05-14)</h1>
-<div class="section" id="id267">
-<h2>Features added</h2>
-<ul class="simple">
-<li>Changed setup.py so that library_dirs is also guessed. This should
-help with compilation on the Mac OS X platform, where otherwise the
-wrong library (shipping with the OS) could be picked up.</li>
-<li>Tweaked setup.py so that it picks up the version from version.txt.</li>
-</ul>
-</div>
-<div class="section" id="id268">
-<h2>Bugs fixed</h2>
-<ul class="simple">
-<li>Do the right thing when handling namespaced attributes.</li>
-<li>fix bug where tostring() moved nodes into new documents. tostring()
-had very nasty side-effects before this fix, sorry!</li>
-</ul>
-</div>
-</div>
-<div class="section" id="id269">
-<h1>0.5.1 (2005-04-09)</h1>
-<ul class="simple">
-<li>Python 2.2 compatibility fixes.</li>
-<li>unicode fixes in Element() and Comment() as well as XML(); unicode
-input wasn't properly being UTF-8 encoded.</li>
-</ul>
-</div>
-<div class="section" id="id270">
-<h1>0.5 (2005-04-08)</h1>
-<p>Initial public release.</p>
-</div>
-</div>
-<div class="footer">
-<hr class="footer" />
-Generated on: 2013-07-28.
-
-</div>
-</body>
-</html>
diff --git a/doc/html/changes-3.2.4.html b/doc/html/changes-3.2.4.html
new file mode 100644 (file)
index 0000000..160d82b
--- /dev/null
@@ -0,0 +1,2589 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="Docutils 0.10: http://docutils.sourceforge.net/" />
+<title>lxml changelog</title>
+<link rel="stylesheet" href="style.css" type="text/css" />
+</head>
+<body>
+<div class="document" id="lxml-changelog">
+<h1 class="title">lxml changelog</h1>
+
+<div class="section" id="id1">
+<h1>3.2.4 (2013-11-07)</h1>
+<div class="section" id="features-added">
+<h2>Features added</h2>
+</div>
+<div class="section" id="bugs-fixed">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory leak when creating an XPath evaluator in a thread.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1228881">LP#1228881</a>: <tt class="docutils literal">repr(XSLTAccessControl)</tt> failed in Python 3.</li>
+<li>Raise <tt class="docutils literal">ValueError</tt> when trying to append an Element to itself or
+to one of its own descendants.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1206077">LP#1206077</a>: htmldiff discarded whitespace from the output.</li>
+<li>Compressed plain-text serialisation to file-like objects was broken.</li>
+</ul>
+</div>
+<div class="section" id="other-changes">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id2">
+<h1>3.2.3 (2013-07-28)</h1>
+<div class="section" id="id3">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fix support for Python 2.4 which was lost in 3.2.2.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id4">
+<h1>3.2.2 (2013-07-28)</h1>
+<div class="section" id="id5">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id6">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1185701">LP#1185701</a>: spurious XMLSyntaxError after finishing iterparse().</li>
+<li>Crash in lxml.objectify during xsi annotation.</li>
+</ul>
+</div>
+<div class="section" id="id7">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Return values of user provided element class lookup methods are now
+validated against the type of the XML node they represent to prevent
+API class mismatches.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id8">
+<h1>3.2.1 (2013-05-11)</h1>
+<div class="section" id="id9">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The methods <tt class="docutils literal">apply_templates()</tt> and <tt class="docutils literal">process_children()</tt> of XSLT
+extension elements have gained two new boolean options <tt class="docutils literal">elements_only</tt>
+and <tt class="docutils literal">remove_blank_text</tt> that discard either all strings or whitespace-only
+strings from the result list.</li>
+</ul>
+</div>
+<div class="section" id="id10">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>When moving Elements to another tree, the namespace cleanup mechanism
+no longer drops namespace prefixes from attributes for which it finds
+a default namespace declaration, to prevent them from appearing as
+unnamespaced attributes after serialisation.</li>
+<li>Returning non-type objects from a custom class lookup method could lead
+to a crash.</li>
+<li>Instantiating and using subtypes of Comments and ProcessingInstructions
+crashed.</li>
+</ul>
+</div>
+<div class="section" id="id11">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id12">
+<h1>3.2.0 (2013-04-28)</h1>
+<div class="section" id="id13">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id14">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/690319">LP#690319</a>: Leading whitespace could change the behaviour of the string
+parsing functions in <tt class="docutils literal">lxml.html</tt>.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/599318">LP#599318</a>: The string parsing functions in <tt class="docutils literal">lxml.html</tt> are more robust
+in the face of uncommon HTML content like framesets or missing body tags.
+Patch by Stefan Seelmann.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/712941">LP#712941</a>: I/O errors while trying to access files with paths that contain
+non-ASCII characters could raise <tt class="docutils literal">UnicodeDecodeError</tt> instead of properly
+reporting the <tt class="docutils literal">IOError</tt>.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/673205">LP#673205</a>: Parsing from in-memory strings disabled network access in the
+default parser and made subsequent attempts to parse from a URL fail.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/971754">LP#971754</a>: lxml.html.clean appends 'nofollow' to 'rel' attributes instead
+of overwriting the current value.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/715687">LP#715687</a>: lxml.html.clean no longer discards scripts that are explicitly
+allowed by the user provided whitelist.  Patch by Christine Koppelt.</li>
+</ul>
+</div>
+<div class="section" id="id15">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id16">
+<h1>3.1.2 (2013-04-12)</h1>
+<div class="section" id="id17">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id18">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1136509">LP#1136509</a>: Passing attributes through the namespace-unaware API of
+the sax bridge (i.e. the <tt class="docutils literal">handler.startElement()</tt> method) failed
+with a <tt class="docutils literal">TypeError</tt>.  Patch by Mike Bayer.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1123074">LP#1123074</a>: Fix serialisation error in XSLT output when converting
+the result tree to a Unicode string.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/105">GH#105</a>: Replace illegal usage of <tt class="docutils literal">xmlBufLength()</tt> in libxml2 2.9.0
+by properly exported API function <tt class="docutils literal">xmlBufUse()</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id19">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id20">
+<h1>3.1.1 (2013-03-29)</h1>
+<div class="section" id="id21">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id22">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1160386">LP#1160386</a>: Write access to <tt class="docutils literal">lxml.html.FormElement.fields</tt> raised
+an AttributeError in Py3.</li>
+<li>Illegal memory access during cleanup in incremental xmlfile writer.</li>
+</ul>
+</div>
+<div class="section" id="id23">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The externally useless class <tt class="docutils literal">lxml.etree._BaseParser</tt> was removed
+from the module dict.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id24">
+<h1>3.1.0 (2013-02-10)</h1>
+<div class="section" id="id25">
+<h2>Features added</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/89">GH#89</a>: lxml.html.clean allows overriding the set of attributes that it
+considers 'safe'.  Patch by Francis Devereux.</li>
+</ul>
+</div>
+<div class="section" id="id26">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1104370">LP#1104370</a>: <tt class="docutils literal">copy.copy(el.attrib)</tt> raised an exception.  It now returns
+a copy of the attributes as a plain Python dict.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/95">GH#95</a>: When used with namespace prefixes, the  <tt class="docutils literal"><span class="pre">el.find*()</span></tt> methods
+always used the first namespace mapping that was provided for each
+path expression instead of using the one that was actually passed
+in for the current run.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1092521">LP#1092521</a>, <a class="reference external" href="https://github.com/lxml/lxml/issues/91">GH#91</a>: Fix undefined C symbol in Python runtimes compiled
+without threading support.  Patch by Ulrich Seidl.</li>
+</ul>
+</div>
+<div class="section" id="id27">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="beta1-2012-12-21">
+<h1>3.1beta1 (2012-12-21)</h1>
+<div class="section" id="id28">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New build-time option <tt class="docutils literal"><span class="pre">--with-unicode-strings</span></tt> for Python 2 that
+makes the API always return Unicode strings for names and text
+instead of byte strings for plain ASCII content.</li>
+<li>New incremental XML file writing API <tt class="docutils literal">etree.xmlfile()</tt>.</li>
+<li>E factory in lxml.objectify is callable to simplify the creation of
+tags with non-identifier names without having to resort to getattr().</li>
+</ul>
+</div>
+<div class="section" id="id29">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>When starting from a non-namespaced element in lxml.objectify, searching
+for a child without explicitly specifying a namespace incorrectly found
+namespaced elements with the requested local name, instead of restricting
+the search to non-namespaced children.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/85">GH#85</a>: Deprecation warnings were fixed for Python 3.x.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/33">GH#33</a>: lxml.html.fromstring() failed to accept bytes input in Py3.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1080792">LP#1080792</a>: Static build of libxml2 2.9.0 failed due to missing file.</li>
+</ul>
+</div>
+<div class="section" id="id30">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The externally useless class <tt class="docutils literal">_ObjectifyElementMakerCaller</tt> was
+removed from the module API of lxml.objectify.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1075622">LP#1075622</a>: lxml.builder is faster for adding text to elements with
+many children.  Patch by Anders Hammarquist.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id31">
+<h1>3.0.2 (2012-12-14)</h1>
+<div class="section" id="id32">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id33">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fix crash during interpreter shutdown by switching to Cython 0.17.3 for building.</li>
+</ul>
+</div>
+<div class="section" id="id34">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id35">
+<h1>3.0.1 (2012-10-14)</h1>
+<div class="section" id="id36">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id37">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065924">LP#1065924</a>: Element proxies could disappear during garbage collection
+in PyPy without proper cleanup.</li>
+<li><a class="reference external" href="https://github.com/lxml/lxml/issues/71">GH#71</a>: Failure to work with libxml2 2.6.x.</li>
+<li><a class="reference external" href="https://bugs.launchpad.net/lxml/+bug/1065139">LP#1065139</a>: static MacOS-X build failed in Py3.</li>
+</ul>
+</div>
+<div class="section" id="id38">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id39">
+<h1>3.0 (2012-10-08)</h1>
+<div class="section" id="id40">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id41">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>End-of-file handling was incorrect in iterparse() when reading from
+a low-level C file stream and failed in libxml2 2.9.0 due to its
+improved consistency checks.</li>
+</ul>
+</div>
+<div class="section" id="id42">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The build no longer uses Cython by default unless the generated C files
+are missing.  To use Cython, pass the option &quot;--with-cython&quot;.  To ignore
+the fatal build error when Cython is required but not available (e.g. to
+run special setup.py commands that do not actually run a build), pass
+&quot;--without-cython&quot;.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta1-2012-09-26">
+<h1>3.0beta1 (2012-09-26)</h1>
+<div class="section" id="id43">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Python level access to (optional) libxml2 memory debugging features
+to simplify debugging of memory leaks etc.</li>
+</ul>
+</div>
+<div class="section" id="id44">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fix a memory leak in XPath by switching to Cython 0.17.1.</li>
+<li>Some tests were adapted to work with PyPy.</li>
+</ul>
+</div>
+<div class="section" id="id45">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The code was adapted to work with the upcoming libxml2 2.9.0 release.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="alpha2-2012-08-23">
+<h1>3.0alpha2 (2012-08-23)</h1>
+<div class="section" id="id46">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The <tt class="docutils literal">.iter()</tt> method of elements now accepts <tt class="docutils literal">tag</tt> arguments like
+<tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt> to search for elements with a given local name in any
+namespace. With this addition, all combinations of wildcards now work
+as expected:
+<tt class="docutils literal">&quot;{ns}name&quot;</tt>, <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{*}name&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{ns}*&quot;</span></tt>, <tt class="docutils literal"><span class="pre">&quot;{}*&quot;</span></tt>
+and <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.  Note that <tt class="docutils literal">&quot;name&quot;</tt> is equivalent to <tt class="docutils literal"><span class="pre">&quot;{}name&quot;</span></tt>,
+but <tt class="docutils literal">&quot;*&quot;</tt> is <tt class="docutils literal"><span class="pre">&quot;{*}*&quot;</span></tt>.
+The same change applies to the <tt class="docutils literal">.getiterator()</tt>, <tt class="docutils literal">.itersiblings()</tt>,
+<tt class="docutils literal">.iterancestors()</tt>, <tt class="docutils literal">.iterdescendants()</tt>, <tt class="docutils literal">.iterchildren()</tt>
+and <tt class="docutils literal">.itertext()</tt> methods;the <tt class="docutils literal">strip_attributes()</tt>,
+<tt class="docutils literal">strip_elements()</tt> and <tt class="docutils literal">strip_tags()</tt> functions as well as the
+<tt class="docutils literal">iterparse()</tt> class.  Patch by Simon Sapin.</li>
+<li>C14N allows specifying the inclusive prefixes to be promoted
+to top-level during exclusive serialisation.</li>
+</ul>
+</div>
+<div class="section" id="id47">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
+failed to read the entire string.</li>
+</ul>
+</div>
+<div class="section" id="id48">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="alpha1-2012-07-31">
+<h1>3.0alpha1 (2012-07-31)</h1>
+<div class="section" id="id49">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Initial support for building in PyPy (through cpyext).</li>
+<li>DTD objects gained an API that allows read access to their
+declarations.</li>
+<li><tt class="docutils literal">xpathgrep.py</tt> gained support for parsing line-by-line (e.g.
+from grep output) and for surrounding the output with a new root
+tag.</li>
+<li><tt class="docutils literal"><span class="pre">E-factory</span></tt> in <tt class="docutils literal">lxml.builder</tt> accepts subtypes of known data
+types (such as string subtypes) when building elements around them.</li>
+<li>Tree iteration and <tt class="docutils literal">iterparse()</tt> with a selective <tt class="docutils literal">tag</tt>
+argument supports passing a set of tags.  Tree nodes will be
+returned by the iterators if they match any of the tags.</li>
+</ul>
+</div>
+<div class="section" id="id50">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods in <tt class="docutils literal">lxml.objectify</tt> no longer use XPath
+internally, which makes them faster in many cases (especially when
+short circuiting after a single or couple of elements) and fixes
+some behavioural differences compared to <tt class="docutils literal">lxml.etree</tt>.  Note that
+this means that they no longer support arbitrary XPath expressions
+but only the subset that the <tt class="docutils literal">ElementPath</tt> language supports.
+The previous implementation was also redundant with the normal
+XPath support, which can be used as a replacement.</li>
+<li><tt class="docutils literal"><span class="pre">el.find('*')</span></tt> could accidentally return a comment or processing
+instruction that happened to be in the wrong spot.  (Same for the
+other <tt class="docutils literal"><span class="pre">.find*()</span></tt> methods.)</li>
+<li>The error logging is less intrusive and avoids a global setup where
+possible.</li>
+<li>Fixed undefined names in html5lib parser.</li>
+<li><tt class="docutils literal">xpathgrep.py</tt> did not work in Python 3.</li>
+<li><tt class="docutils literal">Element.attrib.update()</tt> did not accept an <tt class="docutils literal">attrib</tt> of
+another Element as parameter.</li>
+<li>For subtypes of <tt class="docutils literal">ElementBase</tt> that make the <tt class="docutils literal">.text</tt> or <tt class="docutils literal">.tail</tt>
+properties immutable (as in objectify, for example), inserting text
+when creating Elements through the E-Factory feature of the class
+constructor would fail with an exception, stating that the text
+cannot be modified.</li>
+</ul>
+</div>
+<div class="section" id="id51">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The code base was overhauled to properly use 'const' where the API
+of libxml2 and libxslt requests it.  This also has an impact on the
+public C-API of lxml itself, as defined in <tt class="docutils literal">etreepublic.pxd</tt>, as
+well as the provided declarations in the <tt class="docutils literal">lxml/includes/</tt> directory.
+Code that uses these declarations may have to be adapted.  On the
+plus side, this fixes several C compiler warnings, also for user
+code, thus making it easier to spot real problems again.</li>
+<li>The functionality of &quot;lxml.cssselect&quot; was moved into a separate PyPI
+package called &quot;cssselect&quot;.  To continue using it, you must install
+that package separately.  The &quot;lxml.cssselect&quot; module is still
+available and provides the same interface, provided the &quot;cssselect&quot;
+package can be imported at runtime.</li>
+<li>Element attributes passed in as an <tt class="docutils literal">attrib</tt> dict or as keyword
+arguments are now sorted by (namespaced) name before being created
+to make their order predictable for serialisation and iteration.
+Note that adding or deleting attributes afterwards does not take
+that order into account, i.e. setting a new attribute appends it
+after the existing ones.</li>
+<li>Several classes that are for internal use only were removed
+from the <tt class="docutils literal">lxml.etree</tt> module dict:
+<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ResolverContext, _BaseContext,
+_ExsltRegExp, _IterparseContext, _TempStore, _ExceptionContext,
+__ContentOnlyElement, _AttribIterator, _NamespaceRegistry,
+_ClassNamespaceRegistry, _FunctionNamespaceRegistry,
+_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
+_FileReaderContext, _ParserContext, _PythonSaxParserTarget,
+_TargetParserContext, _ReadOnlyProxy, _ReadOnlyPIProxy,
+_ReadOnlyEntityProxy, _ReadOnlyElementProxy, _OpaqueNodeWrapper,
+_OpaqueDocumentWrapper, _ModifyContentOnlyProxy,
+_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
+_AppendOnlyElementProxy, _SaxParserContext, _FilelikeWriter,
+_ParserSchemaValidationContext, _XPathContext,
+_XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam</tt></li>
+<li>Several internal classes can no longer be inherited from:
+<tt class="docutils literal">_InputDocument, _ResolverRegistry, _ExsltRegExp, _ElementUnicodeResult,
+_IterparseContext, _TempStore, _AttribIterator, _ClassNamespaceRegistry,
+_XPathFunctionNamespaceRegistry, _ParserDictionaryContext,
+_FileReaderContext, _PythonSaxParserTarget, _TargetParserContext,
+_ReadOnlyPIProxy, _ReadOnlyEntityProxy, _OpaqueDocumentWrapper,
+_ModifyContentOnlyPIProxy, _ModifyContentOnlyEntityProxy,
+_AppendOnlyElementProxy, _FilelikeWriter, _ParserSchemaValidationContext,
+_XPathContext, _XSLTResolverContext, _XSLTContext, _XSLTQuotedStringParam,
+_XSLTResultTree, _XSLTProcessingInstruction</tt></li>
+</ul>
+</div>
+</div>
+<div class="section" id="id52">
+<h1>2.3.6 (2012-09-28)</h1>
+<div class="section" id="id53">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id54">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Passing long Unicode strings into the <tt class="docutils literal">feed()</tt> parser interface
+failed to read the entire string.</li>
+</ul>
+</div>
+<div class="section" id="id55">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id56">
+<h1>2.3.5 (2012-07-31)</h1>
+<div class="section" id="id57">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id58">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when merging text nodes in <tt class="docutils literal">element.remove()</tt>.</li>
+<li>Crash in sax/target parser when reporting empty doctype.</li>
+</ul>
+</div>
+<div class="section" id="id59">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id60">
+<h1>2.3.4 (2012-03-26)</h1>
+<div class="section" id="id61">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id62">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when building an nsmap (Element property) with empty
+namespace URIs.</li>
+<li>Crash due to race condition when errors (or user messages) occur
+during threaded XSLT processing.</li>
+<li>XSLT stylesheet compilation could ignore compilation errors.</li>
+</ul>
+</div>
+<div class="section" id="id63">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id64">
+<h1>2.3.3 (2012-01-04)</h1>
+<div class="section" id="id65">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.tostring()</tt> gained new serialisation options
+<tt class="docutils literal">with_tail</tt> and <tt class="docutils literal">doctype</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id66">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fixed a crash when using <tt class="docutils literal">iterparse()</tt> for HTML parsing and
+requesting start events.</li>
+<li>Fixed parsing of more selectors in cssselect.  Whitespace before
+pseudo-elements and pseudo-classes is significant as it is a
+descendant combinator.
+&quot;E :pseudo&quot; should parse the same as &quot;E *:pseudo&quot;, not &quot;E:pseudo&quot;.
+Patch by Simon Sapin.</li>
+<li>lxml.html.diff no longer raises an exception when hitting
+'img' tags without 'src' attribute.</li>
+</ul>
+</div>
+<div class="section" id="id67">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id68">
+<h1>2.3.2 (2011-11-11)</h1>
+<div class="section" id="id69">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.objectify.deannotate()</tt> has a new boolean option
+<tt class="docutils literal">cleanup_namespaces</tt> to remove the objectify namespace
+declarations (and generally clean up the namespace declarations)
+after removing the type annotations.</li>
+<li><tt class="docutils literal">lxml.objectify</tt> gained its own <tt class="docutils literal">SubElement()</tt> function as a
+copy of <tt class="docutils literal">etree.SubElement</tt> to avoid an otherwise redundant import
+of <tt class="docutils literal">lxml.etree</tt> on the user side.</li>
+</ul>
+</div>
+<div class="section" id="id70">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fixed the &quot;descendant&quot; bug in cssselect a second time (after a first
+fix in lxml 2.3.1).  The previous change resulted in a serious
+performance regression for the XPath based evaluation of the
+translated expression.  Note that this breaks the usage of some of
+the generated XPath expressions as XSLT location paths that
+previously worked in 2.3.1.</li>
+<li>Fixed parsing of some selectors in cssselect. Whitespace after combinators
+&quot;&gt;&quot;, &quot;+&quot; and &quot;~&quot; is now correctly ignored. Previously is was parsed as
+a descendant combinator. For example, &quot;div&gt; .foo&quot; was parsed the same as
+&quot;div&gt;* .foo&quot; instead of &quot;div&gt;.foo&quot;. Patch by Simon Sapin.</li>
+</ul>
+</div>
+<div class="section" id="id71">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id72">
+<h1>2.3.1 (2011-09-25)</h1>
+<div class="section" id="id73">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New option <tt class="docutils literal">kill_tags</tt> in <tt class="docutils literal">lxml.html.clean</tt> to remove specific
+tags and their content (i.e. their whole subtree).</li>
+<li><tt class="docutils literal">pi.get()</tt> and <tt class="docutils literal">pi.attrib</tt> on processing instructions to parse
+pseudo-attributes from the text content of processing instructions.</li>
+<li><tt class="docutils literal">lxml.get_include()</tt> returns a list of include paths that can be
+used to compile external C code against lxml.etree.  This is
+specifically required for statically linked lxml builds when code
+needs to compile against the exact same header file versions as lxml
+itself.</li>
+<li><tt class="docutils literal">Resolver.resolve_file()</tt> takes an additional option
+<tt class="docutils literal">close_file</tt> that configures if the file(-like) object will be
+closed after reading or not.  By default, the file will be closed,
+as the user is not expected to keep a reference to it.</li>
+</ul>
+</div>
+<div class="section" id="id74">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>HTML cleaning didn't remove 'data:' links.</li>
+<li>The html5lib parser integration now uses the 'official'
+implementation in html5lib itself, which makes it work with newer
+releases of the library.</li>
+<li>In <tt class="docutils literal">lxml.sax</tt>, <tt class="docutils literal">endElementNS()</tt> could incorrectly reject a plain
+tag name when the corresponding start event inferred the same plain
+tag name to be in the default namespace.</li>
+<li>When an open file-like object is passed into <tt class="docutils literal">parse()</tt> or
+<tt class="docutils literal">iterparse()</tt>, the parser will no longer close it after use.  This
+reverts a change in lxml 2.3 where all files would be closed.  It is
+the users responsibility to properly close the file(-like) object,
+also in error cases.</li>
+<li>Assertion error in lxml.html.cleaner when discarding top-level elements.</li>
+<li>In lxml.cssselect, use the xpath 'A//B' (short for
+'A/descendant-or-self::node()/B') instead of 'A/descendant::B' for
+the css descendant selector ('A B').  This makes a few edge cases
+like <tt class="docutils literal">&quot;div <span class="pre">*:last-child&quot;</span></tt> consistent with the selector behavior in
+WebKit and Firefox, and makes more css expressions valid location
+paths (for use in xsl:template match).</li>
+<li>In lxml.html, non-selected <tt class="docutils literal">&lt;option&gt;</tt> tags no longer show up in the
+collected form values.</li>
+<li>Adding/removing <tt class="docutils literal">&lt;option&gt;</tt> values to/from a multiple select form
+field properly selects them and unselects them.</li>
+</ul>
+</div>
+<div class="section" id="id75">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Static builds can specify the download directory with the
+<tt class="docutils literal"><span class="pre">--download-dir</span></tt> option.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id76">
+<h1>2.3 (2011-02-06)</h1>
+<div class="section" id="id77">
+<h2>Features added</h2>
+<ul class="simple">
+<li>When looking for children, <tt class="docutils literal">lxml.objectify</tt> takes '{}tag' as
+meaning an empty namespace, as opposed to the parent namespace.</li>
+</ul>
+</div>
+<div class="section" id="id78">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>When finished reading from a file-like object, the parser
+immediately calls its <tt class="docutils literal">.close()</tt> method.</li>
+<li>When finished parsing, <tt class="docutils literal">iterparse()</tt> immediately closes the input
+file.</li>
+<li>Work-around for libxml2 bug that can leave the HTML parser in a
+non-functional state after parsing a severly broken document (fixed
+in libxml2 2.7.8).</li>
+<li><tt class="docutils literal">marque</tt> tag in HTML cleanup code is correctly named <tt class="docutils literal">marquee</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id79">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Some public functions in the Cython-level C-API have more explicit
+return types.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta1-2010-09-06">
+<h1>2.3beta1 (2010-09-06)</h1>
+<div class="section" id="id80">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id81">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in newer libxml2 versions when moving elements between
+documents that had attributes on replaced XInclude nodes.</li>
+<li><tt class="docutils literal">XMLID()</tt> function was missing the optional <tt class="docutils literal">parser</tt> and
+<tt class="docutils literal">base_url</tt> parameters.</li>
+<li>Searching for wildcard tags in <tt class="docutils literal">iterparse()</tt> was broken in Py3.</li>
+<li><tt class="docutils literal">lxml.html.open_in_browser()</tt> didn't work in Python 3 due to the
+use of os.tempnam.  It now takes an optional 'encoding' parameter.</li>
+</ul>
+</div>
+<div class="section" id="id82">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="alpha2-2010-07-24">
+<h1>2.3alpha2 (2010-07-24)</h1>
+<div class="section" id="id83">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id84">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in XSLT when generating text-only result documents with a
+stylesheet created in a different thread.</li>
+</ul>
+</div>
+<div class="section" id="id85">
+<h2>Other changes</h2>
+<ul class="simple">
+<li><tt class="docutils literal">repr()</tt> of Element objects shows the hex ID with leading 0x
+(following ElementTree 1.3).</li>
+</ul>
+</div>
+</div>
+<div class="section" id="alpha1-2010-06-19">
+<h1>2.3alpha1 (2010-06-19)</h1>
+<div class="section" id="id86">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Keyword argument <tt class="docutils literal">namespaces</tt> in <tt class="docutils literal">lxml.cssselect.CSSSelector()</tt>
+to pass a prefix-to-namespace mapping for the selector.</li>
+<li>New function <tt class="docutils literal">lxml.etree.register_namespace(prefix, uri)</tt> that
+globally registers a namespace prefix for a namespace that newly
+created Elements in that namespace will use automatically.  Follows
+ElementTree 1.3.</li>
+<li>Support 'unicode' string name as encoding parameter in
+<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
+<li>Support 'c14n' serialisation method in <tt class="docutils literal">ElementTree.write()</tt> and
+<tt class="docutils literal">tostring()</tt>, following ElementTree 1.3.</li>
+<li>The ElementPath expression syntax (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) was extended to
+match the upcoming ElementTree 1.3 that will ship in the standard
+library of Python 3.2/2.7.  This includes extended support for
+predicates as well as namespace prefixes (as known from XPath).</li>
+<li>During regular XPath evaluation, various ESXLT functions are
+available within their namespace when using libxslt 1.1.26 or later.</li>
+<li>Support passing a readily configured logger instance into
+<tt class="docutils literal">PyErrorLog</tt>, instead of a logger name.</li>
+<li>On serialisation, the new <tt class="docutils literal">doctype</tt> parameter can be used to
+override the DOCTYPE (internal subset) of the document.</li>
+<li>New parameter <tt class="docutils literal">output_parent</tt> to <tt class="docutils literal">XSLTExtension.apply_templates()</tt>
+to append the resulting content directly to an output element.</li>
+<li><tt class="docutils literal">XSLTExtension.process_children()</tt> to process the content of the
+XSLT extension element itself.</li>
+<li>ISO-Schematron support based on the de-facto Schematron reference
+'skeleton implementation'.</li>
+<li>XSLT objects now take XPath object as <tt class="docutils literal">__call__</tt> stylesheet
+parameters.</li>
+<li>Enable path caching in ElementPath (<tt class="docutils literal"><span class="pre">el.find*()</span></tt>) to avoid parsing
+overhead.</li>
+<li>Setting the value of a namespaced attribute always uses a prefixed
+namespace instead of the default namespace even if both declare the
+same namespace URI.  This avoids serialisation problems when an
+attribute from a default namespace is set on an element from a
+different namespace.</li>
+<li>XSLT extension elements: support for XSLT context nodes other than
+elements: document root, comments, processing instructions.</li>
+<li>Support for strings (in addition to Elements) in node-sets returned
+by extension functions.</li>
+<li>Forms that lack an <tt class="docutils literal">action</tt> attribute default to the base URL of
+the document on submit.</li>
+<li>XPath attribute result strings have an <tt class="docutils literal">attrname</tt> property.</li>
+<li>Namespace URIs get validated against RFC 3986 at the API level
+(required by the XML namespace specification).</li>
+<li>Target parsers show their target object in the <tt class="docutils literal">.target</tt> property
+(compatible with ElementTree).</li>
+</ul>
+</div>
+<div class="section" id="id87">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>API is hardened against invalid proxy instances to prevent crashes
+due to incorrectly instantiated Element instances.</li>
+<li>Prevent crash when instantiating <tt class="docutils literal">CommentBase</tt> and friends.</li>
+<li>Export ElementTree compatible XML parser class as
+<tt class="docutils literal">XMLTreeBuilder</tt>, as it is called in ET 1.2.</li>
+<li>ObjectifiedDataElements in lxml.objectify were not hashable.  They
+now use the hash value of the underlying Python value (string,
+number, etc.) to which they compare equal.</li>
+<li>Parsing broken fragments in lxml.html could fail if the fragment
+contained an orphaned closing '&lt;/div&gt;' tag.</li>
+<li>Using XSLT extension elements around the root of the output document
+crashed.</li>
+<li><tt class="docutils literal">lxml.cssselect</tt> did not distinguish between <tt class="docutils literal"><span class="pre">x[attr=&quot;val&quot;]</span></tt> and
+<tt class="docutils literal">x <span class="pre">[attr=&quot;val&quot;]</span></tt> (with a space).  The latter now matches the
+attribute independent of the element.</li>
+<li>Rewriting multiple links inside of HTML text content could end up
+replacing unrelated content as replacements could impact the
+reported position of subsequent matches.  Modifications are now
+simplified by letting the <tt class="docutils literal">iterlinks()</tt> generator in <tt class="docutils literal">lxml.html</tt>
+return links in reversed order if they appear inside the same text
+node.  Thus, replacements and link-internal modifications no longer
+change the position of links reported afterwards.</li>
+<li>The <tt class="docutils literal">.value</tt> attribute of <tt class="docutils literal">textarea</tt> elements in lxml.html did
+not represent the complete raw value (including child tags etc.). It
+now serialises the complete content on read and replaces the
+complete content by a string on write.</li>
+<li>Target parser didn't call <tt class="docutils literal">.close()</tt> on the target object if
+parsing failed.  Now it is guaranteed that <tt class="docutils literal">.close()</tt> will be
+called after parsing, regardless of the outcome.</li>
+</ul>
+</div>
+<div class="section" id="id88">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Official support for Python 3.1.2 and later.</li>
+<li>Static MS Windows builds can now download their dependencies
+themselves.</li>
+<li><tt class="docutils literal">Element.attrib</tt> no longer uses a cyclic reference back to its
+Element object.  It therefore no longer requires the garbage
+collector to clean up.</li>
+<li>Static builds include libiconv, in addition to libxml2 and libxslt.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id89">
+<h1>2.2.8 (2010-09-02)</h1>
+<div class="section" id="id90">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in newer libxml2 versions when moving elements between
+documents that had attributes on replaced XInclude nodes.</li>
+<li>Import fix for urljoin in Python 3.1+.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id91">
+<h1>2.2.7 (2010-07-24)</h1>
+<div class="section" id="id92">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in XSLT when generating text-only result documents with a
+stylesheet created in a different thread.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id93">
+<h1>2.2.6 (2010-03-02)</h1>
+<div class="section" id="id94">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Fixed several Python 3 regressions by building with Cython 0.11.3.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id95">
+<h1>2.2.5 (2010-02-28)</h1>
+<div class="section" id="id96">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for running XSLT extension elements on the input root node
+(e.g. in a template matching on &quot;/&quot;).</li>
+</ul>
+</div>
+<div class="section" id="id97">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in XPath evaluation when reading smart strings from a document
+other than the original context document.</li>
+<li>Support recent versions of html5lib by not requiring its
+<tt class="docutils literal">XHTMLParser</tt> in <tt class="docutils literal">htmlparser.py</tt> anymore.</li>
+<li>Manually instantiating the custom element classes in
+<tt class="docutils literal">lxml.objectify</tt> could crash.</li>
+<li>Invalid XML text characters were not rejected by the API when they
+appeared in unicode strings directly after non-ASCII characters.</li>
+<li>lxml.html.open_http_urllib() did not work in Python 3.</li>
+<li>The functions <tt class="docutils literal">strip_tags()</tt> and <tt class="docutils literal">strip_elements()</tt> in
+<tt class="docutils literal">lxml.etree</tt> did not remove all occurrences of a tag in all cases.</li>
+<li>Crash in XSLT extension elements when the XSLT context node is not
+an element.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id98">
+<h1>2.2.4 (2009-11-11)</h1>
+<div class="section" id="id99">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Static build of libxml2/libxslt was broken.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id100">
+<h1>2.2.3 (2009-10-30)</h1>
+<div class="section" id="id101">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id102">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The <tt class="docutils literal">resolve_entities</tt> option did not work in the incremental feed
+parser.</li>
+<li>Looking up and deleting attributes without a namespace could hit a
+namespaced attribute of the same name instead.</li>
+<li>Late errors during calls to <tt class="docutils literal">SubElement()</tt> (e.g. attribute related
+ones) could leave a partially initialised element in the tree.</li>
+<li>Modifying trees that contain parsed entity references could result
+in an infinite loop.</li>
+<li>ObjectifiedElement.__setattr__ created an empty-string child element when the
+attribute value was rejected as a non-unicode/non-ascii string</li>
+<li>Syntax errors in <tt class="docutils literal">lxml.cssselect</tt> could result in misleading error
+messages.</li>
+<li>Invalid syntax in CSS expressions could lead to an infinite loop in
+the parser of <tt class="docutils literal">lxml.cssselect</tt>.</li>
+<li>CSS special character escapes were not properly handled in
+<tt class="docutils literal">lxml.cssselect</tt>.</li>
+<li>CSS Unicode escapes were not properly decoded in <tt class="docutils literal">lxml.cssselect</tt>.</li>
+<li>Select options in HTML forms that had no explicit <tt class="docutils literal">value</tt>
+attribute were not handled correctly.  The HTML standard dictates
+that their value is defined by their text content.  This is now
+supported by lxml.html.</li>
+<li>XPath raised a TypeError when finding CDATA sections.  This is now
+fully supported.</li>
+<li>Calling <tt class="docutils literal">help(lxml.objectify)</tt> didn't work at the prompt.</li>
+<li>The <tt class="docutils literal">ElementMaker</tt> in lxml.objectify no longer defines the default
+namespaces when annotation is disabled.</li>
+<li>Feed parser failed to honout the 'recover' option on parse errors.</li>
+<li>Diverting the error logging to Python's logging system was broken.</li>
+</ul>
+</div>
+<div class="section" id="id103">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id104">
+<h1>2.2.2 (2009-06-21)</h1>
+<div class="section" id="id105">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New helper functions <tt class="docutils literal">strip_attributes()</tt>, <tt class="docutils literal">strip_elements()</tt>,
+<tt class="docutils literal">strip_tags()</tt> in lxml.etree to remove attributes/subtrees/tags
+from a subtree.</li>
+</ul>
+</div>
+<div class="section" id="id106">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Namespace cleanup on subtree insertions could result in missing
+namespace declarations (and potentially crashes) if the element
+defining a namespace was deleted and the namespace was not used by
+the top element of the inserted subtree but only in deeper subtrees.</li>
+<li>Raising an exception from a parser target callback didn't always
+terminate the parser.</li>
+<li>Only {true, false, 1, 0} are accepted as the lexical representation for
+BoolElement ({True, False, T, F, t, f} not any more), restoring lxml &lt;= 2.0
+behaviour.</li>
+</ul>
+</div>
+<div class="section" id="id107">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id108">
+<h1>2.2.1 (2009-06-02)</h1>
+<div class="section" id="id109">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Injecting default attributes into a document during XML Schema
+validation (also at parse time).</li>
+<li>Pass <tt class="docutils literal">huge_tree</tt> parser option to disable parser security
+restrictions imposed by libxml2 2.7.</li>
+</ul>
+</div>
+<div class="section" id="id110">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The script for statically building libxml2 and libxslt didn't work
+in Py3.</li>
+<li><tt class="docutils literal">XMLSchema()</tt> also passes invalid schema documents on to libxml2
+for parsing (which could lead to a crash before release 2.6.24).</li>
+</ul>
+</div>
+<div class="section" id="id111">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id112">
+<h1>2.2 (2009-03-21)</h1>
+<div class="section" id="id113">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for <tt class="docutils literal">standalone</tt> flag in XML declaration through
+<tt class="docutils literal">tree.docinfo.standalone</tt> and by passing <tt class="docutils literal">standalone=True/False</tt>
+on serialisation.</li>
+</ul>
+</div>
+<div class="section" id="id114">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when parsing an XML Schema with external imports from a
+filename.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta4-2009-02-27">
+<h1>2.2beta4 (2009-02-27)</h1>
+<div class="section" id="id115">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support strings and instantiable Element classes as child arguments
+to the constructor of custom Element classes.</li>
+<li>GZip compression support for serialisation to files and file-like
+objects.</li>
+</ul>
+</div>
+<div class="section" id="id116">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Deep-copying an ElementTree copied neither its sibling PIs and
+comments nor its internal/external DTD subsets.</li>
+<li>Soupparser failed on broken attributes without values.</li>
+<li>Crash in XSLT when overwriting an already defined attribute using
+<tt class="docutils literal">xsl:attribute</tt>.</li>
+<li>Crash bug in exception handling code under Python 3.  This was due
+to a problem in Cython, not lxml itself.</li>
+<li><tt class="docutils literal">lxml.html.FormElement._name()</tt> failed for non top-level forms.</li>
+<li><tt class="docutils literal">TAG</tt> special attribute in constructor of custom Element classes
+was evaluated incorrectly.</li>
+</ul>
+</div>
+<div class="section" id="id117">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Official support for Python 3.0.1.</li>
+<li><tt class="docutils literal">Element.findtext()</tt> now returns an empty string instead of None
+for Elements without text content.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta3-2009-02-17">
+<h1>2.2beta3 (2009-02-17)</h1>
+<div class="section" id="id118">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">XSLT.strparam()</tt> class method to wrap quoted string parameters
+that require escaping.</li>
+</ul>
+</div>
+<div class="section" id="id119">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory leak in XPath evaluators.</li>
+<li>Crash when parsing indented XML in one thread and merging it with
+other documents parsed in another thread.</li>
+<li>Setting the <tt class="docutils literal">base</tt> attribute in <tt class="docutils literal">lxml.objectify</tt> from a unicode
+string failed.</li>
+<li>Fixes following changes in Python 3.0.1.</li>
+<li>Minor fixes for Python 3.</li>
+</ul>
+</div>
+<div class="section" id="id120">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The global error log (which is copied into the exception log) is now
+local to a thread, which fixes some race conditions.</li>
+<li>More robust error handling on serialisation.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta2-2009-01-25">
+<h1>2.2beta2 (2009-01-25)</h1>
+<div class="section" id="id121">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Potential memory leak on exception handling.  This was due to a
+problem in Cython, not lxml itself.</li>
+<li><tt class="docutils literal">iter_links</tt> (and related link-rewriting functions) in
+<tt class="docutils literal">lxml.html</tt> would interpret CSS like <tt class="docutils literal"><span class="pre">url(&quot;link&quot;)</span></tt> incorrectly
+(treating the quotation marks as part of the link).</li>
+<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id122">
+<h1>2.1.5 (2009-01-06)</h1>
+<div class="section" id="id123">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Potential memory leak on exception handling.  This was due to a
+problem in Cython, not lxml itself.</li>
+<li>Failing import on systems that have an <tt class="docutils literal">io</tt> module.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta1-2008-12-12">
+<h1>2.2beta1 (2008-12-12)</h1>
+<div class="section" id="id124">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Allow <tt class="docutils literal">lxml.html.diff.htmldiff</tt> to accept Element objects, not
+just HTML strings.</li>
+</ul>
+</div>
+<div class="section" id="id125">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when using an XPath evaluator in multiple threads.</li>
+<li>Fixed missing whitespace before <tt class="docutils literal"><span class="pre">Link:...</span></tt> in <tt class="docutils literal">lxml.html.diff</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id126">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Export <tt class="docutils literal">lxml.html.parse</tt>.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id127">
+<h1>2.1.4 (2008-12-12)</h1>
+<div class="section" id="id128">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when using an XPath evaluator in multiple threads.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id129">
+<h1>2.0.11 (2008-12-12)</h1>
+<div class="section" id="id130">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when using an XPath evaluator in multiple threads.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="alpha1-2008-11-23">
+<h1>2.2alpha1 (2008-11-23)</h1>
+<div class="section" id="id131">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for XSLT result tree fragments in XPath/XSLT extension
+functions.</li>
+<li>QName objects have new properties <tt class="docutils literal">namespace</tt> and <tt class="docutils literal">localname</tt>.</li>
+<li>New options for exclusive C14N and C14N without comments.</li>
+<li>Instantiating a custom Element classes creates a new Element.</li>
+</ul>
+</div>
+<div class="section" id="id132">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>XSLT didn't inherit the parse options of the input document.</li>
+<li>0-bytes could slip through the API when used inside of Unicode
+strings.</li>
+<li>With <tt class="docutils literal">lxml.html.clean.autolink</tt>, links with balanced parenthesis,
+that end in a parenthesis, will be linked in their entirety (typical
+with Wikipedia links).</li>
+</ul>
+</div>
+<div class="section" id="id133">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id134">
+<h1>2.1.3 (2008-11-17)</h1>
+<div class="section" id="id135">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id136">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Ref-count leaks when lxml enters a try-except statement while an
+outside exception lives in sys.exc_*(). This was due to a problem in
+Cython, not lxml itself.</li>
+<li>Parser Unicode decoding errors could get swallowed by other
+exceptions.</li>
+<li>Name/import errors in some Python modules.</li>
+<li>Internal DTD subsets that did not specify a system or public ID were
+not serialised and did not appear in the docinfo property of
+ElementTrees.</li>
+<li>Fix a pre-Py3k warning when parsing from a gzip file in Py2.6.</li>
+<li>Test suite fixes for libxml2 2.7.</li>
+<li>Resolver.resolve_string() did not work for non-ASCII byte strings.</li>
+<li>Resolver.resolve_file() was broken.</li>
+<li>Overriding the parser encoding didn't work for many encodings.</li>
+</ul>
+</div>
+<div class="section" id="id137">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id138">
+<h1>2.0.10 (2008-11-17)</h1>
+<div class="section" id="id139">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Ref-count leaks when lxml enters a try-except statement while an
+outside exception lives in sys.exc_*(). This was due to a problem in
+Cython, not lxml itself.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id140">
+<h1>2.1.2 (2008-09-05)</h1>
+<div class="section" id="id141">
+<h2>Features added</h2>
+<ul class="simple">
+<li>lxml.etree now tries to find the absolute path name of files when
+parsing from a file-like object.  This helps custom resolvers when
+resolving relative URLs, as lixbml2 can prepend them with the path
+of the source document.</li>
+</ul>
+</div>
+<div class="section" id="id142">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory problem when passing documents between threads.</li>
+<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
+exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
+</ul>
+</div>
+<div class="section" id="id143">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id144">
+<h1>2.0.9 (2008-09-05)</h1>
+<div class="section" id="id145">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory problem when passing documents between threads.</li>
+<li>Target parser did not honour the <tt class="docutils literal">recover</tt> option and raised an
+exception instead of calling <tt class="docutils literal">.close()</tt> on the target.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id146">
+<h1>2.1.1 (2008-07-24)</h1>
+<div class="section" id="id147">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id148">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when parsing XSLT stylesheets in a thread and using them in
+another.</li>
+<li>Encoding problem when including text with ElementInclude under
+Python 3.</li>
+</ul>
+</div>
+<div class="section" id="id149">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id150">
+<h1>2.0.8 (2008-07-24)</h1>
+<div class="section" id="id151">
+<h2>Features added</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
+with whitespace in URL attributes.</li>
+</ul>
+</div>
+<div class="section" id="id152">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when parsing XSLT stylesheets in a thread and using them in
+another.</li>
+<li>CSS selector parser dropped remaining expression after a function
+with parameters.</li>
+</ul>
+</div>
+<div class="section" id="id153">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="id154">
+<h1>2.1 (2008-07-09)</h1>
+<div class="section" id="id155">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Smart strings can be switched off in XPath (<tt class="docutils literal">smart_strings</tt>
+keyword option).</li>
+<li><tt class="docutils literal">lxml.html.rewrite_links()</tt> strips links to work around documents
+with whitespace in URL attributes.</li>
+</ul>
+</div>
+<div class="section" id="id156">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Custom resolvers were not used for XMLSchema includes/imports and
+XInclude processing.</li>
+<li>CSS selector parser dropped remaining expression after a function
+with parameters.</li>
+</ul>
+</div>
+<div class="section" id="id157">
+<h2>Other changes</h2>
+<ul class="simple">
+<li><tt class="docutils literal">objectify.enableRecursiveStr()</tt> was removed, use
+<tt class="docutils literal">objectify.enable_recursive_str()</tt> instead</li>
+<li>Speed-up when running XSLTs on documents from other threads</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id158">
+<h1>2.0.7 (2008-06-20)</h1>
+<div class="section" id="id159">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
+</ul>
+</div>
+<div class="section" id="id160">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Descending dot-separated classes in CSS selectors were not resolved
+correctly.</li>
+<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
+<li>Potential threading problem in XInclude.</li>
+<li>Crash in Element class lookup classes when the __init__() method of
+the super class is not called from Python subclasses.</li>
+</ul>
+</div>
+<div class="section" id="id161">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Non-ASCII characters in attribute values are no longer escaped on
+serialisation.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta3-2008-06-19">
+<h1>2.1beta3 (2008-06-19)</h1>
+<div class="section" id="id162">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Major overhaul of <tt class="docutils literal">tools/xpathgrep.py</tt> script.</li>
+<li>Pickling <tt class="docutils literal">ElementTree</tt> objects in lxml.objectify.</li>
+<li>Support for parsing from file-like objects that return unicode
+strings.</li>
+<li>New function <tt class="docutils literal">etree.cleanup_namespaces(el)</tt> that removes unused
+namespace declarations from a (sub)tree (experimental).</li>
+<li>XSLT results support the buffer protocol in Python 3.</li>
+<li>Polymorphic functions in <tt class="docutils literal">lxml.html</tt> that accept either a tree or
+a parsable string will return either a UTF-8 encoded byte string, a
+unicode string or a tree, based on the type of the input.
+Previously, the result was always a byte string or a tree.</li>
+<li>Support for Python 2.6 and 3.0 beta.</li>
+<li>File name handling now uses a heuristic to convert between byte
+strings (usually filenames) and unicode strings (usually URLs).</li>
+<li>Parsing from a plain file object frees the GIL under Python 2.x.</li>
+<li>Running <tt class="docutils literal">iterparse()</tt> on a plain file (or filename) frees the GIL
+on reading under Python 2.x.</li>
+<li>Conversion functions <tt class="docutils literal">html_to_xhtml()</tt> and <tt class="docutils literal">xhtml_to_html()</tt> in
+lxml.html (experimental).</li>
+<li>Most features in lxml.html work for XHTML namespaced tag names
+(experimental).</li>
+</ul>
+</div>
+<div class="section" id="id163">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><tt class="docutils literal">ElementTree.parse()</tt> didn't handle target parser result.</li>
+<li>Crash in Element class lookup classes when the __init__() method of
+the super class is not called from Python subclasses.</li>
+<li>A number of problems related to unicode/byte string conversion of
+filenames and error messages were fixed.</li>
+<li>Building on MacOS-X now passes the &quot;flat_namespace&quot; option to the C
+compiler, which reportedly prevents build quirks and crashes on this
+platform.</li>
+<li>Windows build was broken.</li>
+<li>Rare crash when serialising to a file object with certain encodings.</li>
+</ul>
+</div>
+<div class="section" id="id164">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Non-ASCII characters in attribute values are no longer escaped on
+serialisation.</li>
+<li>Passing non-ASCII byte strings or invalid unicode strings as .tag,
+namespaces, etc. will result in a ValueError instead of an
+AssertionError (just like the tag well-formedness check).</li>
+<li>Up to several times faster attribute access (i.e. tree traversal) in
+lxml.objectify.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id165">
+<h1>2.0.6 (2008-05-31)</h1>
+<div class="section" id="id166">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id167">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Incorrect evaluation of <tt class="docutils literal"><span class="pre">el.find(&quot;tag[child]&quot;)</span></tt>.</li>
+<li>Windows build was broken.</li>
+<li>Moving a subtree from a document created in one thread into a
+document of another thread could crash when the rest of the source
+document is deleted while the subtree is still in use.</li>
+<li>Rare crash when serialising to a file object with certain encodings.</li>
+</ul>
+</div>
+<div class="section" id="id168">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>lxml should now build without problems on MacOS-X.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="beta2-2008-05-02">
+<h1>2.1beta2 (2008-05-02)</h1>
+<div class="section" id="id169">
+<h2>Features added</h2>
+<ul class="simple">
+<li>All parse functions in lxml.html take a <tt class="docutils literal">parser</tt> keyword argument.</li>
+<li>lxml.html has a new parser class <tt class="docutils literal">XHTMLParser</tt> and a module
+attribute <tt class="docutils literal">xhtml_parser</tt> that provide XML parsers that are
+pre-configured for the lxml.html package.</li>
+</ul>
+</div>
+<div class="section" id="id170">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Moving a subtree from a document created in one thread into a
+document of another thread could crash when the rest of the source
+document is deleted while the subtree is still in use.</li>
+<li>Passing an nsmap when creating an Element will no longer strip
+redundantly defined namespace URIs.  This prevented the definition
+of more than one prefix for a namespace on the same Element.</li>
+</ul>
+</div>
+<div class="section" id="id171">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>If the default namespace is redundantly defined with a prefix on the
+same Element, the prefix will now be preferred for subelements and
+attributes.  This allows users to work around a problem in libxml2
+where attributes from the default namespace could serialise without
+a prefix even when they appear on an Element with a different
+namespace (i.e. they would end up in the wrong namespace).</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id172">
+<h1>2.0.5 (2008-05-01)</h1>
+<div class="section" id="id173">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id174">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Resolving to a filename in custom resolvers didn't work.</li>
+<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
+let some XSLT errors pass silently.</li>
+<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
+</ul>
+</div>
+<div class="section" id="id175">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="beta1-2008-04-15">
+<h1>2.1beta1 (2008-04-15)</h1>
+<div class="section" id="id176">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Error logging in Schematron (requires libxml2 2.6.32 or later).</li>
+<li>Parser option <tt class="docutils literal">strip_cdata</tt> for normalising or keeping CDATA
+sections.  Defaults to <tt class="docutils literal">True</tt> as before, thus replacing CDATA
+sections by their text content.</li>
+<li><tt class="docutils literal">CDATA()</tt> factory to wrap string content as CDATA section.</li>
+</ul>
+</div>
+<div class="section" id="id177">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Resolving to a filename in custom resolvers didn't work.</li>
+<li>lxml did not honour libxslt's second error state &quot;STOPPED&quot;, which
+let some XSLT errors pass silently.</li>
+<li>Memory leak in Schematron with libxml2 &gt;= 2.6.31.</li>
+<li>lxml.etree accepted non well-formed namespace prefix names.</li>
+</ul>
+</div>
+<div class="section" id="id178">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Major cleanup in internal <tt class="docutils literal">moveNodeToDocument()</tt> function, which
+takes care of namespace cleanup when moving elements between
+different namespace contexts.</li>
+<li>New Elements created through the <tt class="docutils literal">makeelement()</tt> method of an HTML
+parser or through lxml.html now end up in a new HTML document
+(doctype HTML 4.01 Transitional) instead of a generic XML document.
+This mostly impacts the serialisation and the availability of a DTD
+context.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id179">
+<h1>2.0.4 (2008-04-13)</h1>
+<div class="section" id="id180">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id181">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Hanging thread in conjunction with GTK threading.</li>
+<li>Crash bug in iterparse when moving elements into other documents.</li>
+<li>HTML elements' <tt class="docutils literal">.cssselect()</tt> method was broken.</li>
+<li><tt class="docutils literal"><span class="pre">ElementTree.find*()</span></tt> didn't accept QName objects.</li>
+</ul>
+</div>
+<div class="section" id="id182">
+<h2>Other changes</h2>
+</div>
+</div>
+<div class="section" id="alpha1-2008-03-27">
+<h1>2.1alpha1 (2008-03-27)</h1>
+<div class="section" id="id183">
+<h2>Features added</h2>
+<ul class="simple">
+<li>New event types 'comment' and 'pi' in <tt class="docutils literal">iterparse()</tt>.</li>
+<li><tt class="docutils literal">XSLTAccessControl</tt> instances have a property <tt class="docutils literal">options</tt> that
+returns a dict of access configuration options.</li>
+<li>Constant instances <tt class="docutils literal">DENY_ALL</tt> and <tt class="docutils literal">DENY_WRITE</tt> on
+<tt class="docutils literal">XSLTAccessControl</tt> class.</li>
+<li>Extension elements for XSLT (experimental!)</li>
+<li><tt class="docutils literal">Element.base</tt> property returns the xml:base or HTML base URL of
+an Element.</li>
+<li><tt class="docutils literal">docinfo.URL</tt> property is writable.</li>
+</ul>
+</div>
+<div class="section" id="id184">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Default encoding for plain text serialisation was different from
+that of XML serialisation (UTF-8 instead of ASCII).</li>
+</ul>
+</div>
+<div class="section" id="id185">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Minor API speed-ups.</li>
+<li>The benchmark suite now uses tail text in the trees, which makes the
+absolute numbers incomparable to previous results.</li>
+<li>Generating the HTML documentation now requires <a class="reference external" href="http://pygments.org/">Pygments</a>, which is
+used to enable syntax highlighting for the doctest examples.</li>
+</ul>
+<p>Most long-time deprecated functions and methods were removed:</p>
+<ul>
+<li><p class="first"><tt class="docutils literal">etree.clearErrorLog()</tt>, use <tt class="docutils literal">etree.clear_error_log()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.useGlobalPythonLog()</tt>, use
+<tt class="docutils literal">etree.use_global_python_log()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.ElementClassLookup.setFallback()</tt>, use
+<tt class="docutils literal">etree.ElementClassLookup.set_fallback()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.getDefaultParser()</tt>, use <tt class="docutils literal">etree.get_default_parser()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.setDefaultParser()</tt>, use <tt class="docutils literal">etree.set_default_parser()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">etree.setElementClassLookup()</tt>, use
+<tt class="docutils literal">etree.set_element_class_lookup()</tt></p>
+<p>Note that <tt class="docutils literal">parser.setElementClassLookup()</tt> has not been removed
+yet, although <tt class="docutils literal">parser.set_element_class_lookup()</tt> should be used
+instead.</p>
+</li>
+<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespace()</tt>, use
+<tt class="docutils literal">xpath_evaluator.register_namespace()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">xpath_evaluator.registerNamespaces()</tt>, use
+<tt class="docutils literal">xpath_evaluator.register_namespaces()</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">objectify.setPytypeAttributeTag</tt>, use
+<tt class="docutils literal">objectify.set_pytype_attribute_tag</tt></p>
+</li>
+<li><p class="first"><tt class="docutils literal">objectify.setDefaultParser()</tt>, use
+<tt class="docutils literal">objectify.set_default_parser()</tt></p>
+</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id186">
+<h1>2.0.3 (2008-03-26)</h1>
+<div class="section" id="id187">
+<h2>Features added</h2>
+<ul class="simple">
+<li>soupparser.parse() allows passing keyword arguments on to
+BeautifulSoup.</li>
+<li><tt class="docutils literal">fromstring()</tt> method in <tt class="docutils literal">lxml.html.soupparser</tt>.</li>
+</ul>
+</div>
+<div class="section" id="id188">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.diff</tt> didn't treat empty tags properly (e.g.,
+<tt class="docutils literal">&lt;br&gt;</tt>).</li>
+<li>Handle entity replacements correctly in target parser.</li>
+<li>Crash when using <tt class="docutils literal">iterparse()</tt> with XML Schema validation.</li>
+<li>The BeautifulSoup parser (soupparser.py) did not replace entities,
+which made them turn up in text content.</li>
+<li>Attribute assignment of custom PyTypes in objectify could fail to
+correctly serialise the value to a string.</li>
+</ul>
+</div>
+<div class="section" id="id189">
+<h2>Other changes</h2>
+<ul class="simple">
+<li><tt class="docutils literal">lxml.html.ElementSoup</tt> was replaced by a new module
+<tt class="docutils literal">lxml.html.soupparser</tt> with a more consistent API.  The old module
+remains for compatibility with ElementTree's own ElementSoup module.</li>
+<li>Setting the XSLT_CONFIG and XML2_CONFIG environment variables at
+build time will let setup.py pick up the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> and
+<tt class="docutils literal"><span class="pre">xslt-config</span></tt> scripts from the supplied path name.</li>
+<li>Passing <tt class="docutils literal"><span class="pre">--with-xml2-config=/path/to/xml2-config</span></tt> to setup.py will
+override the <tt class="docutils literal"><span class="pre">xml2-config</span></tt> script that is used to determine the C
+compiler options.  The same applies for the <tt class="docutils literal"><span class="pre">--with-xslt-config</span></tt>
+option.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id190">
+<h1>2.0.2 (2008-02-22)</h1>
+<div class="section" id="id191">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support passing <tt class="docutils literal">base_url</tt> to file parser functions to override
+the filename of the file(-like) object.</li>
+</ul>
+</div>
+<div class="section" id="id192">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The prefix for objectify's pytype namespace was missing from the set
+of default prefixes.</li>
+<li>Memory leak in Schematron (fixed only for libxml2 2.6.31+).</li>
+<li>Error type names in RelaxNG were reported incorrectly.</li>
+<li>Slice deletion bug fixed in objectify.</li>
+</ul>
+</div>
+<div class="section" id="id193">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Enabled doctests for some Python modules (especially <tt class="docutils literal">lxml.html</tt>).</li>
+<li>Add a <tt class="docutils literal">method</tt> argument to <tt class="docutils literal">lxml.html.tostring()</tt>
+(<tt class="docutils literal"><span class="pre">method=&quot;xml&quot;</span></tt> for XHTML output).</li>
+<li>Make it clearer that methods like <tt class="docutils literal">lxml.html.fromstring()</tt> take a
+<tt class="docutils literal">base_url</tt> argument.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id194">
+<h1>2.0.1 (2008-02-13)</h1>
+<div class="section" id="id195">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Child iteration in <tt class="docutils literal">lxml.pyclasslookup</tt>.</li>
+<li>Loads of new docstrings reflect the signature of functions and
+methods to make them visible in API docs and <tt class="docutils literal">help()</tt></li>
+</ul>
+</div>
+<div class="section" id="id196">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>The module <tt class="docutils literal">lxml.html.builder</tt> was duplicated as
+<tt class="docutils literal">lxml.htmlbuilder</tt></li>
+<li>Form elements would return None for <tt class="docutils literal">form.fields.keys()</tt> if there
+was an unnamed input field.  Now unnamed input fields are completely
+ignored.</li>
+<li>Setting an element slice in objectify could insert slice-overlapping
+elements at the wrong position.</li>
+</ul>
+</div>
+<div class="section" id="id197">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The generated API documentation was cleaned up and disburdened from
+non-public classes etc.</li>
+<li>The previously public module <tt class="docutils literal">lxml.html.setmixin</tt> was renamed to
+<tt class="docutils literal">lxml.html._setmixin</tt> as it is not an official part of lxml.  If
+you want to use it, feel free to copy it over to your own source
+base.</li>
+<li>Passing <tt class="docutils literal"><span class="pre">--with-xslt-config=/path/to/xslt-config</span></tt> to setup.py will
+override the <tt class="docutils literal"><span class="pre">xslt-config</span></tt> script that is used to determine the C
+compiler options.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id198">
+<h1>2.0 (2008-02-01)</h1>
+<div class="section" id="id199">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Passing the <tt class="docutils literal">unicode</tt> type as <tt class="docutils literal">encoding</tt> to <tt class="docutils literal">tostring()</tt> will
+serialise to unicode.  The <tt class="docutils literal">tounicode()</tt> function is now
+deprecated.</li>
+<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> can parse from StringIO.</li>
+<li><tt class="docutils literal">makeparser()</tt> function in <tt class="docutils literal">lxml.objectify</tt> to create a new
+parser with the usual objectify setup.</li>
+<li>Plain ASCII XPath string results are no longer forced into unicode
+objects as in 2.0beta1, but are returned as plain strings as before.</li>
+<li>All XPath string results are 'smart' objects that have a
+<tt class="docutils literal">getparent()</tt> method to retrieve their parent Element.</li>
+<li><tt class="docutils literal">with_tail</tt> option in serialiser functions.</li>
+<li>More accurate exception messages in validator creation.</li>
+<li>Parse-time XML schema validation (<tt class="docutils literal">schema</tt> parser keyword).</li>
+<li>XPath string results of the <tt class="docutils literal">text()</tt> function and attribute
+selection make their Element container accessible through a
+<tt class="docutils literal">getparent()</tt> method.  As a side-effect, they are now always
+unicode objects (even ASCII strings).</li>
+<li><tt class="docutils literal">XSLT</tt> objects are usable in any thread - at the cost of a deep
+copy if they were not created in that thread.</li>
+<li>Invalid entity names and character references will be rejected by
+the <tt class="docutils literal">Entity()</tt> factory.</li>
+<li><tt class="docutils literal">entity.text</tt> returns the textual representation of the entity,
+e.g. <tt class="docutils literal">&amp;amp;</tt>.</li>
+<li>New properties <tt class="docutils literal">position</tt> and <tt class="docutils literal">code</tt> on ParseError exception (as
+in ET 1.3)</li>
+<li>Rich comparison of <tt class="docutils literal">element.attrib</tt> proxies.</li>
+<li>ElementTree compatible TreeBuilder class.</li>
+<li>Use default prefixes for some common XML namespaces.</li>
+<li><tt class="docutils literal">lxml.html.clean.Cleaner</tt> now allows for a <tt class="docutils literal">host_whitelist</tt>, and
+two overridable methods: <tt class="docutils literal">allow_embedded_url(el, url)</tt> and the
+more general <tt class="docutils literal">allow_element(el)</tt>.</li>
+<li>Extended slicing of Elements as in <tt class="docutils literal"><span class="pre">element[1:-1:2]</span></tt>, both in
+etree and in objectify</li>
+<li>Resolvers can now provide a <tt class="docutils literal">base_url</tt> keyword argument when
+resolving a document as string data.</li>
+<li>When using <tt class="docutils literal">lxml.doctestcompare</tt> you can give the doctest option
+<tt class="docutils literal">NOPARSE_MARKUP</tt> (like <tt class="docutils literal"># doctest: +NOPARSE_MARKUP</tt>) to suppress
+the special checking for one test.</li>
+<li>Separate <tt class="docutils literal">feed_error_log</tt> property for the feed parser interface.
+The normal parser interface and <tt class="docutils literal">iterparse</tt> continue to use
+<tt class="docutils literal">error_log</tt>.</li>
+<li>The normal parsers and the feed parser interface are now separated
+and can be used concurrently on the same parser instance.</li>
+<li><tt class="docutils literal">fromstringlist()</tt> and <tt class="docutils literal">tostringlist()</tt> functions as in
+ElementTree 1.3</li>
+<li><tt class="docutils literal">iterparse()</tt> accepts an <tt class="docutils literal">html</tt> boolean keyword argument for
+parsing with the HTML parser (note that this interface may be
+subject to change)</li>
+<li>Parsers accept an <tt class="docutils literal">encoding</tt> keyword argument that overrides the encoding
+of the parsed documents.</li>
+<li>New C-API function <tt class="docutils literal">hasChild()</tt> to test for children</li>
+<li><tt class="docutils literal">annotate()</tt> function in objectify can annotate with Python types and XSI
+types in one step.  Accompanied by <tt class="docutils literal">xsiannotate()</tt> and <tt class="docutils literal">pyannotate()</tt>.</li>
+<li><tt class="docutils literal">ET.write()</tt>, <tt class="docutils literal">tostring()</tt> and <tt class="docutils literal">tounicode()</tt> now accept a keyword
+argument <tt class="docutils literal">method</tt> that can be one of 'xml' (or None), 'html' or 'text' to
+serialise as XML, HTML or plain text content.</li>
+<li><tt class="docutils literal">iterfind()</tt> method on Elements returns an iterator equivalent to
+<tt class="docutils literal">findall()</tt></li>
+<li><tt class="docutils literal">itertext()</tt> method on Elements</li>
+<li>Setting a QName object as value of the .text property or as an attribute
+will resolve its prefix in the respective context</li>
+<li>ElementTree-like parser target interface as described in
+<a class="reference external" href="http://effbot.org/elementtree/elementtree-xmlparser.htm">http://effbot.org/elementtree/elementtree-xmlparser.htm</a></li>
+<li>ElementTree-like feed parser interface on XMLParser and HTMLParser
+(<tt class="docutils literal">feed()</tt> and <tt class="docutils literal">close()</tt> methods)</li>
+<li>Reimplemented <tt class="docutils literal">objectify.E</tt> for better performance and improved
+integration with objectify.  Provides extended type support based on
+registered PyTypes.</li>
+<li>XSLT objects now support deep copying</li>
+<li>New <tt class="docutils literal">makeSubElement()</tt> C-API function that allows creating a new
+subelement straight with text, tail and attributes.</li>
+<li>XPath extension functions can now access the current context node
+(<tt class="docutils literal">context.context_node</tt>) and use a context dictionary
+(<tt class="docutils literal">context.eval_context</tt>) from the context provided in their first
+parameter</li>
+<li>HTML tag soup parser based on BeautifulSoup in <tt class="docutils literal">lxml.html.ElementSoup</tt></li>
+<li>New module <tt class="docutils literal">lxml.doctestcompare</tt> by Ian Bicking for writing simplified
+doctests based on XML/HTML output.  Use by importing <tt class="docutils literal">lxml.usedoctest</tt> or
+<tt class="docutils literal">lxml.html.usedoctest</tt> from within a doctest.</li>
+<li>New module <tt class="docutils literal">lxml.cssselect</tt> by Ian Bicking for selecting Elements with CSS
+selectors.</li>
+<li>New package <tt class="docutils literal">lxml.html</tt> written by Ian Bicking for advanced HTML
+treatment.</li>
+<li>Namespace class setup is now local to the <tt class="docutils literal">ElementNamespaceClassLookup</tt>
+instance and no longer global.</li>
+<li>Schematron validation (incomplete in libxml2)</li>
+<li>Additional <tt class="docutils literal">stringify</tt> argument to <tt class="docutils literal">objectify.PyType()</tt> takes a
+conversion function to strings to support setting text values from arbitrary
+types.</li>
+<li>Entity support through an <tt class="docutils literal">Entity</tt> factory and element classes.  XML
+parsers now have a <tt class="docutils literal">resolve_entities</tt> keyword argument that can be set to
+False to keep entities in the document.</li>
+<li><tt class="docutils literal">column</tt> field on error log entries to accompany the <tt class="docutils literal">line</tt> field</li>
+<li>Error specific messages in XPath parsing and evaluation
+NOTE: for evaluation errors, you will now get an XPathEvalError instead of
+an XPathSyntaxError.  To catch both, you can except on <tt class="docutils literal">XPathError</tt></li>
+<li>The regular expression functions in XPath now support passing a node-set
+instead of a string</li>
+<li>Extended type annotation in objectify: new <tt class="docutils literal">xsiannotate()</tt> function</li>
+<li>EXSLT RegExp support in standard XPath (not only XSLT)</li>
+</ul>
+</div>
+<div class="section" id="id200">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Missing import in <tt class="docutils literal">lxml.html.clean</tt>.</li>
+<li>Some Python 2.4-isms prevented lxml from building/running under
+Python 2.3.</li>
+<li>XPath on ElementTrees could crash when selecting the virtual root
+node of the ElementTree.</li>
+<li>Compilation <tt class="docutils literal"><span class="pre">--without-threading</span></tt> was buggy in alpha5/6.</li>
+<li>Memory leak in the <tt class="docutils literal">parse()</tt> function.</li>
+<li>Minor bugs in XSLT error message formatting.</li>
+<li>Result document memory leak in target parser.</li>
+<li>Target parser failed to report comments.</li>
+<li>In the <tt class="docutils literal">lxml.html</tt> <tt class="docutils literal">iter_links</tt> method, links in <tt class="docutils literal">&lt;object&gt;</tt>
+tags weren't recognized.  (Note: plugin-specific link parameters
+still aren't recognized.)  Also, the <tt class="docutils literal">&lt;embed&gt;</tt> tag, though not
+standard, is now included in <tt class="docutils literal">lxml.html.defs.special_inline_tags</tt>.</li>
+<li>Using custom resolvers on XSLT stylesheets parsed from a string
+could request ill-formed URLs.</li>
+<li>With <tt class="docutils literal">lxml.doctestcompare</tt> if you do <tt class="docutils literal">&lt;tag <span class="pre">xmlns=&quot;...&quot;&gt;</span></tt> in your
+output, it will then be namespace-neutral (before the ellipsis was
+treated as a real namespace).</li>
+<li>AttributeError in feed parser on parse errors</li>
+<li>XML feed parser setup problem</li>
+<li>Type annotation for unicode strings in <tt class="docutils literal">DataElement()</tt></li>
+<li>lxml failed to serialise namespace declarations of elements other than the
+root node of a tree</li>
+<li>Race condition in XSLT where the resolver context leaked between concurrent
+XSLT calls</li>
+<li>lxml.etree did not check tag/attribute names</li>
+<li>The XML parser did not report undefined entities as error</li>
+<li>The text in exceptions raised by XML parsers, validators and XPath
+evaluators now reports the first error that occurred instead of the last</li>
+<li>Passing '' as XPath namespace prefix did not raise an error</li>
+<li>Thread safety in XPath evaluators</li>
+</ul>
+</div>
+<div class="section" id="id201">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>Exceptions carry only the part of the error log that is related to
+the operation that caused the error.</li>
+<li><tt class="docutils literal">XMLSchema()</tt> and <tt class="docutils literal">RelaxNG()</tt> now enforce passing the source
+file/filename through the <tt class="docutils literal">file</tt> keyword argument.</li>
+<li>The test suite now skips most doctests under Python 2.3.</li>
+<li><tt class="docutils literal">make clean</tt> no longer removes the .c files (use <tt class="docutils literal">make
+realclean</tt> instead)</li>
+<li>Minor performance tweaks for Element instantiation and subelement
+creation</li>
+<li>Various places in the XPath, XSLT and iteration APIs now require
+keyword-only arguments.</li>
+<li>The argument order in <tt class="docutils literal">element.itersiblings()</tt> was changed to
+match the order used in all other iteration methods.  The second
+argument ('preceding') is now a keyword-only argument.</li>
+<li>The <tt class="docutils literal">getiterator()</tt> method on Elements and ElementTrees was
+reverted to return an iterator as it did in lxml 1.x.  The ET API
+specification allows it to return either a sequence or an iterator,
+and it traditionally returned a sequence in ET and an iterator in
+lxml.  However, it is now deprecated in favour of the <tt class="docutils literal">iter()</tt>
+method, which should be used in new code wherever possible.</li>
+<li>The 'pretty printed' serialisation of ElementTree objects now
+inserts newlines at the root level between processing instructions,
+comments and the root tag.</li>
+<li>A 'pretty printed' serialisation is now terminated with a newline.</li>
+<li>Second argument to <tt class="docutils literal">lxml.etree.Extension()</tt> helper is no longer
+required, third argument is now a keyword-only argument <tt class="docutils literal">ns</tt>.</li>
+<li><tt class="docutils literal">lxml.html.tostring</tt> takes an <tt class="docutils literal">encoding</tt> argument.</li>
+<li>The module source files were renamed to &quot;lxml.*.pyx&quot;, such as
+&quot;lxml.etree.pyx&quot;.  This was changed for consistency with the way
+Pyrex commonly handles package imports.  The main effect is that
+classes now know about their fully qualified class name, including
+the package name of their module.</li>
+<li>Keyword-only arguments in some API functions, especially in the
+parsers and serialisers.</li>
+<li>Tag name validation in lxml.etree (and lxml.html) now distinguishes
+between HTML tags and XML tags based on the parser that was used to
+parse or create them.  HTML tags no longer reject any non-ASCII
+characters in tag names but only spaces and the special characters
+<tt class="docutils literal"><span class="pre">&lt;&gt;&amp;/&quot;'</span></tt>.</li>
+<li>lxml.etree now emits a warning if you use XPath with libxml2 2.6.27
+(which can crash on certain XPath errors)</li>
+<li>Type annotation in objectify now preserves the already annotated type by
+default to prevent loosing type information that is already there.</li>
+<li><tt class="docutils literal">element.getiterator()</tt> returns a list, use <tt class="docutils literal">element.iter()</tt> to retrieve
+an iterator (ElementTree 1.3 compatible behaviour)</li>
+<li>objectify.PyType for None is now called &quot;NoneType&quot;</li>
+<li><tt class="docutils literal">el.getiterator()</tt> renamed to <tt class="docutils literal">el.iter()</tt>, following ElementTree 1.3 -
+original name is still available as alias</li>
+<li>In the public C-API, <tt class="docutils literal">findOrBuildNodeNs()</tt> was replaced by the more
+generic <tt class="docutils literal">findOrBuildNodeNsPrefix</tt></li>
+<li>Major refactoring in XPath/XSLT extension function code</li>
+<li>Network access in parsers disabled by default</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id202">
+<h1>1.3.6 (2007-10-29)</h1>
+<div class="section" id="id203">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Backported decref crash fix from 2.0</li>
+<li>Well hidden free-while-in-use crash bug in ObjectPath</li>
+</ul>
+</div>
+<div class="section" id="id204">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>The test suites now run <tt class="docutils literal">gc.collect()</tt> in the <tt class="docutils literal">tearDown()</tt>
+methods.  While this makes them take a lot longer to run, it also
+makes it easier to link a specific test to garbage collection
+problems that would otherwise appear in later tests.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id205">
+<h1>1.3.5 (2007-10-22)</h1>
+<div class="section" id="id206">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id207">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>lxml.etree could crash when adding more than 10000 namespaces to a
+document</li>
+<li>lxml failed to serialise namespace declarations of elements other
+than the root node of a tree</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id208">
+<h1>1.3.4 (2007-08-30)</h1>
+<div class="section" id="id209">
+<h2>Features added</h2>
+<ul class="simple">
+<li>The <tt class="docutils literal">ElementMaker</tt> in <tt class="docutils literal">lxml.builder</tt> now accepts the keyword arguments
+<tt class="docutils literal">namespace</tt> and <tt class="docutils literal">nsmap</tt> to set a namespace and nsmap for the Elements it
+creates.</li>
+<li>The <tt class="docutils literal">docinfo</tt> on ElementTree objects has new properties <tt class="docutils literal">internalDTD</tt>
+and <tt class="docutils literal">externalDTD</tt> that return a DTD object for the internal or external
+subset of the document respectively.</li>
+<li>Serialising an ElementTree now includes any internal DTD subsets that are
+part of the document, as well as comments and PIs that are siblings of the
+root node.</li>
+</ul>
+</div>
+<div class="section" id="id210">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Parsing with the <tt class="docutils literal">no_network</tt> option could fail</li>
+</ul>
+</div>
+<div class="section" id="id211">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>lxml now raises a TagNameWarning about tag names containing ':' instead of
+an Error as 1.3.3 did.  The reason is that a number of projects currently
+misuse the previous lack of tag name validation to generate namespace
+prefixes without declaring namespaces.  Apart from the danger of generating
+broken XML this way, it also breaks most of the namespace-aware tools in
+XML, including XPath, XSLT and validation.  lxml 1.3.x will continue to
+support this bug with a Warning, while lxml 2.0 will be strict about
+well-formed tag names (not only regarding ':').</li>
+<li>Serialising an Element no longer includes its comment and PI siblings (only
+ElementTree serialisation includes them).</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id212">
+<h1>1.3.3 (2007-07-26)</h1>
+<div class="section" id="id213">
+<h2>Features added</h2>
+<ul class="simple">
+<li>ElementTree compatible parser <tt class="docutils literal">ETCompatXMLParser</tt> strips processing
+instructions and comments while parsing XML</li>
+<li>Parsers now support stripping PIs (keyword argument 'remove_pis')</li>
+<li><tt class="docutils literal">etree.fromstring()</tt> now supports parsing both HTML and XML, depending on
+the parser you pass.</li>
+<li>Support <tt class="docutils literal">base_url</tt> keyword argument in <tt class="docutils literal">HTML()</tt> and <tt class="docutils literal">XML()</tt></li>
+</ul>
+</div>
+<div class="section" id="id214">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Parsing from Python Unicode strings failed on some platforms</li>
+<li><tt class="docutils literal">Element()</tt> did not raise an exception on tag names containing ':'</li>
+<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
+<tt class="docutils literal">ProcessingInstruction</tt> as tags. It also accepts <tt class="docutils literal">Element</tt> now.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id215">
+<h1>1.3.2 (2007-07-03)</h1>
+<div class="section" id="id216">
+<h2>Features added</h2>
+</div>
+<div class="section" id="id217">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>&quot;deallocating None&quot; crash bug</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id218">
+<h1>1.3.1 (2007-07-02)</h1>
+<div class="section" id="id219">
+<h2>Features added</h2>
+<ul class="simple">
+<li>objectify.DataElement now supports setting values from existing data
+elements (not just plain Python types) and reuses defined namespaces etc.</li>
+<li>E-factory support for lxml.objectify (<tt class="docutils literal">objectify.E</tt>)</li>
+</ul>
+</div>
+<div class="section" id="id220">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Better way to prevent crashes in Element proxy cleanup code</li>
+<li>objectify.DataElement didn't set up None value correctly</li>
+<li>objectify.DataElement didn't check the value against the provided type hints</li>
+<li>Reference-counting bug in <tt class="docutils literal">Element.attrib.pop()</tt></li>
+</ul>
+</div>
+</div>
+<div class="section" id="id221">
+<h1>1.3 (2007-06-24)</h1>
+<div class="section" id="id222">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Module <tt class="docutils literal">lxml.pyclasslookup</tt> module implements an Element class lookup
+scheme that can access the entire tree in read-only mode to help determining
+a suitable Element class</li>
+<li>Parsers take a <tt class="docutils literal">remove_comments</tt> keyword argument that skips over comments</li>
+<li><tt class="docutils literal">parse()</tt> function in <tt class="docutils literal">objectify</tt>, corresponding to <tt class="docutils literal">XML()</tt> etc.</li>
+<li><tt class="docutils literal">Element.addnext(el)</tt> and <tt class="docutils literal">Element.addprevious(el)</tt> methods to support
+adding processing instructions and comments around the root node</li>
+<li><tt class="docutils literal">Element.attrib</tt> was missing <tt class="docutils literal">clear()</tt> and <tt class="docutils literal">pop()</tt> methods</li>
+<li>Extended type annotation in objectify: cleaner annotation namespace setup
+plus new <tt class="docutils literal">deannotate()</tt> function</li>
+<li>Support for custom Element class instantiation in lxml.sax: passing a
+<tt class="docutils literal">makeelement</tt> function to the ElementTreeContentHandler will reuse the
+lookup context of that function</li>
+<li>'.' represents empty ObjectPath (identity)</li>
+<li><tt class="docutils literal">Element.values()</tt> to accompany the existing <tt class="docutils literal">.keys()</tt> and <tt class="docutils literal">.items()</tt></li>
+<li><tt class="docutils literal">collectAttributes()</tt> C-function to build a list of attribute
+keys/values/items for a libxml2 node</li>
+<li><tt class="docutils literal">DTD</tt> validator class (like <tt class="docutils literal">RelaxNG</tt> and <tt class="docutils literal">XMLSchema</tt>)</li>
+<li>HTML generator helpers by Fredrik Lundh in <tt class="docutils literal">lxml.htmlbuilder</tt></li>
+<li><tt class="docutils literal">ElementMaker</tt> XML generator by Fredrik Lundh in <tt class="docutils literal">lxml.builder.E</tt></li>
+<li>Support for pickeling <tt class="docutils literal">objectify.ObjectifiedElement</tt> objects to XML</li>
+<li><tt class="docutils literal">update()</tt> method on Element.attrib</li>
+<li>Optimised replacement for libxml2's _xmlReconsiliateNs(). This allows lxml
+a better handling of namespaces when moving elements between documents.</li>
+</ul>
+</div>
+<div class="section" id="id223">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Removing Elements from a tree could make them loose their namespace
+declarations</li>
+<li><tt class="docutils literal">ElementInclude</tt> didn't honour base URL of original document</li>
+<li>Replacing the children slice of an Element would cut off the tails of the
+original children</li>
+<li><tt class="docutils literal">Element.getiterator(tag)</tt> did not accept <tt class="docutils literal">Comment</tt> and
+<tt class="docutils literal">ProcessingInstruction</tt> as tags</li>
+<li>API functions now check incoming strings for XML conformity.  Zero bytes or
+low ASCII characters are no longer accepted (AssertionError).</li>
+<li>XSLT parsing failed to pass resolver context on to imported documents</li>
+<li>passing '' as namespace prefix in nsmap could be passed through to libxml2</li>
+<li>Objectify couldn't handle prefixed XSD type names in <tt class="docutils literal">xsi:type</tt></li>
+<li>More ET compatible behaviour when writing out XML declarations or not</li>
+<li>More robust error handling in <tt class="docutils literal">iterparse()</tt></li>
+<li>Documents lost their top-level PIs and comments on serialisation</li>
+<li>lxml.sax failed on comments and PIs. Comments are now properly ignored and
+PIs are copied.</li>
+<li>Possible memory leaks in namespace handling when moving elements between
+documents</li>
+</ul>
+</div>
+<div class="section" id="id224">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>major restructuring in the documentation</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id225">
+<h1>1.2.1 (2007-02-27)</h1>
+<div class="section" id="id226">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Build fixes for MS compiler</li>
+<li>Item assignments to special names like <tt class="docutils literal"><span class="pre">element[&quot;text&quot;]</span></tt> failed</li>
+<li>Renamed ObjectifiedDataElement.__setText() to _setText() to make it easier
+to access</li>
+<li>The pattern for attribute names in ObjectPath was too restrictive</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id227">
+<h1>1.2 (2007-02-20)</h1>
+<div class="section" id="id228">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Rich comparison of QName objects</li>
+<li>Support for regular expressions in benchmark selection</li>
+<li>get/set emulation (not .attrib!) for attributes on processing instructions</li>
+<li>ElementInclude Python module for ElementTree compatible XInclude processing
+that honours custom resolvers registered with the source document</li>
+<li>ElementTree.parser property holds the parser used to parse the document</li>
+<li>setup.py has been refactored for greater readability and flexibility</li>
+<li>--rpath flag to setup.py to induce automatic linking-in of dynamic library
+runtime search paths has been renamed to --auto-rpath. This makes it
+possible to pass an --rpath directly to distutils; previously this was being
+shadowed.</li>
+</ul>
+</div>
+<div class="section" id="id229">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Element instantiation now uses locks to prevent race conditions with threads</li>
+<li>ElementTree.write() did not raise an exception when the file was not writable</li>
+<li>Error handling could crash under Python &lt;= 2.4.1 - fixed by disabling thread
+support in these environments</li>
+<li>Element.find*() did not accept QName objects as path</li>
+</ul>
+</div>
+<div class="section" id="id230">
+<h2>Other changes</h2>
+<ul class="simple">
+<li>code cleanup: redundant _NodeBase super class merged into _Element class
+Note: although the impact should be zero in most cases, this change breaks
+the compatibiliy of the public C-API</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id231">
+<h1>1.1.2 (2006-10-30)</h1>
+<div class="section" id="id232">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Data elements in objectify support repr(), which is now used by dump()</li>
+<li>Source distribution now ships with a patched Pyrex</li>
+<li>New C-API function makeElement() to create new elements with text,
+tail, attributes and namespaces</li>
+<li>Reuse original parser flags for XInclude</li>
+<li>Simplified support for handling XSLT processing instructions</li>
+</ul>
+</div>
+<div class="section" id="id233">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Parser resources were not freed before the next parser run</li>
+<li>Open files and XML strings returned by Python resolvers were not
+closed/freed</li>
+<li>Crash in the IDDict returned by XMLDTDID</li>
+<li>Copying Comments and ProcessingInstructions failed</li>
+<li>Memory leak for external URLs in _XSLTProcessingInstruction.parseXSL()</li>
+<li>Memory leak when garbage collecting tailed root elements</li>
+<li>HTML script/style content was not propagated to .text</li>
+<li>Show text xincluded between text nodes correctly in .text and .tail</li>
+<li>'integer * objectify.StringElement' operation was not supported</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id234">
+<h1>1.1.1 (2006-09-21)</h1>
+<div class="section" id="id235">
+<h2>Features added</h2>
+<ul class="simple">
+<li>XSLT profiling support (<tt class="docutils literal">profile_run</tt> keyword)</li>
+<li>countchildren() method on objectify.ObjectifiedElement</li>
+<li>Support custom elements for tree nodes in lxml.objectify</li>
+</ul>
+</div>
+<div class="section" id="id236">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>lxml.objectify failed to support long data values (e.g., &quot;123L&quot;)</li>
+<li>Error messages from XSLT did not reach <tt class="docutils literal">XSLT.error_log</tt></li>
+<li>Factories objectify.Element() and objectify.DataElement() were missing
+<tt class="docutils literal">attrib</tt> and <tt class="docutils literal">nsmap</tt> keyword arguments</li>
+<li>Changing the default parser in lxml.objectify did not update the factories
+Element() and DataElement()</li>
+<li>Let lxml.objectify.Element() always generate tree elements (not data
+elements)</li>
+<li>Build under Windows failed ('0' bug in patched Pyrex version)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id237">
+<h1>1.1 (2006-09-13)</h1>
+<div class="section" id="id238">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Comments and processing instructions return '&lt;!-- coment --&gt;' and
+'&lt;?pi-target content?&gt;' for repr()</li>
+<li>Parsers are now the preferred (and default) place where element class lookup
+schemes should be registered.  Namespace lookup is no longer supported by
+default.</li>
+<li>Support for Python 2.5 beta</li>
+<li>Unlock the GIL for deep copying documents and for XPath()</li>
+<li>New <tt class="docutils literal">compact</tt> keyword argument for parsing read-only documents</li>
+<li>Support for parser options in iterparse()</li>
+<li>The <tt class="docutils literal">namespace</tt> axis is supported in XPath and returns (prefix, URI)
+tuples</li>
+<li>The XPath expression &quot;/&quot; now returns an empty list instead of raising an
+exception</li>
+<li>XML-Object API on top of lxml (lxml.objectify)</li>
+<li>Customizable Element class lookup:<ul>
+<li>different pre-implemented lookup mechanisms</li>
+<li>support for externally provided lookup functions</li>
+</ul>
+</li>
+<li>Support for processing instructions (ET-like, not compatible)</li>
+<li>Public C-level API for independent extension modules</li>
+<li>Module level <tt class="docutils literal">iterwalk()</tt> function as 'iterparse' for trees</li>
+<li>Module level <tt class="docutils literal">iterparse()</tt> function similar to ElementTree (see
+documentation for differences)</li>
+<li>Element.nsmap property returns a mapping of all namespace prefixes known at
+the Element to their namespace URI</li>
+<li>Reentrant threading support in RelaxNG, XMLSchema and XSLT</li>
+<li>Threading support in parsers and serializers:<ul>
+<li>All in-memory operations (tostring, parse(StringIO), etc.) free the GIL</li>
+<li>File operations (on file names) free the GIL</li>
+<li>Reading from file-like objects frees the GIL and reacquires it for reading</li>
+<li>Serialisation to file-like objects is single-threaded (high lock overhead)</li>
+</ul>
+</li>
+<li>Element iteration over XPath axes:<ul>
+<li>Element.iterdescendants() iterates over the descendants of an element</li>
+<li>Element.iterancestors() iterates over the ancestors of an element (from
+parent to parent)</li>
+<li>Element.itersiblings() iterates over either the following or preceding
+siblings of an element</li>
+<li>Element.iterchildren() iterates over the children of an element in either
+direction</li>
+<li>All iterators support the <tt class="docutils literal">tag</tt> keyword argument to restrict the
+generated elements</li>
+</ul>
+</li>
+<li>Element.getnext() and Element.getprevious() return the direct siblings of an
+element</li>
+</ul>
+</div>
+<div class="section" id="id239">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>filenames with local 8-bit encoding were not supported</li>
+<li>1.1beta did not compile under Python 2.3</li>
+<li>ignore unknown 'pyval' attribute values in objectify</li>
+<li>objectify.ObjectifiedElement.addattr() failed to accept Elements and Lists</li>
+<li>objectify.ObjectPath.setattr() failed to accept Elements and Lists</li>
+<li>XPathSyntaxError now inherits from XPathError</li>
+<li>Threading race conditions in RelaxNG and XMLSchema</li>
+<li>Crash when mixing elements from XSLT results into other trees, concurrent
+XSLT is only allowed when the stylesheet was parsed in the main thread</li>
+<li>The EXSLT <tt class="docutils literal">regexp:match</tt> function now works as defined (except for some
+differences in the regular expression syntax)</li>
+<li>Setting element.text to '' returned None on request, not the empty string</li>
+<li><tt class="docutils literal">iterparse()</tt> could crash on long XML files</li>
+<li>Creating documents no longer copies the parser for later URL resolving.  For
+performance reasons, only a reference is kept.  Resolver updates on the
+parser will now be reflected by documents that were parsed before the
+change.  Although this should rarely become visible, it is a behavioral
+change from 1.0.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id240">
+<h1>1.0.4 (2006-09-09)</h1>
+<div class="section" id="id241">
+<h2>Features added</h2>
+<ul class="simple">
+<li>List-like <tt class="docutils literal">Element.extend()</tt> method</li>
+</ul>
+</div>
+<div class="section" id="id242">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash in tail handling in <tt class="docutils literal">Element.replace()</tt></li>
+</ul>
+</div>
+</div>
+<div class="section" id="id243">
+<h1>1.0.3 (2006-08-08)</h1>
+<div class="section" id="id244">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Element.replace(old, new) method to replace a subelement by another one</li>
+</ul>
+</div>
+<div class="section" id="id245">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Crash when mixing elements from XSLT results into other trees</li>
+<li>Copying/deepcopying did not work for ElementTree objects</li>
+<li>Setting an attribute to a non-string value did not raise an exception</li>
+<li>Element.remove() deleted the tail text from the removed Element</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id246">
+<h1>1.0.2 (2006-06-27)</h1>
+<div class="section" id="id247">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for setting a custom default Element class as opposed to namespace
+specific classes (which still override the default class)</li>
+</ul>
+</div>
+<div class="section" id="id248">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Rare exceptions in Python list functions were not handled</li>
+<li>Parsing accepted unicode strings with XML encoding declaration in certain
+cases</li>
+<li>Parsing 8-bit encoded strings from StringIO objects raised an exception</li>
+<li>Module function <tt class="docutils literal">initThread()</tt> was removed - useless (and never worked)</li>
+<li>XSLT and parser exception messages include the error line number</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id249">
+<h1>1.0.1 (2006-06-09)</h1>
+<div class="section" id="id250">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Repeated calls to Element.attrib now efficiently return the same instance</li>
+</ul>
+</div>
+<div class="section" id="id251">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Document deallocation could crash in certain garbage collection scenarios</li>
+<li>Extension function calls in XSLT variable declarations could break the
+stylesheet and crash on repeated calls</li>
+<li>Deep copying Elements could loose namespaces declared in parents</li>
+<li>Deep copying Elements did not copy tail</li>
+<li>Parsing file(-like) objects failed to load external entities</li>
+<li>Parsing 8-bit strings from file(-like) objects raised an exception</li>
+<li>xsl:include failed when the stylesheet was parsed from a file-like object</li>
+<li>lxml.sax.ElementTreeProducer did not call startDocument() / endDocument()</li>
+<li>MSVC compiler complained about long strings (supports only 2048 bytes)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id252">
+<h1>1.0 (2006-06-01)</h1>
+<div class="section" id="id253">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Element.getiterator() and the findall() methods support finding arbitrary
+elements from a namespace (pattern <tt class="docutils literal">{namespace}*</tt>)</li>
+<li>Another speedup in tree iteration code</li>
+<li>General speedup of Python Element object creation and deallocation</li>
+<li>Writing C14N no longer serializes in memory (reduced memory footprint)</li>
+<li>PyErrorLog for error logging through the Python <tt class="docutils literal">logging</tt> module</li>
+<li><tt class="docutils literal">Element.getroottree()</tt> returns an ElementTree for the root node of the
+document that contains the element.</li>
+<li>ElementTree.getpath(element) returns a simple, absolute XPath expression to
+find the element in the tree structure</li>
+<li>Error logs have a <tt class="docutils literal">last_error</tt> attribute for convenience</li>
+<li>Comment texts can be changed through the API</li>
+<li>Formatted output via <tt class="docutils literal">pretty_print</tt> keyword in serialization functions</li>
+<li>XSLT can block access to file system and network via <tt class="docutils literal">XSLTAccessControl</tt></li>
+<li>ElementTree.write() no longer serializes in memory (reduced memory
+footprint)</li>
+<li>Speedup of Element.findall(tag) and Element.getiterator(tag)</li>
+<li>Support for writing the XML representation of Elements and ElementTrees to
+Python unicode strings via <tt class="docutils literal">etree.tounicode()</tt></li>
+<li>Support for writing XSLT results to Python unicode strings via <tt class="docutils literal">unicode()</tt></li>
+<li>Parsing a unicode string no longer copies the string (reduced memory
+footprint)</li>
+<li>Parsing file-like objects reads chunks rather than the whole file (reduced
+memory footprint)</li>
+<li>Parsing StringIO objects from the start avoids copying the string (reduced
+memory footprint)</li>
+<li>Read-only 'docinfo' attribute in ElementTree class holds DOCTYPE
+information, original encoding and XML version as seen by the parser</li>
+<li>etree module can be compiled without libxslt by commenting out the line
+<tt class="docutils literal">include &quot;xslt.pxi&quot;</tt> near the end of the etree.pyx source file</li>
+<li>Better error messages in parser exceptions</li>
+<li>Error reporting also works in XSLT</li>
+<li>Support for custom document loaders (URI resolvers) in parsers and XSLT,
+resolvers are registered at parser level</li>
+<li>Implementation of exslt:regexp for XSLT based on the Python 're' module,
+enabled by default, can be switched off with 'regexp=False' keyword argument</li>
+<li>Support for exslt extensions (libexslt) and libxslt extra functions
+(node-set, document, write, output)</li>
+<li>Substantial speedup in XPath.evaluate()</li>
+<li>HTMLParser for parsing (broken) HTML</li>
+<li>XMLDTDID function parses XML into tuple (root node, ID dict) based on xml:id
+implementation of libxml2 (as opposed to ET compatible XMLID)</li>
+</ul>
+</div>
+<div class="section" id="id254">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory leak in Element.__setitem__</li>
+<li>Memory leak in Element.attrib.items() and Element.attrib.values()</li>
+<li>Memory leak in XPath extension functions</li>
+<li>Memory leak in unicode related setup code</li>
+<li>Element now raises ValueError on empty tag names</li>
+<li>Namespace fixing after moving elements between documents could fail if the
+source document was freed too early</li>
+<li>Setting namespace-less tag names on namespaced elements ('{ns}t' -&gt; 't')
+didn't reset the namespace</li>
+<li>Unknown constants from newer libxml2 versions could raise exceptions in the
+error handlers</li>
+<li>lxml.etree compiles much faster</li>
+<li>On libxml2 &lt;= 2.6.22, parsing strings with encoding declaration could fail
+in certain cases</li>
+<li>Document reference in ElementTree objects was not updated when the root
+element was moved to a different document</li>
+<li>Running absolute XPath expressions on an Element now evaluates against the
+root tree</li>
+<li>Evaluating absolute XPath expressions (<tt class="docutils literal">/*</tt>) on an ElementTree could fail</li>
+<li>Crashes when calling XSLT, RelaxNG, etc. with uninitialized ElementTree
+objects</li>
+<li>Removed public function <tt class="docutils literal">initThreadLogging()</tt>, replaced by more general
+<tt class="docutils literal">initThread()</tt> which fixes a number of setup problems in threads</li>
+<li>Memory leak when using iconv encoders in tostring/write</li>
+<li>Deep copying Elements and ElementTrees maintains the document information</li>
+<li>Serialization functions raise LookupError for unknown encodings</li>
+<li>Memory deallocation crash resulting from deep copying elements</li>
+<li>Some ElementTree methods could crash if the root node was not initialized
+(neither file nor element passed to the constructor)</li>
+<li>Element/SubElement failed to set attribute namespaces from passed <tt class="docutils literal">attrib</tt>
+dictionary</li>
+<li><tt class="docutils literal">tostring()</tt> adds an XML declaration for non-ASCII encodings</li>
+<li><tt class="docutils literal">tostring()</tt> failed to serialize encodings that contain 0-bytes</li>
+<li>ElementTree.xpath() and XPathDocumentEvaluator were not using the
+ElementTree root node as reference point</li>
+<li>Calling <tt class="docutils literal"><span class="pre">document('')</span></tt> in XSLT failed to return the stylesheet</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id255">
+<h1>0.9.2 (2006-05-10)</h1>
+<div class="section" id="id256">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Speedup for Element.makeelement(): the new element reuses the original
+libxml2 document instead of creating a new empty one</li>
+<li>Speedup for reversed() iteration over element children (Py2.4+ only)</li>
+<li>ElementTree compatible QName class</li>
+<li>RelaxNG and XMLSchema accept any Element, not only ElementTrees</li>
+</ul>
+</div>
+<div class="section" id="id257">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>str(xslt_result) was broken for XSLT output other than UTF-8</li>
+<li>Memory leak if write_c14n fails to write the file after conversion</li>
+<li>Crash in XMLSchema and RelaxNG when passing non-schema documents</li>
+<li>Memory leak in RelaxNG() when RelaxNGParseError is raised</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id258">
+<h1>0.9.1 (2006-03-30)</h1>
+<div class="section" id="id259">
+<h2>Features added</h2>
+<ul class="simple">
+<li>lxml.sax.ElementTreeContentHandler checks closing elements and raises
+SaxError on mismatch</li>
+<li>lxml.sax.ElementTreeContentHandler supports namespace-less SAX events
+(startElement, endElement) and defaults to empty attributes (keyword
+argument)</li>
+<li>Speedup for repeatedly accessing element tag names</li>
+<li>Minor API performance improvements</li>
+</ul>
+</div>
+<div class="section" id="id260">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Memory deallocation bug when using XSLT output method &quot;html&quot;</li>
+<li>sax.py was handling UTF-8 encoded tag names where it shouldn't</li>
+<li>lxml.tests package will no longer be installed (is still in source tar)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id261">
+<h1>0.9 (2006-03-20)</h1>
+<div class="section" id="id262">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Error logging API for libxml2 error messages</li>
+<li>Various performance improvements</li>
+<li>Benchmark script for lxml, ElementTree and cElementTree</li>
+<li>Support for registering extension functions through new FunctionNamespace
+class (see doc/extensions.txt)</li>
+<li>ETXPath class for XPath expressions in ElementTree notation ('//{ns}tag')</li>
+<li>Support for variables in XPath expressions (also in XPath class)</li>
+<li>XPath class for compiled XPath expressions</li>
+<li>XMLID module level function (ElementTree compatible)</li>
+<li>XMLParser API for customized libxml2 parser configuration</li>
+<li>Support for custom Element classes through new Namespace API (see
+doc/namespace_extensions.txt)</li>
+<li>Common exception base class LxmlError for module exceptions</li>
+<li>real iterator support in iter(Element), Element.getiterator()</li>
+<li>XSLT objects are callable, result trees support str()</li>
+<li>Added MANIFEST.in for easier creation of RPM files.</li>
+<li>'getparent' method on elements allows navigation to an element's
+parent element.</li>
+<li>Python core compatible SAX tree builder and SAX event generator. See
+doc/sax.txt for more information.</li>
+</ul>
+</div>
+<div class="section" id="id263">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Segfaults and memory leaks in various API functions of Element</li>
+<li>Segfault in XSLT.tostring()</li>
+<li>ElementTree objects no longer interfere, Elements can be root of different
+ElementTrees at the same time</li>
+<li>document('') works in XSLT documents read from files (in-memory documents
+cannot support this due to libxslt deficiencies)</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id264">
+<h1>0.8 (2005-11-03)</h1>
+<div class="section" id="id265">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Support for copy.deepcopy() on elements. copy.copy() works also, but
+does the same thing, and does <em>not</em> create a shallow copy, as that
+makes no sense in the context of libxml2 trees. This means a
+potential incompatibility with ElementTree, but there's more chance
+that it works than if copy.copy() isn't supported at all.</li>
+<li>Increased compatibility with (c)ElementTree; .parse() on ElementTree is
+supported and parsing of gzipped XML files works.</li>
+<li>implemented index() on elements, allowing one to find the index of a
+SubElement.</li>
+</ul>
+</div>
+<div class="section" id="id266">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Use xslt-config instead of xml2-config to find out libxml2
+directories to take into account a case where libxslt is installed
+in a different directory than libxslt.</li>
+<li>Eliminate crash condition in iteration when text nodes are changed.</li>
+<li>Passing 'None' to tostring() does not result in a segfault anymore,
+but an AssertionError.</li>
+<li>Some test fixes for Windows.</li>
+<li>Raise XMLSyntaxError and XPathSyntaxError instead of plain python
+syntax errors. This should be less confusing.</li>
+<li>Fixed error with uncaught exception in Pyrex code.</li>
+<li>Calling lxml.etree.fromstring('') throws XMLSyntaxError instead of a
+segfault.</li>
+<li>has_key() works on attrib. 'in' tests also work correctly on attrib.</li>
+<li>INSTALL.txt was saying 2.2.16 instead of 2.6.16 as a supported
+libxml2 version, as it should.</li>
+<li>Passing a UTF-8 encoded string to the XML() function would fail;
+fixed.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id267">
+<h1>0.7 (2005-06-15)</h1>
+<div class="section" id="id268">
+<h2>Features added</h2>
+<ul class="simple">
+<li>parameters (XPath expressions) can be passed to XSLT using keyword
+parameters.</li>
+<li>Simple XInclude support. Calling the xinclude() method on a tree
+will process any XInclude statements in the document.</li>
+<li>XMLSchema support. Use the XMLSchema class or the convenience
+xmlschema() method on a tree to do XML Schema (XSD) validation.</li>
+<li>Added convenience xslt() method on tree. This is less efficient
+than the XSLT object, but makes it easier to write quick code.</li>
+<li>Added convenience relaxng() method on tree. This is less efficient
+than the RelaxNG object, but makes it easier to write quick code.</li>
+<li>Make it possible to use XPathEvaluator with elements as well. The
+XPathEvaluator in this case will retain the element so multiple
+XPath queries can be made against one element efficiently. This
+replaces the second argument to the .evaluate() method that existed
+previously.</li>
+<li>Allow registerNamespace() to be called on an XPathEvaluator, after
+creation, to add additional namespaces. Also allow registerNamespaces(),
+which does the same for a namespace dictionary.</li>
+<li>Add 'prefix' attribute to element to be able to read prefix information.
+This is entirely read-only.</li>
+<li>It is possible to supply an extra nsmap keyword parameter to
+the Element() and SubElement() constructors, which supplies a
+prefix to namespace URI mapping. This will create namespace
+prefix declarations on these elements and these prefixes will show up
+in XML serialization.</li>
+</ul>
+</div>
+<div class="section" id="id269">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Killed yet another memory management related bug: trees created
+using newDoc would not get a libxml2-level dictionary, which caused
+problems when deallocating these documents later if they contained a
+node that came from a document with a dictionary.</li>
+<li>Moving namespaced elements between documents was problematic as
+references to the original document would remain. This has been fixed
+by applying xmlReconciliateNs() after each move operation.</li>
+<li>Can pass None to 'dump()' without segfaults.</li>
+<li>tostring() works properly for non-root elements as well.</li>
+<li>Cleaned out the tostring() method so it should handle encoding
+correctly.</li>
+<li>Cleaned out the ElementTree.write() method so it should handle encoding
+correctly. Writing directly to a file should also be faster, as there is no
+need to go through a Python string in that case. Made sure the test cases
+test both serializing to StringIO as well as serializing to a real file.</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id270">
+<h1>0.6 (2005-05-14)</h1>
+<div class="section" id="id271">
+<h2>Features added</h2>
+<ul class="simple">
+<li>Changed setup.py so that library_dirs is also guessed. This should
+help with compilation on the Mac OS X platform, where otherwise the
+wrong library (shipping with the OS) could be picked up.</li>
+<li>Tweaked setup.py so that it picks up the version from version.txt.</li>
+</ul>
+</div>
+<div class="section" id="id272">
+<h2>Bugs fixed</h2>
+<ul class="simple">
+<li>Do the right thing when handling namespaced attributes.</li>
+<li>fix bug where tostring() moved nodes into new documents. tostring()
+had very nasty side-effects before this fix, sorry!</li>
+</ul>
+</div>
+</div>
+<div class="section" id="id273">
+<h1>0.5.1 (2005-04-09)</h1>
+<ul class="simple">
+<li>Python 2.2 compatibility fixes.</li>
+<li>unicode fixes in Element() and Comment() as well as XML(); unicode
+input wasn't properly being UTF-8 encoded.</li>
+</ul>
+</div>
+<div class="section" id="id274">
+<h1>0.5 (2005-04-08)</h1>
+<p>Initial public release.</p>
+</div>
+</div>
+<div class="footer">
+<hr class="footer" />
+Generated on: 2013-11-07.
+
+</div>
+</body>
+</html>
index f75ea941fe538615edf53f321c2753dfc60712fe..415dcc461c8b87050e365bdf0a22a0065978adb5 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="elementtree-compatibility-of-lxml-etree">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu current" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">ElementTree compatibility of lxml.etree</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu current" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">ElementTree compatibility of lxml.etree</h1>
 
 <p>A lot of care has been taken to ensure compatibility between etree and
 ElementTree.  Nonetheless, some differences and incompatibilities exist:</p>
@@ -183,7 +183,7 @@ enough to replace a shallow copy in your case.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index e9d7c0b5104b167bfe5829fa0b2a6f92c36aa69b..29a49095cc7f43098ec0fc74dd600085e26e97e2 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="credits">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu current" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Credits</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu current" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Credits</h1>
 
 <div class="section" id="main-contributors">
 <h1>Main contributors</h1>
@@ -72,7 +72,7 @@ Holger Krekel for originally hosting lxml on codespeak.net</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index d5681a1f98d49dd5437d6c7a054feb4feae0edda..1c78e5584bed493b154624ca251abad5771621a1 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="lxml-cssselect">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu current" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.cssselect</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu current" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.cssselect</h1>
 
 <p>lxml supports a number of interesting languages for tree traversal and element
 selection.  The most important is obviously <a class="reference external" href="xpathxslt.html#xpath">XPath</a>, but there is also
@@ -92,7 +92,7 @@ namespace URIs: the <tt class="docutils literal">CSSSelector</tt> class accepts
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 6146857ef5e6b65e7cb331a4611edb21fbde62d2..fb12486b5b18adb5166fc3a3b7ceeb2b267dc012 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="using-custom-element-classes-in-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu current" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Using custom Element classes in lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu current" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Using custom Element classes in lxml</h1>
 
 <p>lxml has very sophisticated support for custom Element classes.  You
 can provide your own classes for Elements and have lxml use them by
@@ -443,7 +443,7 @@ subclasses for elements of this namespace:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 971533eaef52e9f24107cbe22addd695b9132ee8..435cd528f520315e1c41c70785250c889b15b645 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="beautifulsoup-parser">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu current" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">BeautifulSoup Parser</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu current" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">BeautifulSoup Parser</h1>
 
 <p><a class="reference external" href="http://www.crummy.com/software/BeautifulSoup/">BeautifulSoup</a> is a Python package that parses broken HTML, just like
 lxml supports it based on the parser of libxml2.  BeautifulSoup uses a
@@ -169,7 +169,7 @@ BeautifulSoup's <a class="reference external" href="http://www.crummy.com/softwa
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 913929a0dea4e1b7906d24974c6b978ef6944406..82d5ac12aab3414a1a657b84959f059f20f21ed2 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="python-extensions-for-xpath-and-xslt">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu current" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Python extensions for XPath and XSLT</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu current" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Python extensions for XPath and XSLT</h1>
 
 <p>This document describes how to use Python extension functions in XPath
 and XSLT like this:</p>
@@ -505,7 +505,7 @@ will work:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 1974e5241f72703609eed85fb9da61106bc85195..ff86eae6e0e8fd4500719251a639429785df39d4 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="html5lib-parser">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu current" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">html5lib Parser</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu current" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">html5lib Parser</h1>
 
 <p><a class="reference external" href="http://code.google.com/p/html5lib/">html5lib</a> is a Python package that implements the HTML5 parsing algorithm
 which is heavily influenced by current browsers and based on the <a class="reference external" href="http://www.whatwg.org/specs/web-apps/current-work/">WHATWG
@@ -74,7 +74,7 @@ module.  Note that these are the parser classes provided by html5lib.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index e35b4a89722caa19cb2e24f216a99c8951ddf856..1b5fd547d89ca4a673b73231bd4a61585d8d1b3a 100644 (file)
@@ -10,7 +10,7 @@
 </head>
 <body>
 <div class="document" id="lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu current" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml - XML and HTML with Python</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu current" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml - XML and HTML with Python</h1>
 
 <div class="pagequote line-block">
 <div class="line"><a class="reference external" href="http://thread.gmane.org/gmane.comp.python.lxml.devel/3252/focus=3258">&#187; lxml takes all the pain out of XML. &#171;</a></div>
@@ -57,7 +57,7 @@ customisations and trainings on lxml and fast Python XML processing.</p>
 </div>
 <div class="section" id="documentation">
 <h1>Documentation</h1>
-<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-3.2.3.pdf">PDF
+<p>The complete lxml documentation is available for download as <a class="reference external" href="lxmldoc-3.2.4.pdf">PDF
 documentation</a>.  The HTML documentation from this web site is part of
 the normal <a class="reference external" href="#download">source download</a>.</p>
 <ul class="simple">
@@ -120,8 +120,8 @@ external C modules, including fast custom element class support.</p>
 Index</a> (PyPI).  It has the source
 that compiles on various platforms.  The source distribution is signed
 with <a class="reference external" href="pubkey.asc">this key</a>.</p>
-<p>The latest version is <a class="reference external" href="/files/lxml-3.2.3.tgz">lxml 3.2.3</a>, released 2013-07-28
-(<a class="reference external" href="/changes-3.2.3.html">changes for 3.2.3</a>).  <a class="reference external" href="#old-versions">Older versions</a>
+<p>The latest version is <a class="reference external" href="/files/lxml-3.2.4.tgz">lxml 3.2.4</a>, released 2013-11-07
+(<a class="reference external" href="/changes-3.2.4.html">changes for 3.2.4</a>).  <a class="reference external" href="#old-versions">Older versions</a>
 are listed below.</p>
 <p>Please take a look at the
 <a class="reference external" href="installation.html">installation instructions</a> !</p>
@@ -129,7 +129,7 @@ are listed below.</p>
 part of the source distribution, so if you want to download the
 documentation for offline use, take the source archive and copy the
 <tt class="docutils literal">doc/html</tt> directory out of the source tree, or use the
-<a class="reference external" href="lxmldoc-3.2.3.pdf">PDF documentation</a>.</p>
+<a class="reference external" href="lxmldoc-3.2.4.pdf">PDF documentation</a>.</p>
 <p>The latest installable developer sources should usually be available from the
 <a class="reference external" href="http://lxml.de/build/">build server</a>.  It's also possible to check out
 the latest development version of lxml from github directly, using a command
@@ -178,6 +178,7 @@ obstacle to using lxml in your codebase.</p>
 <a class="reference external" href="http://lxml.de/3.1/">3.1</a>
 and the <a class="reference external" href="http://lxml.de/dev/">latest in-development version</a>.</p>
 <ul class="simple">
+<li><a class="reference external" href="/files/lxml-3.2.3.tgz">lxml 3.2.3</a>, released 2013-07-28 (<a class="reference external" href="/changes-3.2.3.html">changes for 3.2.3</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.2.2.tgz">lxml 3.2.2</a>, released 2013-07-28 (<a class="reference external" href="/changes-3.2.2.html">changes for 3.2.2</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.2.1.tgz">lxml 3.2.1</a>, released 2013-05-11 (<a class="reference external" href="/changes-3.2.1.html">changes for 3.2.1</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.2.0.tgz">lxml 3.2.0</a>, released 2013-04-28 (<a class="reference external" href="/changes-3.2.0.html">changes for 3.2.0</a>)</li>
@@ -188,16 +189,7 @@ and the <a class="reference external" href="http://lxml.de/dev/">latest in-devel
 <li><a class="reference external" href="/files/lxml-3.0.2.tgz">lxml 3.0.2</a>, released 2012-12-14 (<a class="reference external" href="/changes-3.0.2.html">changes for 3.0.2</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.0.1.tgz">lxml 3.0.1</a>, released 2012-10-14 (<a class="reference external" href="/changes-3.0.1.html">changes for 3.0.1</a>)</li>
 <li><a class="reference external" href="/files/lxml-3.0.tgz">lxml 3.0</a>, released 2012-10-08 (<a class="reference external" href="/changes-3.0.html">changes for 3.0</a>)</li>
-<li><a class="reference external" href="/files/lxml-3.0beta1.tgz">lxml 3.0beta1</a>, released 2012-09-26 (<a class="reference external" href="/changes-3.0beta1.html">changes for 3.0beta1</a>)</li>
-<li><a class="reference external" href="/files/lxml-3.0alpha2.tgz">lxml 3.0alpha2</a>, released 2012-08-23 (<a class="reference external" href="/changes-3.0alpha2.html">changes for 3.0alpha2</a>)</li>
-<li><a class="reference external" href="/files/lxml-3.0alpha1.tgz">lxml 3.0alpha1</a>, released 2012-07-31 (<a class="reference external" href="/changes-3.0alpha1.html">changes for 3.0alpha1</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.3.5.tgz">lxml 2.3.5</a>, released 2012-07-31 (<a class="reference external" href="/changes-2.3.5.html">changes for 2.3.5</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.3.4.tgz">lxml 2.3.4</a>, released 2012-03-26 (<a class="reference external" href="/changes-2.3.4.html">changes for 2.3.4</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.3.3.tgz">lxml 2.3.3</a>, released 2012-01-04 (<a class="reference external" href="/changes-2.3.3.html">changes for 2.3.3</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.3.2.tgz">lxml 2.3.2</a>, released 2011-11-11 (<a class="reference external" href="/changes-2.3.2.html">changes for 2.3.2</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.3.1.tgz">lxml 2.3.1</a>, released 2011-09-25 (<a class="reference external" href="/changes-2.3.1.html">changes for 2.3.1</a>)</li>
-<li><a class="reference external" href="/files/lxml-2.3.tgz">lxml 2.3</a>, released 2011-02-06 (<a class="reference external" href="/changes-2.3.html">changes for 2.3</a>)</li>
-<li><a class="reference external" href="http://lxml.de/2.3/#old-versions">older releases</a></li>
+<li><a class="reference external" href="http://lxml.de/3.0/#old-versions">older releases</a></li>
 </ul>
 </div><div class="section" id="legal-notice-for-donations">
 <h1>Legal Notice for Donations</h1>
@@ -220,7 +212,7 @@ donation is non-refundable.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 2cdbf1548762fb422599f504f736107a7ac1ad7d..d47a587ca8c319e19a568055b935db053c2b0949 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="installing-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu current" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Installing lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu current" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Installing lxml</h1>
 
 <p>For special installation instructions regarding MS Windows and
 MacOS-X, see the specific sections below.</p>
@@ -62,6 +62,12 @@ to pip:</p>
 <pre class="literal-block">
 pip install lxml==3.1.2
 </pre>
+<p>To speed up the build in test environments, e.g. on a continuous
+integration server, disable the C compiler optimisations by setting
+the <tt class="docutils literal">CFLAGS</tt> environment variable:</p>
+<pre class="literal-block">
+CFLAGS="-O0"  pip install lxml
+</pre>
 <ul>
 <li><p class="first">For <strong>MS Windows</strong>, recent lxml releases feature community donated
 binary distributions, although you might still want to take a look
@@ -160,7 +166,7 @@ follow the static build instructions above.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 3b11430e0c6df40998a7d64b2a329f0b8ba95662..865a871311de1ed4bf07da43b39a82b6d4a93aec 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="why-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu current" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Why lxml?</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu current" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Why lxml?</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -66,7 +66,7 @@ having to learn new things -- XML is complicated enough.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 5ff867f66a5b8a6c5ef15972c8e79e30cc993fdd..bd764b34ff437aae5b6ff4db7d0776e2ec8288d0 100644 (file)
@@ -11,7 +11,7 @@
 </head>
 <body>
 <div class="document" id="how-to-read-the-source-of-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu current" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to read the source of lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu current" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">How to read the source of lxml</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -270,7 +270,7 @@ implemented in pure Python.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index c10e00c85ecd352c4abbb77863cf813b69eaeea7..3056daa9c5c6163daa5ab7af32555807fd8d8c39 100644 (file)
@@ -9,7 +9,7 @@
 </head>
 <body>
 <div class="document" id="lxml-html">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu current" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.html</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu current" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.html</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -670,7 +670,7 @@ microformat.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index a7f4eea7cfecefb3fca3f2314d15430c96d3ed53..d1cdfdf54eca072dd2eb906fbc14f76d00a943e6 100644 (file)
@@ -9,7 +9,7 @@
 </head>
 <body>
 <div class="document" id="lxml-objectify">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu current" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.objectify</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu current" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">lxml.objectify</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -1149,7 +1149,7 @@ support any XPath expression.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 1e762c40e76b522e00c3890c3aec6153d4411261..b2177e5ebeb10a4f0806ada97d84e90b10998feb 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="parsing-xml-and-html-with-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu current" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Parsing XML and HTML with lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu current" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Parsing XML and HTML with lxml</h1>
 
 <p>lxml provides a very simple and powerful API for parsing XML and HTML.  It
 supports one-step parsing as well as step-by-step parsing using an
@@ -583,7 +583,7 @@ code.</p>
 <h2>iterwalk</h2>
 <p>A second extension over ElementTree is the <tt class="docutils literal">iterwalk()</tt> function.  It
 behaves exactly like <tt class="docutils literal">iterparse()</tt>, but works on Elements and ElementTrees:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">xml</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">fromstring</span><span class="p">(</span><span class="n">xml</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="n">context</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">iterwalk</span><span class="p">(</span>
 <span class="gp">... </span>            <span class="n">root</span><span class="p">,</span> <span class="n">events</span><span class="o">=</span><span class="p">(</span><span class="s">"start"</span><span class="p">,</span> <span class="s">"end"</span><span class="p">),</span> <span class="n">tag</span><span class="o">=</span><span class="s">"element"</span><span class="p">)</span>
 <span class="gp">&gt;&gt;&gt; </span><span class="k">for</span> <span class="n">action</span><span class="p">,</span> <span class="n">elem</span> <span class="ow">in</span> <span class="n">context</span><span class="p">:</span>
@@ -613,14 +613,12 @@ library.  First of all, where ElementTree would raise an exception, the
 parsers in lxml.etree can handle unicode strings straight away.  This is most
 helpful for XML snippets embedded in source code using the <tt class="docutils literal">XML()</tt>
 function:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">uxml</span> <span class="o">=</span> <span class="s">u'&lt;test&gt; </span><span class="se">\uf8d1</span><span class="s"> + </span><span class="se">\uf8d2</span><span class="s"> &lt;/test&gt;'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">uxml</span>
-<span class="go">u'&lt;test&gt; \uf8d1 + \uf8d2 &lt;/test&gt;'</span>
-<span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span><span class="n">uxml</span><span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">root</span> <span class="o">=</span> <span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span> <span class="s">u'&lt;test&gt; </span><span class="se">\uf8d1</span><span class="s"> + </span><span class="se">\uf8d2</span><span class="s"> &lt;/test&gt;'</span> <span class="p">)</span>
 </pre></div>
 <p>This requires, however, that unicode strings do not specify a conflicting
 encoding themselves and thus lie about their real encoding:</p>
-<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span> <span class="s">u'&lt;?xml version="1.0" encoding="ASCII"?&gt;</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span> <span class="n">uxml</span> <span class="p">)</span>
+<div class="syntax"><pre><span class="gp">&gt;&gt;&gt; </span><span class="n">etree</span><span class="o">.</span><span class="n">XML</span><span class="p">(</span> <span class="s">u'&lt;?xml version="1.0" encoding="ASCII"?&gt;</span><span class="se">\n</span><span class="s">'</span> <span class="o">+</span>
+<span class="gp">... </span>           <span class="s">u'&lt;test&gt; </span><span class="se">\uf8d1</span><span class="s"> + </span><span class="se">\uf8d2</span><span class="s"> &lt;/test&gt;'</span> <span class="p">)</span>
 <span class="gt">Traceback (most recent call last):</span>
   <span class="c">...</span>
 <span class="gr">ValueError</span>: <span class="n">Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.</span>
@@ -676,7 +674,7 @@ with UTF-8 is also considerably faster in most cases.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 1c4c2e3fd6d32d972bdc97cb4d3f2a2ab8269808..d855893b107714deeea75ccb7556f057aa3582da 100644 (file)
@@ -11,7 +11,7 @@
 </head>
 <body>
 <div class="document" id="benchmarks-and-speed">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu current" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Benchmarks and Speed</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu current" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Benchmarks and Speed</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -782,7 +782,7 @@ random.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 7f47d9dac83948ac8d66e50b3a27e3f409b13c48..3007c97f65046357fb65405c5435cd346171fdf2 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="document-loading-and-url-resolving">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu current" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Document loading and URL resolving</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu current" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Document loading and URL resolving</h1>
 
 <div class="contents topic" id="contents">
 <p class="topic-title first">Contents</p>
@@ -234,7 +234,7 @@ documents or raises exceptions if access is denied.</li>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index e50201eff1308fdecbd40d10521b8e9663b16d3c..be26655cb550762b69932242ee64f9ea66596750 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="sax-support">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu current" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Sax support</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu current" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Sax support</h1>
 
 <p>In this document we'll describe lxml's SAX support.  lxml has support for
 producing SAX events for an ElementTree or Element.  lxml can also turn SAX
@@ -108,7 +108,7 @@ DOM implementation connot generate SAX events from a DOM tree.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index e1f6a6c9fdb6319e9b01fe6197ea225ba329505d..3b9fc0344c0870b2ae7409b20853ab945b67f09b 100644 (file)
@@ -8,5 +8,5 @@
    </head>
    <body>
   <h1>Sitemap of lxml.de - Processing XML and HTML with Python</h1>
-   <div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/files/">Download files</a></li></ul></div></body>
+   <div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/files/">Download files</a></li></ul></div></body>
  </html>
\ No newline at end of file
index 7b8b16a19a1e8375e07843698d8dd9138bca71e7..1721ae176b9d124a025d133135ff9f32fb1ff1da 100644 (file)
@@ -11,7 +11,7 @@
 </head>
 <body>
 <div class="document" id="the-lxml-etree-tutorial">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu current" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The lxml.etree Tutorial</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu current" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">The lxml.etree Tutorial</h1>
 <table class="docinfo" frame="void" rules="none">
 <col class="docinfo-name" />
 <col class="docinfo-content" />
@@ -1141,7 +1141,7 @@ whereas the other two examples would raise a <tt class="docutils literal">StopIt
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 87528ca78672a28df977da23e17f04b83993dd6c..707baaca5c63df533d3633c4a97ea884b1b2a101 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="validation-with-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu current" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Validation with lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu current" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu foreign" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">Validation with lxml</h1>
 
 <p>Apart from the built-in DTD support in parsers, lxml currently supports three
 schema languages: <a class="reference external" href="http://en.wikipedia.org/wiki/Document_Type_Definition">DTD</a>, <a class="reference external" href="http://www.relaxng.org/">Relax NG</a> and <a class="reference external" href="http://www.w3.org/XML/Schema">XML Schema</a>.  All three provide
@@ -536,7 +536,7 @@ reporting during validation.</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 1169c8b48f2d82a8dff5c77620dd96b769855da7..3e413fe8d69db17053a8f86306fe6eca31f538ef 100644 (file)
@@ -8,7 +8,7 @@
 </head>
 <body>
 <div class="document" id="xpath-and-xslt-with-lxml">
-<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu current" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 3-menu"><li class="menu title"><a href="changes-3.2.3.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">XPath and XSLT with lxml</h1>
+<div class="sidemenu"><ul id="lxml-section"><li><span class="section title">lxml</span><ul class="menu foreign" id="index-menu"><li class="menu title"><a href="index.html">lxml</a><ul class="submenu"><li class="menu item"><a href="index.html#introduction">Introduction</a></li><li class="menu item"><a href="index.html#support-the-project">Support the project</a></li><li class="menu item"><a href="index.html#documentation">Documentation</a></li><li class="menu item"><a href="index.html#download">Download</a></li><li class="menu item"><a href="index.html#mailing-list">Mailing list</a></li><li class="menu item"><a href="index.html#bug-tracker">Bug tracker</a></li><li class="menu item"><a href="index.html#license">License</a></li><li class="menu item"><a href="index.html#old-versions">Old Versions</a></li><li class="menu item"><a href="index.html#legal-notice-for-donations">Legal Notice for Donations</a></li></ul></li></ul><ul class="menu foreign" id="intro-menu"><li class="menu title"><a href="intro.html">Why lxml?</a><ul class="submenu"><li class="menu item"><a href="intro.html#motto">Motto</a></li><li class="menu item"><a href="intro.html#aims">Aims</a></li></ul></li></ul><ul class="menu foreign" id="installation-menu"><li class="menu title"><a href="installation.html">Installing lxml</a><ul class="submenu"><li class="menu item"><a href="installation.html#requirements">Requirements</a></li><li class="menu item"><a href="installation.html#installation">Installation</a></li><li class="menu item"><a href="installation.html#building-lxml-from-sources">Building lxml from sources</a></li><li class="menu item"><a href="installation.html#using-lxml-with-python-libxml2">Using lxml with python-libxml2</a></li><li class="menu item"><a href="installation.html#ms-windows">MS Windows</a></li><li class="menu item"><a href="installation.html#macos-x">MacOS-X</a></li></ul></li></ul><ul class="menu foreign" id="performance-menu"><li class="menu title"><a href="performance.html">Benchmarks and Speed</a><ul class="submenu"><li class="menu item"><a href="performance.html#general-notes">General notes</a></li><li class="menu item"><a href="performance.html#how-to-read-the-timings">How to read the timings</a></li><li class="menu item"><a href="performance.html#parsing-and-serialising">Parsing and Serialising</a></li><li class="menu item"><a href="performance.html#the-elementtree-api">The ElementTree API</a></li><li class="menu item"><a href="performance.html#xpath">XPath</a></li><li class="menu item"><a href="performance.html#a-longer-example">A longer example</a></li><li class="menu item"><a href="performance.html#lxml-objectify">lxml.objectify</a></li></ul></li></ul><ul class="menu foreign" id="compatibility-menu"><li class="menu title"><a href="compatibility.html">ElementTree compatibility of lxml.etree</a></li></ul><ul class="menu foreign" id="FAQ-menu"><li class="menu title"><a href="FAQ.html">lxml FAQ - Frequently Asked Questions</a><ul class="submenu"><li class="menu item"><a href="FAQ.html#general-questions">General Questions</a></li><li class="menu item"><a href="FAQ.html#installation">Installation</a></li><li class="menu item"><a href="FAQ.html#contributing">Contributing</a></li><li class="menu item"><a href="FAQ.html#bugs">Bugs</a></li><li class="menu item"><a href="FAQ.html#id1">Threading</a></li><li class="menu item"><a href="FAQ.html#parsing-and-serialisation">Parsing and Serialisation</a></li><li class="menu item"><a href="FAQ.html#xpath-and-document-traversal">XPath and Document Traversal</a></li></ul></li></ul></li></ul><ul id="Developing with lxml-section"><li><span class="section title">Developing with lxml</span><ul class="menu foreign" id="tutorial-menu"><li class="menu title"><a href="tutorial.html">The lxml.etree Tutorial</a><ul class="submenu"><li class="menu item"><a href="tutorial.html#the-element-class">The Element class</a></li><li class="menu item"><a href="tutorial.html#the-elementtree-class">The ElementTree class</a></li><li class="menu item"><a href="tutorial.html#parsing-from-strings-and-files">Parsing from strings and files</a></li><li class="menu item"><a href="tutorial.html#namespaces">Namespaces</a></li><li class="menu item"><a href="tutorial.html#the-e-factory">The E-factory</a></li><li class="menu item"><a href="tutorial.html#elementpath">ElementPath</a></li></ul></li></ul><ul class="menu foreign" id="api index-menu"><li class="menu title"><a href="api/index.html">API reference</a></li></ul><ul class="menu foreign" id="api-menu"><li class="menu title"><a href="api.html">APIs specific to lxml.etree</a><ul class="submenu"><li class="menu item"><a href="api.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="api.html#other-element-apis">Other Element APIs</a></li><li class="menu item"><a href="api.html#trees-and-documents">Trees and Documents</a></li><li class="menu item"><a href="api.html#iteration">Iteration</a></li><li class="menu item"><a href="api.html#error-handling-on-exceptions">Error handling on exceptions</a></li><li class="menu item"><a href="api.html#error-logging">Error logging</a></li><li class="menu item"><a href="api.html#serialisation">Serialisation</a></li><li class="menu item"><a href="api.html#incremental-xml-generation">Incremental XML generation</a></li><li class="menu item"><a href="api.html#cdata">CDATA</a></li><li class="menu item"><a href="api.html#xinclude-and-elementinclude">XInclude and ElementInclude</a></li><li class="menu item"><a href="api.html#write-c14n-on-elementtree">write_c14n on ElementTree</a></li></ul></li></ul><ul class="menu foreign" id="parsing-menu"><li class="menu title"><a href="parsing.html">Parsing XML and HTML with lxml</a><ul class="submenu"><li class="menu item"><a href="parsing.html#parsers">Parsers</a></li><li class="menu item"><a href="parsing.html#the-target-parser-interface">The target parser interface</a></li><li class="menu item"><a href="parsing.html#the-feed-parser-interface">The feed parser interface</a></li><li class="menu item"><a href="parsing.html#iterparse-and-iterwalk">iterparse and iterwalk</a></li><li class="menu item"><a href="parsing.html#python-unicode-strings">Python unicode strings</a></li></ul></li></ul><ul class="menu foreign" id="validation-menu"><li class="menu title"><a href="validation.html">Validation with lxml</a><ul class="submenu"><li class="menu item"><a href="validation.html#validation-at-parse-time">Validation at parse time</a></li><li class="menu item"><a href="validation.html#id1">DTD</a></li><li class="menu item"><a href="validation.html#relaxng">RelaxNG</a></li><li class="menu item"><a href="validation.html#xmlschema">XMLSchema</a></li><li class="menu item"><a href="validation.html#id2">Schematron</a></li><li class="menu item"><a href="validation.html#id3">(Pre-ISO-Schematron)</a></li></ul></li></ul><ul class="menu current" id="xpathxslt-menu"><li class="menu title"><a href="xpathxslt.html">XPath and XSLT with lxml</a><ul class="submenu"><li class="menu item"><a href="xpathxslt.html#xpath">XPath</a></li><li class="menu item"><a href="xpathxslt.html#xslt">XSLT</a></li></ul></li></ul><ul class="menu foreign" id="objectify-menu"><li class="menu title"><a href="objectify.html">lxml.objectify</a><ul class="submenu"><li class="menu item"><a href="objectify.html#the-lxml-objectify-api">The lxml.objectify API</a></li><li class="menu item"><a href="objectify.html#asserting-a-schema">Asserting a Schema</a></li><li class="menu item"><a href="objectify.html#objectpath">ObjectPath</a></li><li class="menu item"><a href="objectify.html#python-data-types">Python data types</a></li><li class="menu item"><a href="objectify.html#how-data-types-are-matched">How data types are matched</a></li><li class="menu item"><a href="objectify.html#what-is-different-from-lxml-etree">What is different from lxml.etree?</a></li></ul></li></ul><ul class="menu foreign" id="lxmlhtml-menu"><li class="menu title"><a href="lxmlhtml.html">lxml.html</a><ul class="submenu"><li class="menu item"><a href="lxmlhtml.html#parsing-html">Parsing HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-element-methods">HTML Element Methods</a></li><li class="menu item"><a href="lxmlhtml.html#running-html-doctests">Running HTML doctests</a></li><li class="menu item"><a href="lxmlhtml.html#creating-html-with-the-e-factory">Creating HTML with the E-factory</a></li><li class="menu item"><a href="lxmlhtml.html#working-with-links">Working with links</a></li><li class="menu item"><a href="lxmlhtml.html#forms">Forms</a></li><li class="menu item"><a href="lxmlhtml.html#cleaning-up-html">Cleaning up HTML</a></li><li class="menu item"><a href="lxmlhtml.html#html-diff">HTML Diff</a></li><li class="menu item"><a href="lxmlhtml.html#examples">Examples</a></li></ul></li></ul><ul class="menu foreign" id="cssselect-menu"><li class="menu title"><a href="cssselect.html">lxml.cssselect</a><ul class="submenu"><li class="menu item"><a href="cssselect.html#the-cssselector-class">The CSSSelector class</a></li><li class="menu item"><a href="cssselect.html#the-cssselect-method">The cssselect method</a></li><li class="menu item"><a href="cssselect.html#supported-selectors">Supported Selectors</a></li><li class="menu item"><a href="cssselect.html#namespaces">Namespaces</a></li></ul></li></ul><ul class="menu foreign" id="elementsoup-menu"><li class="menu title"><a href="elementsoup.html">BeautifulSoup Parser</a><ul class="submenu"><li class="menu item"><a href="elementsoup.html#parsing-with-the-soupparser">Parsing with the soupparser</a></li><li class="menu item"><a href="elementsoup.html#entity-handling">Entity handling</a></li><li class="menu item"><a href="elementsoup.html#using-soupparser-as-a-fallback">Using soupparser as a fallback</a></li><li class="menu item"><a href="elementsoup.html#using-only-the-encoding-detection">Using only the encoding detection</a></li></ul></li></ul><ul class="menu foreign" id="html5parser-menu"><li class="menu title"><a href="html5parser.html">html5lib Parser</a><ul class="submenu"><li class="menu item"><a href="html5parser.html#differences-to-regular-html-parsing">Differences to regular HTML parsing</a></li><li class="menu item"><a href="html5parser.html#function-reference">Function Reference</a></li></ul></li></ul></li></ul><ul id="Extending lxml-section"><li><span class="section title">Extending lxml</span><ul class="menu foreign" id="resolvers-menu"><li class="menu title"><a href="resolvers.html">Document loading and URL resolving</a><ul class="submenu"><li class="menu item"><a href="resolvers.html#xml-catalogs">XML Catalogs</a></li><li class="menu item"><a href="resolvers.html#uri-resolvers">URI Resolvers</a></li><li class="menu item"><a href="resolvers.html#document-loading-in-context">Document loading in context</a></li><li class="menu item"><a href="resolvers.html#i-o-access-control-in-xslt">I/O access control in XSLT</a></li></ul></li></ul><ul class="menu foreign" id="extensions-menu"><li class="menu title"><a href="extensions.html">Python extensions for XPath and XSLT</a><ul class="submenu"><li class="menu item"><a href="extensions.html#xpath-extension-functions">XPath Extension functions</a></li><li class="menu item"><a href="extensions.html#xslt-extension-elements">XSLT extension elements</a></li></ul></li></ul><ul class="menu foreign" id="element classes-menu"><li class="menu title"><a href="element_classes.html">Using custom Element classes in lxml</a><ul class="submenu"><li class="menu item"><a href="element_classes.html#background-on-element-proxies">Background on Element proxies</a></li><li class="menu item"><a href="element_classes.html#element-initialization">Element initialization</a></li><li class="menu item"><a href="element_classes.html#setting-up-a-class-lookup-scheme">Setting up a class lookup scheme</a></li><li class="menu item"><a href="element_classes.html#generating-xml-with-custom-classes">Generating XML with custom classes</a></li><li class="menu item"><a href="element_classes.html#id1">Implementing namespaces</a></li></ul></li></ul><ul class="menu foreign" id="sax-menu"><li class="menu title"><a href="sax.html">Sax support</a><ul class="submenu"><li class="menu item"><a href="sax.html#building-a-tree-from-sax-events">Building a tree from SAX events</a></li><li class="menu item"><a href="sax.html#producing-sax-events-from-an-elementtree-or-element">Producing SAX events from an ElementTree or Element</a></li><li class="menu item"><a href="sax.html#interfacing-with-pulldom-minidom">Interfacing with pulldom/minidom</a></li></ul></li></ul><ul class="menu foreign" id="capi-menu"><li class="menu title"><a href="capi.html">The public C-API of lxml.etree</a><ul class="submenu"><li class="menu item"><a href="capi.html#writing-external-modules-in-cython">Writing external modules in Cython</a></li><li class="menu item"><a href="capi.html#writing-external-modules-in-c">Writing external modules in C</a></li></ul></li></ul></li></ul><ul id="Developing lxml-section"><li><span class="section title">Developing lxml</span><ul class="menu foreign" id="build-menu"><li class="menu title"><a href="build.html">How to build lxml from source</a><ul class="submenu"><li class="menu item"><a href="build.html#cython">Cython</a></li><li class="menu item"><a href="build.html#github-git-and-hg">Github, git and hg</a></li><li class="menu item"><a href="build.html#building-the-sources">Building the sources</a></li><li class="menu item"><a href="build.html#running-the-tests-and-reporting-errors">Running the tests and reporting errors</a></li><li class="menu item"><a href="build.html#building-an-egg">Building an egg</a></li><li class="menu item"><a href="build.html#building-lxml-on-macos-x">Building lxml on MacOS-X</a></li><li class="menu item"><a href="build.html#static-linking-on-windows">Static linking on Windows</a></li><li class="menu item"><a href="build.html#building-debian-packages-from-svn-sources">Building Debian packages from SVN sources</a></li></ul></li></ul><ul class="menu foreign" id="lxml source howto-menu"><li class="menu title"><a href="lxml-source-howto.html">How to read the source of lxml</a><ul class="submenu"><li class="menu item"><a href="lxml-source-howto.html#what-is-cython">What is Cython?</a></li><li class="menu item"><a href="lxml-source-howto.html#where-to-start">Where to start?</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-etree">lxml.etree</a></li><li class="menu item"><a href="lxml-source-howto.html#python-modules">Python modules</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-objectify">lxml.objectify</a></li><li class="menu item"><a href="lxml-source-howto.html#lxml-html">lxml.html</a></li></ul></li></ul><ul class="menu foreign" id="changes 3 2 4-menu"><li class="menu title"><a href="changes-3.2.4.html">Release Changelog</a></li></ul><ul class="menu foreign" id="credits-menu"><li class="menu title"><a href="credits.html">Credits</a><ul class="submenu"><li class="menu item"><a href="credits.html#main-contributors">Main contributors</a></li><li class="menu item"><a href="credits.html#special-thanks-goes-to">Special thanks goes to:</a></li></ul></li></ul></li><li><a href="http://lxml.de/sitemap.html">Sitemap</a></li></ul></div><h1 class="title">XPath and XSLT with lxml</h1>
 
 <p>lxml supports XPath 1.0, XSLT 1.0 and the EXSLT extensions through
 libxml2 and libxslt in a standards compliant way.</p>
@@ -589,7 +589,7 @@ If you want to free it from memory, just do:</p>
 </div>
 <div class="footer">
 <hr class="footer" />
-Generated on: 2013-07-28.
+Generated on: 2013-11-07.
 
 </div>
 </body>
index 170c3bcacce336f044e41d45d1de29349e8fa941..f91d14a643bc486b024aa9dd5b70274acf46f82e 100644 (file)
@@ -157,8 +157,8 @@ Index <http://pypi.python.org/pypi/lxml/>`_ (PyPI).  It has the source
 that compiles on various platforms.  The source distribution is signed
 with `this key <pubkey.asc>`_.
 
-The latest version is `lxml 3.2.3`_, released 2013-07-28
-(`changes for 3.2.3`_).  `Older versions <#old-versions>`_
+The latest version is `lxml 3.2.4`_, released 2013-11-07
+(`changes for 3.2.4`_).  `Older versions <#old-versions>`_
 are listed below.
 
 Please take a look at the
@@ -239,7 +239,9 @@ See the web sites of lxml
 `3.1 <http://lxml.de/3.1/>`_
 and the `latest in-development version <http://lxml.de/dev/>`_.
 
-.. _`PDF documentation`: lxmldoc-3.2.3.pdf
+.. _`PDF documentation`: lxmldoc-3.2.4.pdf
+
+* `lxml 3.2.3`_, released 2013-07-28 (`changes for 3.2.3`_)
 
 * `lxml 3.2.2`_, released 2013-07-28 (`changes for 3.2.2`_)
 
@@ -261,26 +263,9 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 
 * `lxml 3.0`_, released 2012-10-08 (`changes for 3.0`_)
 
-* `lxml 3.0beta1`_, released 2012-09-26 (`changes for 3.0beta1`_)
-
-* `lxml 3.0alpha2`_, released 2012-08-23 (`changes for 3.0alpha2`_)
-
-* `lxml 3.0alpha1`_, released 2012-07-31 (`changes for 3.0alpha1`_)
-
-* `lxml 2.3.5`_, released 2012-07-31 (`changes for 2.3.5`_)
-
-* `lxml 2.3.4`_, released 2012-03-26 (`changes for 2.3.4`_)
-
-* `lxml 2.3.3`_, released 2012-01-04 (`changes for 2.3.3`_)
-
-* `lxml 2.3.2`_, released 2011-11-11 (`changes for 2.3.2`_)
-
-* `lxml 2.3.1`_, released 2011-09-25 (`changes for 2.3.1`_)
-
-* `lxml 2.3`_, released 2011-02-06 (`changes for 2.3`_)
-
-* `older releases <http://lxml.de/2.3/#old-versions>`_
+* `older releases <http://lxml.de/3.0/#old-versions>`_
 
+.. _`lxml 3.2.4`: /files/lxml-3.2.4.tgz
 .. _`lxml 3.2.3`: /files/lxml-3.2.3.tgz
 .. _`lxml 3.2.2`: /files/lxml-3.2.2.tgz
 .. _`lxml 3.2.1`: /files/lxml-3.2.1.tgz
@@ -292,17 +277,8 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 .. _`lxml 3.0.2`: /files/lxml-3.0.2.tgz
 .. _`lxml 3.0.1`: /files/lxml-3.0.1.tgz
 .. _`lxml 3.0`: /files/lxml-3.0.tgz
-.. _`lxml 3.0beta1`: /files/lxml-3.0beta1.tgz
-.. _`lxml 3.0alpha2`: /files/lxml-3.0alpha2.tgz
-.. _`lxml 3.0alpha1`: /files/lxml-3.0alpha1.tgz
-.. _`lxml 2.3.6`: /files/lxml-2.3.6.tgz
-.. _`lxml 2.3.5`: /files/lxml-2.3.5.tgz
-.. _`lxml 2.3.4`: /files/lxml-2.3.4.tgz
-.. _`lxml 2.3.3`: /files/lxml-2.3.3.tgz
-.. _`lxml 2.3.2`: /files/lxml-2.3.2.tgz
-.. _`lxml 2.3.1`: /files/lxml-2.3.1.tgz
-.. _`lxml 2.3`: /files/lxml-2.3.tgz
 
+.. _`changes for 3.2.4`: /changes-3.2.4.html
 .. _`changes for 3.2.3`: /changes-3.2.3.html
 .. _`changes for 3.2.2`: /changes-3.2.2.html
 .. _`changes for 3.2.1`: /changes-3.2.1.html
@@ -314,13 +290,3 @@ and the `latest in-development version <http://lxml.de/dev/>`_.
 .. _`changes for 3.0.2`: /changes-3.0.2.html
 .. _`changes for 3.0.1`: /changes-3.0.1.html
 .. _`changes for 3.0`: /changes-3.0.html
-.. _`changes for 3.0beta1`: /changes-3.0beta1.html
-.. _`changes for 3.0alpha2`: /changes-3.0alpha2.html
-.. _`changes for 3.0alpha1`: /changes-3.0alpha1.html
-.. _`changes for 2.3.6`: /changes-2.3.6.html
-.. _`changes for 2.3.5`: /changes-2.3.5.html
-.. _`changes for 2.3.4`: /changes-2.3.4.html
-.. _`changes for 2.3.3`: /changes-2.3.3.html
-.. _`changes for 2.3.2`: /changes-2.3.2.html
-.. _`changes for 2.3.1`: /changes-2.3.1.html
-.. _`changes for 2.3`: /changes-2.3.html
index c0829fbbb080478700c0303f24c86a38616f0e3f..3f652e15b82b6020d0048996f8fb3dc80e69e40e 100644 (file)
@@ -727,7 +727,7 @@ behaves exactly like ``iterparse()``, but works on Elements and ElementTrees:
 .. sourcecode:: pycon
 
 
-  >>> root = etree.XML(xml)
+  >>> root = etree.fromstring(xml)
   >>> context = etree.iterwalk(
   ...             root, events=("start", "end"), tag="element")
   >>> for action, elem in context:
@@ -760,17 +760,15 @@ function:
 
 .. sourcecode:: pycon
 
-  >>> uxml = u'<test> \uf8d1 + \uf8d2 </test>'
-  >>> uxml
-  u'<test> \uf8d1 + \uf8d2 </test>'
-  >>> root = etree.XML(uxml)
+  >>> root = etree.XML( u'<test> \uf8d1 + \uf8d2 </test>' )
 
 This requires, however, that unicode strings do not specify a conflicting
 encoding themselves and thus lie about their real encoding:
 
 .. sourcecode:: pycon
 
-  >>> etree.XML( u'<?xml version="1.0" encoding="ASCII"?>\n' + uxml )
+  >>> etree.XML( u'<?xml version="1.0" encoding="ASCII"?>\n' +
+  ...            u'<test> \uf8d1 + \uf8d2 </test>' )
   Traceback (most recent call last):
     ...
   ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.
diff --git a/doc/pdf/pubkey.asc b/doc/pdf/pubkey.asc
deleted file mode 100644 (file)
index f72804c..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
------BEGIN PGP PUBLIC KEY BLOCK-----
-Version: GnuPG v1.4.2 (GNU/Linux)
-
-mQGiBEQf3JQRBACciSqxoX0q3VurkRENVVtG/pVqtFh/d2CohbVJlLCrO4s7nnPj
-CTfZFt6tmykZjsLJl24XpEJt0O/C0jLcaBqvXVgVvRXHz4DjEYYuQF4LPthhI4MA
-4T7ExptX4lU5g3BVJ46vPU8uRBbbxarBRas9rYewgnrYKWpZZCa7yMq+9wCgnyyR
-Si4E3viLwi77jda135nA6vcD/iqu8zIl9/dFuUcOvxJrhrm+UdY72puZ1TVczSAH
-GOqMjrKkfyHlaJh/ZzWENpTZIfOdVhy7Chvva18vH4Wz7jKj5UeIpRrBvjAD28r3
-Y3W5bfsnpPkvDOyU1vqBsw4q+/250GXEX0JqV2Rbf5yLVgEZPdGrswO460dr4UVS
-8RS0BACYTmyrz57AugHc5tRkqNw6o7ux2deOT0c3AbUcOWtOocGumCsUf+M1nOrc
-VWkeBWTv4HIIiecWYY/KwIemTthQGjxywaZDxOlBT0BOL/+vfYTq/plZULXr+g90
-rSe82+kLl9N5onkBDJKeDIcJDzRoxIRPV1i0Om/5JBI4jmUnv7QnU3RlZmFuIEJl
-aG5lbCA8c2NvZGVyQHVzZXJzLmJlcmxpb3MuZGU+iF8EExECACAFAkQiqKYCGwMG
-CwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRANPVNpCNOgHi+2AJ0a0JH8iP3RqrOL
-JefvHz1dSl3MxACYo7Ma6CeIgsGnyaSSdNOmNVXn+IhGBBARAgAGBQJEIqk0AAoJ
-ELO5mMzzmgZbmCcAoKZ2En1IlsxBpaPPxgWYrUOWfc6hAKCBWODMMOYptCBkSrjg
-m3gsrjHgYbQsU3RlZmFuIEJlaG5lbCA8c2NvZGVyQHVzZXJzLnNvdXJjZWZvcmdl
-Lm5ldD6IYAQTEQIAIAUCRB/clAIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJ
-EA09U2kI06Aen2YAn0hvuDs+Gslq9vPRFFbsFNJI40PmAJ0chjiiEy0xV5C+n6YX
-XFuldRDILYhGBBARAgAGBQJEIp4AAAoJELO5mMzzmgZbgKQAn3pWrmFdj8YaEyuR
-tEjKVZJDQ6ZVAJ0Y1igwADT40BPra+G/xiLa3YbCrrkCDQREH9ynEAgAiR4/0r0d
-doViNECfSLClllu5K0Bo1SEiMtvVNC3sJYgVzBddD8Xn8UAdjyAgmaL5FC2FsNQu
-RxxKkNlHNYCq8ZSWtZaL2MQ+SyMUyHv6VXVCGuSW0COpzbx58u+SZpjyESJ1kaZc
-73SaIw6kv/dVQHjurwmlo1lg3dLZ3PG08WGCYUMqkkv2K+J7+puzE2Cjo31gTq4s
-LYDCV26wjVQ6BqT2EcHQhVEjh0xq5ugc908cr/2FQAKkTifEbF+OVBGWiFMGgri+
-6+G54/BV/RakpvNCFYBiZHn/M9mQaWt7XoTmnEQ1ldq5KNlRhkqnQRF/NK5VpGcQ
-29As28aqpZTECwADBgf/WlRvBRI1Q1eIv2falEv7C6sOxqc3kr5z1uUBTRG5v9t6
-ff9k/J4oC6cnQx00GK3ZR8ija6bl8zwu+0m0M3rW49Krb1rsiT7r4ahOZ7p9RRro
-oG3NbUJYgMG10D1nxpaioYqa/m+PpILJM0wfYZZEuX0xkZcOB24yb+J7EIcGR09T
-mMd5sXtdTU+w/p7Xi2cP61uQ8qixyHBH8E06qgW2JtVFV9rGn7CNUOvkNaUBRnY5
-QxhdkvKJRx7voOLYWZFUBIWgto+6vmTgKmc2Ho6qddzME9UgwUNcknRgm0cf6Cxr
-6zPtxZl8a6KemjQcK7kARSmMNCDkqp/Pohe519A5vYhJBBgRAgAJBQJEH9ynAhsM
-AAoJEA09U2kI06Aesv4AnjiVQVLzqnNS/64vvMMP1UARY3HtAJ90YxNGhRNIhWYL
-UU16oJlGD/9M1Q==
-=gWy2
------END PGP PUBLIC KEY BLOCK-----
index 297dd293ac7bc6f75e3cd1b486712db56a3417b1..fd88f4e3bb7db07027b76b5c7ef0a19e3fde3c41 100644 (file)
@@ -1,12 +1,12 @@
 Metadata-Version: 1.1
 Name: lxml
-Version: 3.2.3
+Version: 3.2.4
 Summary: Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API.
 Home-page: http://lxml.de/
 Author: lxml dev team
 Author-email: lxml-dev@lxml.de
 License: UNKNOWN
-Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.3.tar.gz
+Download-URL: http://pypi.python.org/packages/source/l/lxml/lxml-3.2.4.tar.gz
 Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libraries.  It
         provides safe and convenient access to these libraries using the ElementTree
         API.
@@ -37,13 +37,28 @@ Description: lxml is a Pythonic, mature binding for the libxml2 and libxslt libr
         as soon as a maintenance branch has been established.  Note that this
         requires Cython to be installed at an appropriate version for the build.
         
-        3.2.3 (2013-07-28)
+        3.2.4 (2013-11-07)
         ==================
         
+        Features added
+        --------------
+        
         Bugs fixed
         ----------
         
-        * Fix support for Python 2.4 which was lost in 3.2.2.
+        * Memory leak when creating an XPath evaluator in a thread.
+        
+        * LP#1228881: ``repr(XSLTAccessControl)`` failed in Python 3.
+        
+        * Raise ``ValueError`` when trying to append an Element to itself or
+          to one of its own descendants.
+        
+        * LP#1206077: htmldiff discarded whitespace from the output.
+        
+        * Compressed plain-text serialisation to file-like objects was broken.
+        
+        Other changes
+        -------------
         
         
         
index 278892ee0af1adf83ce97145398f66a6ddc444c6..17a3197467af33745f824ce8e2fb526d7b043d5b 100644 (file)
@@ -59,7 +59,7 @@ doc/html/FAQ.html
 doc/html/api.html
 doc/html/build.html
 doc/html/capi.html
-doc/html/changes-3.2.3.html
+doc/html/changes-3.2.4.html
 doc/html/compatibility.html
 doc/html/credits.html
 doc/html/cssselect.html
@@ -516,7 +516,6 @@ doc/licenses/BSD.txt
 doc/licenses/GPL.txt
 doc/licenses/ZopePublicLicense.txt
 doc/licenses/elementtree.txt
-doc/pdf/pubkey.asc
 doc/s5/Makefile
 doc/s5/lxml-ep2008.html
 doc/s5/lxml-ep2008.txt
index d88f215e7d3a753df9086980ac3a2918c73c4f07..41df5ee38713353045e30b750053b2f020ebd472 100644 (file)
@@ -1193,9 +1193,14 @@ cdef int _replaceSlice(_Element parent, xmlNode* c_node,
 cdef int _appendChild(_Element parent, _Element child) except -1:
     u"""Append a new child to a parent element.
     """
-    cdef xmlNode* c_next
-    cdef xmlNode* c_node = child._c_node
-    cdef xmlDoc* c_source_doc = c_node.doc
+    c_node = child._c_node
+    c_source_doc = c_node.doc
+    # prevent cycles
+    c_parent = parent._c_node
+    while c_parent:
+        if c_parent is c_node:
+            raise ValueError("cannot append parent to itself")
+        c_parent = c_parent.parent
     # store possible text node
     c_next = c_node.next
     # move node itself
@@ -1209,10 +1214,14 @@ cdef int _appendChild(_Element parent, _Element child) except -1:
 cdef int _prependChild(_Element parent, _Element child) except -1:
     u"""Prepend a new child to a parent element.
     """
-    cdef xmlNode* c_next
-    cdef xmlNode* c_child
-    cdef xmlNode* c_node = child._c_node
-    cdef xmlDoc* c_source_doc = c_node.doc
+    c_node = child._c_node
+    c_source_doc = c_node.doc
+    # prevent cycles
+    c_parent = parent._c_node
+    while c_parent:
+        if c_parent is c_node:
+            raise ValueError("cannot append parent to itself")
+        c_parent = c_parent.parent
     # store possible text node
     c_next = c_node.next
     # move node itself
@@ -1228,11 +1237,12 @@ cdef int _prependChild(_Element parent, _Element child) except -1:
     moveNodeToDocument(parent._doc, c_source_doc, c_node)
 
 cdef int _appendSibling(_Element element, _Element sibling) except -1:
-    u"""Append a new child to a parent element.
+    u"""Add a new sibling behind an element.
     """
-    cdef xmlNode* c_node = sibling._c_node
-    cdef xmlDoc* c_source_doc = c_node.doc
-    cdef xmlNode* c_next
+    c_node = sibling._c_node
+    if element._c_node is c_node:
+        return 0  # nothing to do
+    c_source_doc = c_node.doc
     # store possible text node
     c_next = c_node.next
     # move node itself
@@ -1243,11 +1253,12 @@ cdef int _appendSibling(_Element element, _Element sibling) except -1:
     moveNodeToDocument(element._doc, c_source_doc, c_node)
 
 cdef int _prependSibling(_Element element, _Element sibling) except -1:
-    u"""Append a new child to a parent element.
+    u"""Add a new sibling before an element.
     """
-    cdef xmlNode* c_node = sibling._c_node
-    cdef xmlDoc* c_source_doc = c_node.doc
-    cdef xmlNode* c_next
+    c_node = sibling._c_node
+    if element._c_node is c_node:
+        return 0  # nothing to do
+    c_source_doc = c_node.doc
     # store possible text node
     c_next = c_node.next
     # move node itself
index 3b6e6d2b0cfb7ad0c3e85474848f1a2cd5470e30..03422f480e73fa8578f508a502358996f73c5757 100644 (file)
@@ -355,7 +355,7 @@ cdef class AttributeBasedElementClassLookup(FallbackElementClassLookup):
     missing.
     """
     cdef object _class_mapping
-    cdef object _pytag
+    cdef tuple _pytag
     cdef const_xmlChar* _c_ns
     cdef const_xmlChar* _c_name
     def __cinit__(self):
index 850302f0f6761ddd17ac90bb93e4276fcac1caa1..dd515b7f3be4ee26b717d8d5ea9861df5ef1a884 100644 (file)
@@ -11,7 +11,7 @@ ctypedef enum _InputDocumentDataType:
 @cython.internal
 cdef class _InputDocument:
     cdef _InputDocumentDataType _type
-    cdef object _data_bytes
+    cdef bytes _data_bytes
     cdef object _filename
     cdef object _file
     cdef bint _close_file
index edabffb8316e4fb962abb15efe912041061a6451..c6a62c6790229cd2f5ec9ab3c46b977969c415d4 100644 (file)
@@ -121,7 +121,7 @@ def compress_merge_back(tokens, tok):
     else:
         text = _unicode(last)
         if last.trailing_whitespace:
-            text += ' '
+            text += last.trailing_whitespace
         text += tok
         merged = token(text,
                        pre_tags=last.pre_tags,
@@ -141,7 +141,7 @@ def markup_serialize_tokens(tokens, markup_func):
         html = token.html()
         html = markup_func(html, token.annotation)
         if token.trailing_whitespace:
-            html += ' '
+            html += token.trailing_whitespace
         yield html
         for post in token.post_tags:
             yield post
@@ -221,7 +221,7 @@ def expand_tokens(tokens, equal=False):
             yield pre
         if not equal or not token.hide_when_equal:
             if token.trailing_whitespace:
-                yield token.html() + ' '
+                yield token.html() + token.trailing_whitespace
             else:
                 yield token.html()
         for post in token.post_tags:
@@ -451,7 +451,7 @@ class token(_unicode):
     # displayed diff if no change has occurred:
     hide_when_equal = False
 
-    def __new__(cls, text, pre_tags=None, post_tags=None, trailing_whitespace=False):
+    def __new__(cls, text, pre_tags=None, post_tags=None, trailing_whitespace=""):
         obj = _unicode.__new__(cls, text)
 
         if pre_tags is not None:
@@ -469,7 +469,8 @@ class token(_unicode):
         return obj
 
     def __repr__(self):
-        return 'token(%s, %r, %r)' % (_unicode.__repr__(self), self.pre_tags, self.post_tags)
+        return 'token(%s, %r, %r, %r)' % (_unicode.__repr__(self), self.pre_tags,
+                                          self.post_tags, self.trailing_whitespace)
 
     def html(self):
         return _unicode(self)
@@ -481,7 +482,7 @@ class tag_token(token):
     is only represented in a document by a tag.  """
 
     def __new__(cls, tag, data, html_repr, pre_tags=None, 
-                post_tags=None, trailing_whitespace=False):
+                post_tags=None, trailing_whitespace=""):
         obj = token.__new__(cls, "%s: %s" % (type, data), 
                             pre_tags=pre_tags, 
                             post_tags=post_tags, 
@@ -492,7 +493,7 @@ class tag_token(token):
         return obj
 
     def __repr__(self):
-        return 'tag_token(%s, %s, html_repr=%s, post_tags=%r, pre_tags=%r, trailing_whitespace=%s)' % (
+        return 'tag_token(%s, %s, html_repr=%s, post_tags=%r, pre_tags=%r, trailing_whitespace=%r)' % (
             self.tag, 
             self.data, 
             self.html_repr, 
@@ -569,6 +570,14 @@ def cleanup_html(html):
 
 end_whitespace_re = re.compile(r'[ \t\n\r]$')
 
+def split_trailing_whitespace(word):
+    """
+    This function takes a word, such as 'test\n\n' and returns ('test','\n\n')
+    """
+    stripped_length = len(word.rstrip())
+    return word[0:stripped_length], word[stripped_length:]
+
+
 def fixup_chunks(chunks):
     """
     This function takes a list of chunks and produces a list of tokens.
@@ -580,34 +589,29 @@ def fixup_chunks(chunks):
         if isinstance(chunk, tuple):
             if chunk[0] == 'img':
                 src = chunk[1]
-                tag = chunk[2]
-                if tag.endswith(' '):
-                    tag = tag[:-1]
-                    trailing_whitespace = True
-                else:
-                    trailing_whitespace = False
+                tag, trailing_whitespace = split_trailing_whitespace(chunk[2])
                 cur_word = tag_token('img', src, html_repr=tag,
                                      pre_tags=tag_accum,
                                      trailing_whitespace=trailing_whitespace)
                 tag_accum = []
                 result.append(cur_word)
+
             elif chunk[0] == 'href':
                 href = chunk[1]
-                cur_word = href_token(href, pre_tags=tag_accum, trailing_whitespace=True)
+                cur_word = href_token(href, pre_tags=tag_accum, trailing_whitespace=" ")
                 tag_accum = []
                 result.append(cur_word)
             continue
+
         if is_word(chunk):
-            if chunk.endswith(' '):
-                chunk = chunk[:-1]
-                trailing_whitespace = True
-            else:
-                trailing_whitespace = False
+            chunk, trailing_whitespace = split_trailing_whitespace(chunk)
             cur_word = token(chunk, pre_tags=tag_accum, trailing_whitespace=trailing_whitespace)
             tag_accum = []
             result.append(cur_word)
+
         elif is_start_tag(chunk):
             tag_accum.append(chunk)
+
         elif is_end_tag(chunk):
             if tag_accum:
                 tag_accum.append(chunk)
@@ -701,14 +705,15 @@ def flatten_el(el, include_hrefs, skip_tag=False):
         for word in end_words:
             yield html_escape(word)
 
+split_words_re = re.compile(r'\S+(?:\s+|$)', re.U)
+
 def split_words(text):
-    """ Splits some text into words. Includes trailing whitespace (one
-    space) on each word when appropriate.  """
+    """ Splits some text into words. Includes trailing whitespace
+    on each word when appropriate.  """
     if not text or not text.strip():
         return []
-    words = [w + ' ' for w in text.strip().split()]
-    if not end_whitespace_re.search(text):
-        words[-1] = words[-1][:-1]
+
+    words = split_words_re.findall(text)
     return words
 
 start_whitespace_re = re.compile(r'^[ \t\n\r]')
index 3c855443aa9548c8de7917b6d6665261de1f274e..9057a2b621c7fbfb14796a9cf28bcbef92b9f218 100644 (file)
@@ -17,8 +17,8 @@ Example::
     >>> html2 = '''<p>This is some test textual writing with some changed stuff 
     ... and some same stuff</p>'''
     >>> pdiff(html1, html2)
-    <p>This is some test <ins>textual writing with some changed
-    stuff</ins> <del>text with some changes</del> and some same stuff</p>
+    <p>This is some test <ins>textual writing with some changed stuff
+    </ins> <del>text with some changes</del> and some same stuff</p>
 
 Style tags are largely ignored in terms of differences, though markup is not eliminated::
 
@@ -45,11 +45,6 @@ Style tags are largely ignored in terms of differences, though markup is not eli
     >>> pdiff('<p>Hey there</p>', '')
     <ins></ins> <p><del>Hey there</del></p>
 
-Whitespace is ignored, as it's not meaningful in HTML::
-
-    >>> pdiff('<div>Hi\n\nguys</div>', '<div>Hi guy</div>')
-    <div>Hi <ins>guy</ins> <del>guys</del> </div>
-
 Movement between paragraphs is ignored, as tag-based changes are generally ignored::
     >>> 
     >>> pdiff('<p>Hello</p><p>World</p>', '<p>Hello World</p>')
@@ -76,6 +71,21 @@ A test of empty elements:
 
     >>> pdiff('some <br> text', 'some <br> test')
     some <ins><br> test</ins> <del><br> text</del>
+    
+Whitespace is generally ignored for the diff but preserved during the diff:
+
+    >>> print(htmldiff('<p> first\nsecond\nthird</p>', '<p>   &#xA0; first\n  second\nthird  </p>'))
+    <p>first
+      second
+    third  </p>
+    >>> print(htmldiff('<pre>first\nsecond\nthird</pre>', '<pre>first\nsecond\nthird</pre>'))
+    <pre>first
+    second
+    third</pre>
+    >>> print(htmldiff('<pre>first\nsecond</pre>', '<pre>first\nsecond\n third</pre>'))
+    <pre>first
+    second
+     <ins>third</ins> </pre>
 
 The sixteen combinations::
 
@@ -204,7 +214,7 @@ Internals
 
 Some utility functions::
 
-    >>> from lxml.html.diff import fixup_ins_del_tags, split_unbalanced
+    >>> from lxml.html.diff import fixup_ins_del_tags, split_unbalanced, split_trailing_whitespace
     >>> def pfixup(text):
     ...     print(fixup_ins_del_tags(text).strip())
     >>> pfixup('<ins><p>some text <b>and more text</b> and more</p></ins>')
@@ -231,3 +241,12 @@ Testing split_unbalanced::
     >>> split_unbalanced(['So', '</i>', 'Hi', '<b>', 'There'])
     (['<b>'], ['So', 'Hi', 'There'], ['</i>'])
     
+
+Testing split_trailing_whitespace::
+
+    >>> split_trailing_whitespace('test\n\n')
+    ('test', '\n\n')
+    >>> split_trailing_whitespace(' test\n ')
+    (' test', '\n ')
+    >>> split_trailing_whitespace('test')
+    ('test', '')
index 996ab555cc6cf96e9921882733e5453ac5c4168a..7ffe0bf343004e886fab01049dd864b8e66a273e 100644 (file)
@@ -1,3 +1,3 @@
 #ifndef LXML_VERSION_STRING
-#define LXML_VERSION_STRING "3.2.3"
+#define LXML_VERSION_STRING "3.2.4"
 #endif
index 5061ebe5dca69b6e1ebabff90a67b9aba9a79df5..6294c677ed2fc24272846cc31a8ef9934da7b486 100644 (file)
@@ -40,6 +40,8 @@ cdef extern from "libxml/xmlerror.h":
         XML_FROM_MODULE                                    =      26 # The dynamically loaded module modul
         XML_FROM_I18N                                      =      27 # The module handling character conversion
         XML_FROM_SCHEMATRONV                               =      28 # The Schematron validator module
+        XML_FROM_BUFFER                                    =      29 # The buffers module
+        XML_FROM_URI                                       =      30 # The URI module
 
     ctypedef enum xmlParserErrors:
         XML_ERR_OK                                         =       0
@@ -152,6 +154,8 @@ cdef extern from "libxml/xmlerror.h":
         XML_WAR_ENTITY_REDEFINED                           =     107
         XML_ERR_UNKNOWN_VERSION                            =     108
         XML_ERR_VERSION_MISMATCH                           =     109
+        XML_ERR_NAME_TOO_LONG                              =     110
+        XML_ERR_USER_STOP                                  =     111
         XML_NS_ERR_XML_NAMESPACE                           =     200
         XML_NS_ERR_UNDEFINED_NAMESPACE                     =     201
         XML_NS_ERR_QNAME                                   =     202
@@ -773,8 +777,7 @@ cdef extern from "libxml/xmlerror.h":
         XML_I18N_EXCESS_HANDLER                            =    6002
         XML_I18N_CONV_FAILED                               =    6003
         XML_I18N_NO_OUTPUT                                 =    6004
-        XML_CHECK_                                         =    6005 # 5033
-        XML_CHECK_X                                        =    6006 # 503
+        XML_BUF_OVERFLOW                                   =    7000
 
     ctypedef enum xmlRelaxNGValidErr:
         XML_RELAXNG_OK                                     =       0
index 94ea713733f85dca9f17e1c992d4323854aa49d8..15bda0dd07222463dda1a3823954e4c8e5998016 100644 (file)
@@ -105,7 +105,7 @@ cdef extern from "libxml/parser.h":
         bint disableSAX
         int errNo
         bint replaceEntities
-        bint loadsubset
+        int loadsubset  # != 0 if enabled, int value == why
         bint validate
         xmlError lastError
         xmlNode* node
index e1f92b45a2339d590de9911591d9093e3828b1a9..9fd49c1bec29a0f175d1f1a9a64ea149c07b9b30 100644 (file)
@@ -360,7 +360,7 @@ cdef class iterparse(_BaseParser):
     cdef object _events
     cdef readonly object root
     cdef object _source
-    cdef object _buffer
+    cdef bytes _buffer
     cdef int (*_parse_chunk)(xmlparser.xmlParserCtxt* ctxt,
                              const_char* chunk, int size, int terminate) nogil
     cdef bint _close_source_after_read
index 628093cefd971df2d29dab8715f6f3d00fcacf8b..5695a013a4347efc20f56e0efac61295099edabe 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.19.1 on Sun Jul 28 13:59:02 2013 */
+/* Generated by Cython 0.19.2 on Thu Nov  7 17:43:30 2013 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
 #ifndef CYTHON_RESTRICT
   #if defined(__GNUC__)
     #define CYTHON_RESTRICT __restrict__
-  #elif defined(_MSC_VER)
+  #elif defined(_MSC_VER) && _MSC_VER >= 1400
     #define CYTHON_RESTRICT __restrict
   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
     #define CYTHON_RESTRICT restrict
@@ -699,7 +699,7 @@ enum __pyx_t_4lxml_5etree__SaxParserEvents {
 };
 typedef enum __pyx_t_4lxml_5etree__SaxParserEvents __pyx_t_4lxml_5etree__SaxParserEvents;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":7
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":10
  *     """
  * 
  * cdef enum _OutputMethods:             # <<<<<<<<<<<<<<
@@ -712,7 +712,7 @@ enum __pyx_t_4lxml_5etree__OutputMethods {
   __pyx_e_4lxml_5etree_OUTPUT_METHOD_TEXT
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":634
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":639
  *             old_writer._close(raise_on_error)
  * 
  * cdef enum _IncrementalFileWriterStatus:             # <<<<<<<<<<<<<<
@@ -744,7 +744,7 @@ enum __pyx_t_4lxml_5etree__IterparseEventFilter {
 };
 typedef enum __pyx_t_4lxml_5etree__IterparseEventFilter __pyx_t_4lxml_5etree__IterparseEventFilter;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":120
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":117
  * # PyPy requires us to store a Python reference for the
  * # namespace in order to keep the byte buffer alive.
  * cdef struct qname:             # <<<<<<<<<<<<<<
@@ -756,7 +756,7 @@ struct __pyx_t_4lxml_5etree_qname {
   PyObject *href;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":302
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":299
  * cdef class _BaseParser
  * cdef class QName
  * ctypedef public xmlNode* (*_node_to_node_function)(xmlNode*)             # <<<<<<<<<<<<<<
@@ -791,7 +791,7 @@ struct __pyx_t_4lxml_5etree__ns_node_ref {
   xmlNode *node;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2551
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2548
  *                 self._storeTags(item, seen)
  * 
  *     cdef inline int cacheTags(self, _Document doc, bint force_into_dict=False) except -1:             # <<<<<<<<<<<<<<
@@ -821,7 +821,7 @@ typedef PyObject *(*_element_class_lookup_function)(PyObject *, struct LxmlDocum
  */
 typedef int (*__pyx_t_4lxml_5etree__register_function)(void *, PyObject *, PyObject *);
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":300
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":297
  * cdef public class _Document [ type LxmlDocumentType, object LxmlDocument ]
  * cdef public class _Element [ type LxmlElementType, object LxmlElement ]
  * cdef class _BaseParser             # <<<<<<<<<<<<<<
@@ -884,7 +884,7 @@ struct __pyx_obj_4lxml_5etree_ETCompatXMLParser {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":299
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":296
  * # forward declarations
  * cdef public class _Document [ type LxmlDocumentType, object LxmlDocument ]
  * cdef public class _Element [ type LxmlElementType, object LxmlElement ]             # <<<<<<<<<<<<<<
@@ -901,7 +901,7 @@ struct LxmlElement {
 
 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementType;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1510
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1507
  * 
  * @cython.internal
  * cdef class __ContentOnlyElement(_Element):             # <<<<<<<<<<<<<<
@@ -914,7 +914,7 @@ struct __pyx_obj_4lxml_5etree___ContentOnlyElement {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1588
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1585
  *         return u"<!--%s-->" % self.text
  * 
  * cdef class _ProcessingInstruction(__ContentOnlyElement):             # <<<<<<<<<<<<<<
@@ -938,7 +938,7 @@ struct __pyx_obj_4lxml_5etree_PIBase {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":846
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":845
  *     return __findStylesheetByID(doc, id=id)
  * 
  * cdef class _XSLTProcessingInstruction(PIBase):             # <<<<<<<<<<<<<<
@@ -998,7 +998,7 @@ struct __pyx_obj_4lxml_5etree__FunctionNamespaceRegistry {
  * @cython.internal
  * cdef class _XPathFunctionNamespaceRegistry(_FunctionNamespaceRegistry):             # <<<<<<<<<<<<<<
  *     cdef object _prefix
- *     cdef object _prefix_utf
+ *     cdef bytes _prefix_utf
  */
 struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry {
   struct __pyx_obj_4lxml_5etree__FunctionNamespaceRegistry __pyx_base;
@@ -1043,7 +1043,7 @@ struct __pyx_obj_4lxml_5etree__BaseErrorLog {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2396
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2393
  * 
  * 
  * cdef public class _ElementTagMatcher [ object LxmlElementTagMatcher,             # <<<<<<<<<<<<<<
@@ -1061,7 +1061,7 @@ struct LxmlElementTagMatcher {
 
 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementTagMatcherType;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":331
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":330
  * 
  * 
  * cdef class XSLT:             # <<<<<<<<<<<<<<
@@ -1079,7 +1079,7 @@ struct __pyx_obj_4lxml_5etree_XSLT {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2669
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2666
  *         self._storeNext(node)
  * 
  * cdef class ElementDepthFirstIterator:             # <<<<<<<<<<<<<<
@@ -1139,7 +1139,7 @@ struct __pyx_obj_4lxml_5etree__SaxParserTarget {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":331
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":318
  * ############################################################
  * 
  * cdef class TreeBuilder(_SaxParserTarget):             # <<<<<<<<<<<<<<
@@ -1158,7 +1158,7 @@ struct __pyx_obj_4lxml_5etree_TreeBuilder {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":127
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":126
  *     _XPATH_VERSION_WARNING_REQUIRED = 0
  * 
  * cdef class _XPathEvaluatorBase:             # <<<<<<<<<<<<<<
@@ -1175,7 +1175,7 @@ struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":253
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":252
  * 
  * 
  * cdef class XPathElementEvaluator(_XPathEvaluatorBase):             # <<<<<<<<<<<<<<
@@ -1188,7 +1188,7 @@ struct __pyx_obj_4lxml_5etree_XPathElementEvaluator {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":330
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":329
  * 
  * 
  * cdef class XPathDocumentEvaluator(XPathElementEvaluator):             # <<<<<<<<<<<<<<
@@ -1215,7 +1215,7 @@ struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1580
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1577
  *         return []
  * 
  * cdef class _Comment(__ContentOnlyElement):             # <<<<<<<<<<<<<<
@@ -1227,7 +1227,7 @@ struct __pyx_obj_4lxml_5etree__Comment {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2464
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2461
  * @cython.final
  * @cython.internal
  * cdef class _MultiTagMatcher:             # <<<<<<<<<<<<<<
@@ -1246,7 +1246,7 @@ struct __pyx_obj_4lxml_5etree__MultiTagMatcher {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":409
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":408
  * 
  * 
  * cdef class XPath(_XPathEvaluatorBase):             # <<<<<<<<<<<<<<
@@ -1260,7 +1260,7 @@ struct __pyx_obj_4lxml_5etree_XPath {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":485
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":484
  * _find_namespaces = re.compile(b'({[^}]+})').findall
  * 
  * cdef class ETXPath(XPath):             # <<<<<<<<<<<<<<
@@ -1300,12 +1300,12 @@ struct __pyx_obj_4lxml_5etree_CustomElementClassLookup {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":643
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":648
  * @cython.final
  * @cython.internal
  * cdef class _IncrementalFileWriter:             # <<<<<<<<<<<<<<
  *     cdef tree.xmlOutputBuffer* _c_out
- *     cdef object _encoding
+ *     cdef bytes _encoding
  */
 struct __pyx_obj_4lxml_5etree__IncrementalFileWriter {
   PyObject_HEAD
@@ -1360,7 +1360,7 @@ struct __pyx_obj_4lxml_5etree_CommentBase {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":322
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":321
  * @cython.final
  * @cython.internal
  * cdef class _XSLTQuotedStringParam:             # <<<<<<<<<<<<<<
@@ -1399,7 +1399,7 @@ struct __pyx_obj_4lxml_5etree__BaseContext {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":270
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":269
  * @cython.final
  * @cython.internal
  * cdef class _XSLTContext(_BaseContext):             # <<<<<<<<<<<<<<
@@ -1441,7 +1441,7 @@ struct __pyx_obj_4lxml_5etree_XSLTExtension {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":272
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":269
  * # class for temporarily storing exceptions raised in extensions
  * @cython.internal
  * cdef class _ExceptionContext:             # <<<<<<<<<<<<<<
@@ -1545,7 +1545,7 @@ struct __pyx_obj_4lxml_5etree__XPathContext {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1638
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1635
  * cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
  * 
  * cdef class _Entity(__ContentOnlyElement):             # <<<<<<<<<<<<<<
@@ -1582,7 +1582,7 @@ struct __pyx_obj_4lxml_5etree_XInclude {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":298
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":295
  * 
  * # forward declarations
  * cdef public class _Document [ type LxmlDocumentType, object LxmlDocument ]             # <<<<<<<<<<<<<<
@@ -1605,7 +1605,7 @@ __PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlDocumentType;
  * @cython.internal
  * cdef class _InputDocument:             # <<<<<<<<<<<<<<
  *     cdef _InputDocumentDataType _type
- *     cdef object _data_bytes
+ *     cdef bytes _data_bytes
  */
 struct __pyx_obj_4lxml_5etree__InputDocument {
   PyObject_HEAD
@@ -1617,7 +1617,7 @@ struct __pyx_obj_4lxml_5etree__InputDocument {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1735
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1732
  * 
  * 
  * cdef public class _ElementTree [ type LxmlElementTreeType,             # <<<<<<<<<<<<<<
@@ -1723,7 +1723,7 @@ struct __pyx_obj_4lxml_5etree__PythonSaxParserTarget {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2856
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2853
  * PI = ProcessingInstruction
  * 
  * cdef class CDATA:             # <<<<<<<<<<<<<<
@@ -1736,7 +1736,7 @@ struct __pyx_obj_4lxml_5etree_CDATA {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":590
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":595
  * # incremental serialisation
  * 
  * cdef class xmlfile:             # <<<<<<<<<<<<<<
@@ -1832,7 +1832,7 @@ struct __pyx_obj_4lxml_5etree__ReadOnlyPIProxy {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":695
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":694
  * 
  * @cython.final
  * cdef class _XSLTResultTree(_ElementTree):             # <<<<<<<<<<<<<<
@@ -1849,7 +1849,7 @@ struct __pyx_obj_4lxml_5etree__XSLTResultTree {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2745
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2742
  *         return NULL
  * 
  * cdef class ElementTextIterator:             # <<<<<<<<<<<<<<
@@ -1863,7 +1863,7 @@ struct __pyx_obj_4lxml_5etree_ElementTextIterator {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2427
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2424
  *                 self._name = NULL
  * 
  * cdef public class _ElementIterator(_ElementTagMatcher) [             # <<<<<<<<<<<<<<
@@ -2030,7 +2030,7 @@ struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":486
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":483
  * 
  * 
  * cdef class DocInfo:             # <<<<<<<<<<<<<<
@@ -2072,7 +2072,7 @@ struct __pyx_obj_4lxml_5etree_XMLSchema {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2595
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2592
  *         return False
  * 
  * cdef class _ElementMatchIterator:             # <<<<<<<<<<<<<<
@@ -2088,7 +2088,7 @@ struct __pyx_obj_4lxml_5etree__ElementMatchIterator {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2659
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2656
  *         self._storeNext(node)
  * 
  * cdef class AncestorsIterator(_ElementMatchIterator):             # <<<<<<<<<<<<<<
@@ -2165,7 +2165,7 @@ struct __pyx_obj_4lxml_5etree__ReadOnlyEntityProxy {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":875
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":880
  * @cython.final
  * @cython.internal
  * cdef class _FileWriterElement:             # <<<<<<<<<<<<<<
@@ -2191,7 +2191,7 @@ struct __pyx_obj_4lxml_5etree__MemDebug {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2215
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2212
  * 
  * 
  * cdef class _Attrib:             # <<<<<<<<<<<<<<
@@ -2251,7 +2251,7 @@ struct __pyx_obj_4lxml_5etree__ExsltRegExp {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":301
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":298
  * cdef public class _Element [ type LxmlElementType, object LxmlElement ]
  * cdef class _BaseParser
  * cdef class QName             # <<<<<<<<<<<<<<
@@ -2281,7 +2281,7 @@ struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":257
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":254
  * @cython.final
  * @cython.internal
  * cdef class _TempStore:             # <<<<<<<<<<<<<<
@@ -2308,7 +2308,7 @@ struct __pyx_obj_4lxml_5etree__OpaqueNodeWrapper {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":366
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":369
  * @cython.final
  * @cython.internal
  * cdef class _FilelikeWriter:             # <<<<<<<<<<<<<<
@@ -2380,7 +2380,7 @@ struct __pyx_obj_4lxml_5etree_XSLTAccessControl {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2644
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2641
  *         self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None
  * 
  * cdef class SiblingsIterator(_ElementMatchIterator):             # <<<<<<<<<<<<<<
@@ -2459,7 +2459,7 @@ struct __pyx_obj_4lxml_5etree__DTDEntityDecl {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2355
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2352
  * @cython.final
  * @cython.internal
  * cdef class _AttribIterator:             # <<<<<<<<<<<<<<
@@ -2486,7 +2486,7 @@ struct __pyx_obj_4lxml_5etree_PythonElementClassLookup {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2624
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2621
  *         return current_node
  * 
  * cdef class ElementChildIterator(_ElementMatchIterator):             # <<<<<<<<<<<<<<
@@ -2512,7 +2512,7 @@ struct __pyx_obj_4lxml_5etree__RotatingErrorLog {
 
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":272
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":269
  * # class for temporarily storing exceptions raised in extensions
  * @cython.internal
  * cdef class _ExceptionContext:             # <<<<<<<<<<<<<<
@@ -2629,7 +2629,7 @@ struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyPIProxy {
 static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyPIProxy *__pyx_vtabptr_4lxml_5etree__ModifyContentOnlyPIProxy;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3244
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3241
  *     pass
  * 
  * cdef class _Validator:             # <<<<<<<<<<<<<<
@@ -2687,7 +2687,7 @@ struct __pyx_vtabstruct_4lxml_5etree_CustomElementClassLookup {
 static struct __pyx_vtabstruct_4lxml_5etree_CustomElementClassLookup *__pyx_vtabptr_4lxml_5etree_CustomElementClassLookup;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1510
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1507
  * 
  * @cython.internal
  * cdef class __ContentOnlyElement(_Element):             # <<<<<<<<<<<<<<
@@ -2701,7 +2701,7 @@ struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement {
 static struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1588
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1585
  *         return u"<!--%s-->" % self.text
  * 
  * cdef class _ProcessingInstruction(__ContentOnlyElement):             # <<<<<<<<<<<<<<
@@ -2758,7 +2758,7 @@ struct __pyx_vtabstruct_4lxml_5etree__FunctionNamespaceRegistry {
 static struct __pyx_vtabstruct_4lxml_5etree__FunctionNamespaceRegistry *__pyx_vtabptr_4lxml_5etree__FunctionNamespaceRegistry;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":127
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":126
  *     _XPATH_VERSION_WARNING_REQUIRED = 0
  * 
  * cdef class _XPathEvaluatorBase:             # <<<<<<<<<<<<<<
@@ -2780,7 +2780,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
 static void __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__unlock(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":409
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":408
  * 
  * 
  * cdef class XPath(_XPathEvaluatorBase):             # <<<<<<<<<<<<<<
@@ -2835,7 +2835,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
 static struct LxmlDocument *__pyx_f_4lxml_5etree_12_BaseContext__findDocumentForNode(struct __pyx_obj_4lxml_5etree__BaseContext *, xmlNode *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":270
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":269
  * @cython.final
  * @cython.internal
  * cdef class _XSLTContext(_BaseContext):             # <<<<<<<<<<<<<<
@@ -2900,12 +2900,12 @@ static void __pyx_f_4lxml_5etree_17XSLTAccessControl__register_in_context(struct
 static PyObject *__pyx_f_4lxml_5etree_17XSLTAccessControl__optval(struct __pyx_obj_4lxml_5etree_XSLTAccessControl *, xsltSecurityOption);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":643
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":648
  * @cython.final
  * @cython.internal
  * cdef class _IncrementalFileWriter:             # <<<<<<<<<<<<<<
  *     cdef tree.xmlOutputBuffer* _c_out
- *     cdef object _encoding
+ *     cdef bytes _encoding
  */
 
 struct __pyx_vtabstruct_4lxml_5etree__IncrementalFileWriter {
@@ -2950,7 +2950,7 @@ static struct __pyx_vtabstruct_4lxml_5etree_PyErrorLog *__pyx_vtabptr_4lxml_5etr
  * @cython.internal
  * cdef class _XPathFunctionNamespaceRegistry(_FunctionNamespaceRegistry):             # <<<<<<<<<<<<<<
  *     cdef object _prefix
- *     cdef object _prefix_utf
+ *     cdef bytes _prefix_utf
  */
 
 struct __pyx_vtabstruct_4lxml_5etree__XPathFunctionNamespaceRegistry {
@@ -3026,7 +3026,7 @@ static struct __pyx_vtabstruct_4lxml_5etree_ETCompatXMLParser *__pyx_vtabptr_4lx
 
 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementTreeType;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1735
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1732
  * 
  * 
  * cdef public class _ElementTree [ type LxmlElementTreeType,             # <<<<<<<<<<<<<<
@@ -3040,7 +3040,7 @@ struct __pyx_vtabstruct_4lxml_5etree__ElementTree {
 static struct __pyx_vtabstruct_4lxml_5etree__ElementTree *__pyx_vtabptr_4lxml_5etree__ElementTree;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2669
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2666
  *         self._storeNext(node)
  * 
  * cdef class ElementDepthFirstIterator:             # <<<<<<<<<<<<<<
@@ -3087,7 +3087,7 @@ struct __pyx_vtabstruct_4lxml_5etree_iterparse {
 static struct __pyx_vtabstruct_4lxml_5etree_iterparse *__pyx_vtabptr_4lxml_5etree_iterparse;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":253
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":252
  * 
  * 
  * cdef class XPathElementEvaluator(_XPathEvaluatorBase):             # <<<<<<<<<<<<<<
@@ -3115,7 +3115,7 @@ struct __pyx_vtabstruct_4lxml_5etree_DTD {
 static struct __pyx_vtabstruct_4lxml_5etree_DTD *__pyx_vtabptr_4lxml_5etree_DTD;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":331
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":330
  * 
  * 
  * cdef class XSLT:             # <<<<<<<<<<<<<<
@@ -3238,7 +3238,7 @@ static struct __pyx_vtabstruct_4lxml_5etree__ResolverRegistry *__pyx_vtabptr_4lx
 static struct __pyx_obj_4lxml_5etree__ResolverRegistry *__pyx_f_4lxml_5etree_17_ResolverRegistry__copy(struct __pyx_obj_4lxml_5etree__ResolverRegistry *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1638
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1635
  * cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
  * 
  * cdef class _Entity(__ContentOnlyElement):             # <<<<<<<<<<<<<<
@@ -3252,7 +3252,7 @@ struct __pyx_vtabstruct_4lxml_5etree__Entity {
 static struct __pyx_vtabstruct_4lxml_5etree__Entity *__pyx_vtabptr_4lxml_5etree__Entity;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1580
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1577
  *         return []
  * 
  * cdef class _Comment(__ContentOnlyElement):             # <<<<<<<<<<<<<<
@@ -3350,7 +3350,7 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_pushEvent(struct __pyx_obj_4
 static void __pyx_f_4lxml_5etree_17_IterparseContext__assureDocGetsFreed(struct __pyx_obj_4lxml_5etree__IterparseContext *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2595
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2592
  *         return False
  * 
  * cdef class _ElementMatchIterator:             # <<<<<<<<<<<<<<
@@ -3367,7 +3367,7 @@ static PyObject *__pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(st
 static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2644
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2641
  *         self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None
  * 
  * cdef class SiblingsIterator(_ElementMatchIterator):             # <<<<<<<<<<<<<<
@@ -3428,7 +3428,7 @@ static int __pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper__assertNode(struct __py
 static PyObject *__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *, PyObject *, int __pyx_skip_dispatch);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2659
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2656
  *         self._storeNext(node)
  * 
  * cdef class AncestorsIterator(_ElementMatchIterator):             # <<<<<<<<<<<<<<
@@ -3534,7 +3534,7 @@ struct __pyx_vtabstruct_4lxml_5etree_iterwalk {
 static struct __pyx_vtabstruct_4lxml_5etree_iterwalk *__pyx_vtabptr_4lxml_5etree_iterwalk;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":257
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":254
  * @cython.final
  * @cython.internal
  * cdef class _TempStore:             # <<<<<<<<<<<<<<
@@ -3551,7 +3551,7 @@ static int __pyx_f_4lxml_5etree_10_TempStore_add(struct __pyx_obj_4lxml_5etree__
 static int __pyx_f_4lxml_5etree_10_TempStore_clear(struct __pyx_obj_4lxml_5etree__TempStore *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":366
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":369
  * @cython.final
  * @cython.internal
  * cdef class _FilelikeWriter:             # <<<<<<<<<<<<<<
@@ -3604,7 +3604,7 @@ static struct __pyx_vtabstruct_4lxml_5etree__PythonSaxParserTarget *__pyx_vtabpt
 
 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementTagMatcherType;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2396
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2393
  * 
  * 
  * cdef public class _ElementTagMatcher [ object LxmlElementTagMatcher,             # <<<<<<<<<<<<<<
@@ -3643,7 +3643,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_18_FileReaderContext__readDoc(struct __pyx_o
 static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_obj_4lxml_5etree__FileReaderContext *, char *, int);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2624
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2621
  *         return current_node
  * 
  * cdef class ElementChildIterator(_ElementMatchIterator):             # <<<<<<<<<<<<<<
@@ -3658,7 +3658,7 @@ static struct __pyx_vtabstruct_4lxml_5etree_ElementChildIterator *__pyx_vtabptr_
 
 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlElementIteratorType;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2427
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2424
  *                 self._name = NULL
  * 
  * cdef public class _ElementIterator(_ElementTagMatcher) [             # <<<<<<<<<<<<<<
@@ -3687,7 +3687,7 @@ struct __pyx_vtabstruct_4lxml_5etree__ClassNamespaceRegistry {
 static struct __pyx_vtabstruct_4lxml_5etree__ClassNamespaceRegistry *__pyx_vtabptr_4lxml_5etree__ClassNamespaceRegistry;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":695
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":694
  * 
  * @cython.final
  * cdef class _XSLTResultTree(_ElementTree):             # <<<<<<<<<<<<<<
@@ -3717,7 +3717,7 @@ struct __pyx_vtabstruct_4lxml_5etree_PythonElementClassLookup {
 static struct __pyx_vtabstruct_4lxml_5etree_PythonElementClassLookup *__pyx_vtabptr_4lxml_5etree_PythonElementClassLookup;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":330
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":329
  * 
  * 
  * cdef class XPathDocumentEvaluator(XPathElementEvaluator):             # <<<<<<<<<<<<<<
@@ -3748,7 +3748,6 @@ struct __pyx_vtabstruct_4lxml_5etree__XPathContext {
   PyObject *(*registerVariables)(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *);
   PyObject *(*registerVariable)(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *, PyObject *);
   void (*_registerVariable)(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *, PyObject *);
-  void (*_setupDict)(struct __pyx_obj_4lxml_5etree__XPathContext *, xmlXPathContext *);
 };
 static struct __pyx_vtabstruct_4lxml_5etree__XPathContext *__pyx_vtabptr_4lxml_5etree__XPathContext;
 static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_set_context(struct __pyx_obj_4lxml_5etree__XPathContext *, xmlXPathContext *);
@@ -3758,7 +3757,6 @@ static void __pyx_f_4lxml_5etree_13_XPathContext_registerExsltFunctions(struct _
 static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariables(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *);
 static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariable(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *, PyObject *);
 static void __pyx_f_4lxml_5etree_13_XPathContext__registerVariable(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *, PyObject *);
-static void __pyx_f_4lxml_5etree_13_XPathContext__setupDict(struct __pyx_obj_4lxml_5etree__XPathContext *, xmlXPathContext *);
 
 
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":58
@@ -3777,7 +3775,7 @@ static struct __pyx_vtabstruct_4lxml_5etree__IDDict *__pyx_vtabptr_4lxml_5etree_
 
 __PYX_EXTERN_C DL_EXPORT(PyTypeObject) LxmlDocumentType;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":315
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":312
  * # Public Python API
  * 
  * cdef public class _Document [ type LxmlDocumentType, object LxmlDocument ]:             # <<<<<<<<<<<<<<
@@ -3834,7 +3832,7 @@ struct __pyx_vtabstruct_4lxml_5etree__DomainErrorLog {
 static struct __pyx_vtabstruct_4lxml_5etree__DomainErrorLog *__pyx_vtabptr_4lxml_5etree__DomainErrorLog;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":331
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":318
  * ############################################################
  * 
  * cdef class TreeBuilder(_SaxParserTarget):             # <<<<<<<<<<<<<<
@@ -3847,9 +3845,10 @@ struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder {
   int (*_flush)(struct __pyx_obj_4lxml_5etree_TreeBuilder *);
 };
 static struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *__pyx_vtabptr_4lxml_5etree_TreeBuilder;
+static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etree_TreeBuilder *);
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2464
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2461
  * @cython.final
  * @cython.internal
  * cdef class _MultiTagMatcher:             # <<<<<<<<<<<<<<
@@ -3908,7 +3907,7 @@ struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy {
 static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy *__pyx_vtabptr_4lxml_5etree__ReadOnlyPIProxy;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":846
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":845
  *     return __findStylesheetByID(doc, id=id)
  * 
  * cdef class _XSLTProcessingInstruction(PIBase):             # <<<<<<<<<<<<<<
@@ -3922,7 +3921,7 @@ struct __pyx_vtabstruct_4lxml_5etree__XSLTProcessingInstruction {
 static struct __pyx_vtabstruct_4lxml_5etree__XSLTProcessingInstruction *__pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction;
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":485
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":484
  * _find_namespaces = re.compile(b'({[^}]+})').findall
  * 
  * cdef class ETXPath(XPath):             # <<<<<<<<<<<<<<
@@ -4044,6 +4043,14 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_popImpliedContext(st
   #define __Pyx_XGOTREF(r)
   #define __Pyx_XGIVEREF(r)
 #endif /* CYTHON_REFNANNY */
+#define __Pyx_XDECREF_SET(r, v) do {                            \
+        PyObject *tmp = (PyObject *) r;                         \
+        r = v; __Pyx_XDECREF(tmp);                              \
+    } while (0)
+#define __Pyx_DECREF_SET(r, v) do {                             \
+        PyObject *tmp = (PyObject *) r;                         \
+        r = v; __Pyx_DECREF(tmp);                               \
+    } while (0)
 #define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
 #define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
 
@@ -4078,6 +4085,26 @@ static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyOb
 
 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
 
+static PyObject* __Pyx_PyObject_CallMethodTuple(PyObject* obj, PyObject* method_name, PyObject* args) {
+    PyObject *method, *result = NULL;
+    if (unlikely(!args)) return NULL;
+    method = __Pyx_PyObject_GetAttrStr(obj, method_name);
+    if (unlikely(!method)) goto bad;
+    result = PyObject_Call(method, args, NULL);
+    Py_DECREF(method);
+bad:
+    Py_DECREF(args);
+    return result;
+}
+#define __Pyx_PyObject_CallMethod3(obj, name, arg1, arg2, arg3) \
+    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(3, arg1, arg2, arg3))
+#define __Pyx_PyObject_CallMethod2(obj, name, arg1, arg2) \
+    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(2, arg1, arg2))
+#define __Pyx_PyObject_CallMethod1(obj, name, arg1) \
+    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(1, arg1))
+#define __Pyx_PyObject_CallMethod0(obj, name) \
+    __Pyx_PyObject_CallMethodTuple(obj, name, (Py_INCREF(__pyx_empty_tuple), __pyx_empty_tuple))
+
 #if PY_MAJOR_VERSION >= 3
 static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d); /*proto*/
 #else
@@ -4206,26 +4233,6 @@ static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j
 static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
                                                      int is_list, int wraparound, int boundscheck);
 
-static PyObject* __Pyx_PyObject_CallMethodTuple(PyObject* obj, PyObject* method_name, PyObject* args) {
-    PyObject *method, *result = NULL;
-    if (unlikely(!args)) return NULL;
-    method = __Pyx_PyObject_GetAttrStr(obj, method_name);
-    if (unlikely(!method)) goto bad;
-    result = PyObject_Call(method, args, NULL);
-    Py_DECREF(method);
-bad:
-    Py_DECREF(args);
-    return result;
-}
-#define __Pyx_PyObject_CallMethod3(obj, name, arg1, arg2, arg3) \
-    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(3, arg1, arg2, arg3))
-#define __Pyx_PyObject_CallMethod2(obj, name, arg1, arg2) \
-    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(2, arg1, arg2))
-#define __Pyx_PyObject_CallMethod1(obj, name, arg1) \
-    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(1, arg1))
-#define __Pyx_PyObject_CallMethod0(obj, name) \
-    __Pyx_PyObject_CallMethodTuple(obj, name, (Py_INCREF(__pyx_empty_tuple), __pyx_empty_tuple))
-
 static CYTHON_INLINE PyObject* __Pyx_PyObject_Pop(PyObject* L); /*proto*/
 
 #if CYTHON_COMPILING_IN_CPYTHON
@@ -4707,7 +4714,6 @@ static PyObject *__pyx_v_4lxml_5etree_StringIO = 0;
 static PyObject *__pyx_v_4lxml_5etree__elementpath = 0;
 static PyObject *__pyx_v_4lxml_5etree_sys = 0;
 static PyObject *__pyx_v_4lxml_5etree_re = 0;
-static PyObject *__pyx_v_4lxml_5etree_gzip = 0;
 static PyObject *__pyx_v_4lxml_5etree_ITER_EMPTY = 0;
 static PyObject *__pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT = 0;
 static PyObject *__pyx_v_4lxml_5etree__FILENAME_ENCODING = 0;
@@ -4741,6 +4747,7 @@ static struct __pyx_obj_4lxml_5etree_XMLParser *__pyx_v_4lxml_5etree___DEFAULT_X
 static int __pyx_v_4lxml_5etree__HTML_DEFAULT_PARSE_OPTIONS;
 static struct __pyx_obj_4lxml_5etree_HTMLParser *__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER = 0;
 static PyObject *__pyx_v_4lxml_5etree_inspect_getargspec = 0;
+static PyObject *__pyx_v_4lxml_5etree_GzipFile = 0;
 static PyObject *__pyx_v_4lxml_5etree__find_id_attributes = 0;
 static PyObject *__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES = 0;
 static PyObject *__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS = 0;
@@ -5752,63 +5759,62 @@ static char __pyx_k_25[] = "";
 static char __pyx_k_26[] = "%s:%s";
 static char __pyx_k_27[] = "attempt to assign sequence of size %d to extended slice of size %d";
 static char __pyx_k_28[] = "Node must not be None";
-static char __pyx_k_29[] = "Argument must be bytes or unicode, got '%.200s'";
-static char __pyx_k_30[] = "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters";
-static char __pyx_k_32[] = "Argument must be string or unicode.";
-static char __pyx_k_35[] = "Invalid tag name";
-static char __pyx_k_36[] = "Empty tag name";
-static char __pyx_k_37[] = "Invalid tag name %r";
-static char __pyx_k_38[] = "Invalid HTML tag name %r";
-static char __pyx_k_39[] = "Invalid attribute name %r";
-static char __pyx_k_40[] = "Invalid namespace prefix %r";
-static char __pyx_k_41[] = "Invalid namespace URI %r";
-static char __pyx_k_42[] = "{%s}%s";
-static char __pyx_k_43[] = "unknown error";
-static char __pyx_k_44[] = "<undecodable error message>";
-static char __pyx_k_45[] = "<string>";
-static char __pyx_k_46[] = "%s:%d:%d:%s:%s:%s: %s";
-static char __pyx_k_47[] = "%s, line %d, column %d";
-static char __pyx_k_48[] = "%s, line %d";
-static char __pyx_k_49[] = "\n";
-static char __pyx_k_51[] = "file %s";
-static char __pyx_k_52[] = "string://__STRING__XSLT";
-static char __pyx_k_53[] = "<xslt>";
-static char __pyx_k_54[] = "line %d";
-static char __pyx_k_55[] = "element %s";
-static char __pyx_k_56[] = "%s, element '%s'";
-static char __pyx_k_57[] = "\\s*([a-zA-Z0-9_]+)\\s*=\\s*([0-9]+)";
-static char __pyx_k_59[] = "ns%d";
-static char __pyx_k_60[] = "invalid node type %d, expected %d";
-static char __pyx_k_61[] = "Could not find root node";
-static char __pyx_k_62[] = "<!DOCTYPE %s PUBLIC \"%s\" \"%s\">";
-static char __pyx_k_63[] = "<!DOCTYPE %s PUBLIC \"%s\">";
-static char __pyx_k_64[] = "<!DOCTYPE %s SYSTEM \"%s\">";
-static char __pyx_k_65[] = "<!DOCTYPE %s>";
-static char __pyx_k_66[] = "cannot assign None";
-static char __pyx_k_67[] = "list index out of range";
-static char __pyx_k_68[] = "index out of range: %d";
-static char __pyx_k_69[] = "Only processing instructions and comments can be siblings of the root element";
-static char __pyx_k_70[] = "Element is not a child of this node.";
-static char __pyx_k_71[] = "<Element %s at 0x%x>";
-static char __pyx_k_72[] = "The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.";
-static char __pyx_k_73[] = "list.index(x): x not in slice";
-static char __pyx_k_74[] = "list.index(x): x not in list";
-static char __pyx_k_79[] = "this element does not have children or attributes";
-static char __pyx_k_80[] = "<!--%s-->";
-static char __pyx_k_81[] = "ProcessingInstruction";
-static char __pyx_k_82[] = "<?%s %s?>";
-static char __pyx_k_83[] = "<?%s?>";
-static char __pyx_k_84[] = "&";
-static char __pyx_k_85[] = ";";
-static char __pyx_k_86[] = "Invalid entity name '%s'";
-static char __pyx_k_87[] = "&%s;";
-static char __pyx_k_88[] = "text_or_uri_or_element";
-static char __pyx_k_89[] = "Invalid input tag of type %r";
-static char __pyx_k_90[] = "ElementTree not initialized, missing root";
-static char __pyx_k_91[] = "Only elements can be the root of an ElementTree";
-static char __pyx_k_92[] = "inclusive_ns_prefixes";
-static char __pyx_k_97[] = "Cannot specify encoding with C14N";
-static char __pyx_k_99[] = "Cannot enable XML declaration in C14N";
+static char __pyx_k_29[] = "cannot append parent to itself";
+static char __pyx_k_32[] = "Argument must be bytes or unicode, got '%.200s'";
+static char __pyx_k_33[] = "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters";
+static char __pyx_k_35[] = "Argument must be string or unicode.";
+static char __pyx_k_38[] = "Invalid tag name";
+static char __pyx_k_39[] = "Empty tag name";
+static char __pyx_k_40[] = "Invalid tag name %r";
+static char __pyx_k_41[] = "Invalid HTML tag name %r";
+static char __pyx_k_42[] = "Invalid attribute name %r";
+static char __pyx_k_43[] = "Invalid namespace prefix %r";
+static char __pyx_k_44[] = "Invalid namespace URI %r";
+static char __pyx_k_45[] = "{%s}%s";
+static char __pyx_k_46[] = "unknown error";
+static char __pyx_k_47[] = "<undecodable error message>";
+static char __pyx_k_48[] = "<string>";
+static char __pyx_k_49[] = "%s:%d:%d:%s:%s:%s: %s";
+static char __pyx_k_50[] = "%s, line %d, column %d";
+static char __pyx_k_51[] = "%s, line %d";
+static char __pyx_k_52[] = "\n";
+static char __pyx_k_54[] = "file %s";
+static char __pyx_k_55[] = "string://__STRING__XSLT";
+static char __pyx_k_56[] = "<xslt>";
+static char __pyx_k_57[] = "line %d";
+static char __pyx_k_58[] = "element %s";
+static char __pyx_k_59[] = "%s, element '%s'";
+static char __pyx_k_60[] = "\\s*([a-zA-Z0-9_]+)\\s*=\\s*([0-9]+)";
+static char __pyx_k_62[] = "ns%d";
+static char __pyx_k_63[] = "invalid node type %d, expected %d";
+static char __pyx_k_64[] = "Could not find root node";
+static char __pyx_k_65[] = "<!DOCTYPE %s PUBLIC \"%s\" \"%s\">";
+static char __pyx_k_66[] = "<!DOCTYPE %s PUBLIC \"%s\">";
+static char __pyx_k_67[] = "<!DOCTYPE %s SYSTEM \"%s\">";
+static char __pyx_k_68[] = "<!DOCTYPE %s>";
+static char __pyx_k_69[] = "cannot assign None";
+static char __pyx_k_70[] = "list index out of range";
+static char __pyx_k_71[] = "index out of range: %d";
+static char __pyx_k_72[] = "Only processing instructions and comments can be siblings of the root element";
+static char __pyx_k_73[] = "Element is not a child of this node.";
+static char __pyx_k_74[] = "<Element %s at 0x%x>";
+static char __pyx_k_75[] = "The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.";
+static char __pyx_k_76[] = "list.index(x): x not in slice";
+static char __pyx_k_77[] = "list.index(x): x not in list";
+static char __pyx_k_82[] = "this element does not have children or attributes";
+static char __pyx_k_83[] = "<!--%s-->";
+static char __pyx_k_84[] = "ProcessingInstruction";
+static char __pyx_k_85[] = "<?%s %s?>";
+static char __pyx_k_86[] = "<?%s?>";
+static char __pyx_k_87[] = "&";
+static char __pyx_k_88[] = ";";
+static char __pyx_k_89[] = "Invalid entity name '%s'";
+static char __pyx_k_90[] = "&%s;";
+static char __pyx_k_91[] = "text_or_uri_or_element";
+static char __pyx_k_92[] = "Invalid input tag of type %r";
+static char __pyx_k_93[] = "ElementTree not initialized, missing root";
+static char __pyx_k_94[] = "Only elements can be the root of an ElementTree";
+static char __pyx_k_95[] = "inclusive_ns_prefixes";
 static char __pyx_k__A[] = "A";
 static char __pyx_k__B[] = "B";
 static char __pyx_k__U[] = "U";
@@ -5820,367 +5826,369 @@ static char __pyx_k__k[] = "k";
 static char __pyx_k__s[] = "s";
 static char __pyx_k__v[] = "v";
 static char __pyx_k__w[] = "w";
-static char __pyx_k_101[] = "Can only discard comments in C14N serialisation";
-static char __pyx_k_103[] = "US-ASCII";
-static char __pyx_k_104[] = "UTF-8";
-static char __pyx_k_105[] = "Element is not in this tree.";
-static char __pyx_k_107[] = "/";
-static char __pyx_k_114[] = "pop expected at most 2 arguments, got %d";
-static char __pyx_k_115[] = "*";
-static char __pyx_k_116[] = "{*}*";
-static char __pyx_k_123[] = "Invalid character reference: '%s'";
-static char __pyx_k_124[] = "Invalid entity reference: '%s'";
-static char __pyx_k_129[] = "Serialisation to unicode must not request an XML declaration";
-static char __pyx_k_130[] = "Type '%s' cannot be serialized.";
-static char __pyx_k_131[] = "Proxy invalidated!";
-static char __pyx_k_132[] = "Unsupported node type: %d";
-static char __pyx_k_135[] = "Unsupported element type: %d";
-static char __pyx_k_136[] = "This type cannot be instatiated from Python";
-static char __pyx_k_137[] = "cannot append, document already has a root element";
-static char __pyx_k_138[] = "unsupported element type for top-level node: %d";
-static char __pyx_k_139[] = "invalid argument type %s";
-static char __pyx_k_140[] = "invalid element";
-static char __pyx_k_142[] = "Invalid child type: %r";
-static char __pyx_k_143[] = "Unknown node type: %s";
-static char __pyx_k_144[] = "result of class lookup must be subclass of %s, got %s";
-static char __pyx_k_145[] = "element class must be subclass of ElementBase";
-static char __pyx_k_146[] = "comment class must be subclass of CommentBase";
-static char __pyx_k_147[] = "Entity class must be subclass of EntityBase";
-static char __pyx_k_148[] = "PI class must be subclass of PIBase";
-static char __pyx_k_149[] = "xml-stylesheet";
-static char __pyx_k_150[] = "text/xsl";
-static char __pyx_k_151[] = "text/xml";
-static char __pyx_k_153[] = "Name not registered.";
-static char __pyx_k_154[] = "NamespaceRegistryError";
-static char __pyx_k_155[] = "Registered element classes must be subtypes of ElementBase";
-static char __pyx_k_156[] = "Namespace(%r)";
-static char __pyx_k_157[] = "Registered functions must be callable.";
-static char __pyx_k_158[] = "extensions must have non empty names";
-static char __pyx_k_159[] = "FunctionNamespace(%r)";
-static char __pyx_k_160[] = "argument must be a byte string or unicode string";
-static char __pyx_k_161[] = "Argument is not a file-like object";
-static char __pyx_k_162[] = "_ParserDictionaryContext";
-static char __pyx_k_163[] = "<test/>";
-static char __pyx_k_164[] = "UTF-16LE";
-static char __pyx_k_165[] = "UTF-16BE";
-static char __pyx_k_166[] = "UCS-4LE";
-static char __pyx_k_167[] = "UCS-4BE";
-static char __pyx_k_168[] = "reading from file-like objects must return byte strings or unicode strings";
-static char __pyx_k_169[] = "parser locking failed";
-static char __pyx_k_170[] = "Error reading file '%s': %s";
-static char __pyx_k_171[] = "Error reading '%s'";
-static char __pyx_k_172[] = "Document is not well formed";
-static char __pyx_k_173[] = "line %d: %s";
-static char __pyx_k_174[] = "WAR_UNDECLARED_ENTITY";
-static char __pyx_k_175[] = "ERR_UNDECLARED_ENTITY";
-static char __pyx_k_176[] = "This class cannot be instantiated";
-static char __pyx_k_177[] = "unknown encoding: '%s'";
-static char __pyx_k_178[] = "libxml2 %d.%d.%d";
-static char __pyx_k_179[] = "set_element_class_lookup";
-static char __pyx_k_180[] = "string is too long to parse it with libxml2";
-static char __pyx_k_181[] = "Unicode parsing is not supported on this platform";
-static char __pyx_k_182[] = "Parsing requires string data";
-static char __pyx_k_183[] = "no element found";
-static char __pyx_k_217[] = "cannot parse from '%s'";
-static char __pyx_k_218[] = "Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.";
-static char __pyx_k_220[] = "can only parse strings";
-static char __pyx_k_221[] = "internal error (tail)";
-static char __pyx_k_222[] = "internal error (text)";
-static char __pyx_k_223[] = "missing end tags";
-static char __pyx_k_224[] = "missing toplevel element";
-static char __pyx_k_225[] = "end tag mismatch (expected %s, got %s)";
-static char __pyx_k_226[] = "unknown output method %r";
-static char __pyx_k_227[] = "Error during serialisation (out of memory?)";
-static char __pyx_k_228[] = "utf-8";
-static char __pyx_k_230[] = "C14N failed";
-static char __pyx_k_231[] = "unknown error %d";
-static char __pyx_k_232[] = "1.0";
-static char __pyx_k_233[] = "<?xml version='";
-static char __pyx_k_234[] = "' encoding='";
-static char __pyx_k_235[] = "' standalone='no'?>\n";
-static char __pyx_k_236[] = "' standalone='yes'?>\n";
-static char __pyx_k_237[] = "'?>\n";
-static char __pyx_k_238[] = "<!DOCTYPE ";
-static char __pyx_k_239[] = " PUBLIC \"";
-static char __pyx_k_240[] = "\" \"";
-static char __pyx_k_241[] = " SYSTEM \"";
-static char __pyx_k_242[] = "\"";
-static char __pyx_k_243[] = ">\n";
-static char __pyx_k_244[] = " [\n";
-static char __pyx_k_245[] = "]>\n";
-static char __pyx_k_246[] = "Could not create I/O writer context.";
-static char __pyx_k_247[] = "File is already closed";
-static char __pyx_k_248[] = "File or filename expected, got '%s'";
-static char __pyx_k_250[] = "XML declaration already written";
-static char __pyx_k_252[] = "DOCTYPE already written or cannot write it here";
-static char __pyx_k_254[] = ":";
-static char __pyx_k_255[] = "cannot append trailing element to complete XML document";
-static char __pyx_k_257[] = "<";
-static char __pyx_k_258[] = ">";
-static char __pyx_k_259[] = "=\"";
-static char __pyx_k_260[] = "not in an element";
-static char __pyx_k_264[] = "inconsistent exit action in context manager";
-static char __pyx_k_267[] = "</";
-static char __pyx_k_270[] = "got invalid input value of type %s, expected string or Element";
-static char __pyx_k_271[] = "no content written";
-static char __pyx_k_273[] = "pending open tags on close";
-static char __pyx_k_275[] = "start-ns";
-static char __pyx_k_276[] = "end-ns";
-static char __pyx_k_277[] = "invalid event name '%s'";
-static char __pyx_k_292[] = "iterparse parsers cannot be copied";
-static char __pyx_k_294[] = "reading file objects must return bytes objects";
-static char __pyx_k_300[] = "//*[string(@id)]";
-static char __pyx_k_303[] = "No ID dictionary available.";
-static char __pyx_k_304[] = "key not found.";
-static char __pyx_k_305[] = "ID attribute not found.";
-static char __pyx_k_308[] = "XInclude instance not initialised";
-static char __pyx_k_309[] = "XPath evaluator not initialised";
-static char __pyx_k_310[] = "XInclude processing failed";
-static char __pyx_k_311[] = "empty namespace prefix is not supported in XPath";
-static char __pyx_k_312[] = "setting default namespace is not supported in XPath";
-static char __pyx_k_313[] = "empty prefix is not supported in XPath";
-static char __pyx_k_314[] = "XPath context is only usable during the evaluation";
-static char __pyx_k_315[] = "no context node";
-static char __pyx_k_316[] = "document-external context nodes are not supported";
-static char __pyx_k_317[] = "document context is missing";
-static char __pyx_k_321[] = "http://exslt.org/regular-expressions";
-static char __pyx_k_322[] = "Non-Element values not supported at this point - got %r";
-static char __pyx_k_323[] = "text-root";
-static char __pyx_k_324[] = "This is not a supported node-set result: %r";
-static char __pyx_k_325[] = "Unknown return type: %s";
-static char __pyx_k_326[] = "Undefined xpath result";
-static char __pyx_k_327[] = "Unknown xpath result %s";
-static char __pyx_k_328[] = "Not yet implemented result node type: %d";
-static char __pyx_k_329[] = "_ElementStringResult";
-static char __pyx_k_330[] = "XPath function '%s' not found";
-static char __pyx_k_331[] = "This version of libxml2 has a known XPath bug. Use it at your own risk.";
-static char __pyx_k_333[] = "XPath evaluator locking failed";
-static char __pyx_k_334[] = "Error in xpath expression";
-static char __pyx_k_337[] = "XPath context not initialised";
-static char __pyx_k_346[] = "__xpp%02d";
-static char __pyx_k_349[] = "string://__STRING__XSLT__/";
-static char __pyx_k_350[] = "Cannot resolve URI %s";
-static char __pyx_k_351[] = "%s(%s)";
-static char __pyx_k_352[] = ", ";
-static char __pyx_k_353[] = "%s=%r";
-static char __pyx_k_354[] = "extensions must not have empty namespaces";
-static char __pyx_k_356[] = "string://__STRING__XSLT__/%d.xslt";
-static char __pyx_k_358[] = "Cannot parse stylesheet";
-static char __pyx_k_359[] = "cannot set a maximum stylesheet traversal depth < 0";
-static char __pyx_k_363[] = "XSLT stylesheet not initialised";
-static char __pyx_k_364[] = "Error applying stylesheet, line %d";
-static char __pyx_k_365[] = "Error applying stylesheet";
-static char __pyx_k_366[] = "//xsl:stylesheet[@xml:id = $id]";
-static char __pyx_k_368[] = "http://www.w3.org/1999/XSL/Transform";
-static char __pyx_k_369[] = "PI lacks content";
-static char __pyx_k_370[] = "malformed PI attributes";
-static char __pyx_k_371[] = "reference to non-existing embedded stylesheet";
-static char __pyx_k_372[] = "ambiguous reference to embedded stylesheet";
-static char __pyx_k_373[] = "only setting the 'href' attribute is supported on XSLT-PIs";
-static char __pyx_k_374[] = "Invalid URL, must not contain '\"' or '>'";
-static char __pyx_k_375[] = " href=\"%s\"";
-static char __pyx_k_378[] = "XSLT context not initialised";
-static char __pyx_k_379[] = "fake-parent";
-static char __pyx_k_382[] = "unsupported XSLT result type: %d";
-static char __pyx_k_383[] = "extension element %s not found";
-static char __pyx_k_385[] = "Error executing extension element '%s': %s";
-static char __pyx_k_386[] = "Error executing extension element '%s'";
-static char __pyx_k_387[] = "Error during XSLT extension element evaluation";
-static char __pyx_k_388[] = "Document does not comply with schema";
-static char __pyx_k_389[] = "invalid DTD proxy at %s";
-static char __pyx_k_390[] = "<%s.%s object name=%r type=%r occur=%r at 0x%x>";
-static char __pyx_k_391[] = "<%s.%s object name=%r elemname=%r prefix=%r type=%r default=%r default_value=%r at 0x%x>";
-static char __pyx_k_392[] = "<%s.%s object name=%r prefix=%r type=%r at 0x%x>";
-static char __pyx_k_393[] = "<%s.%s object name=%r at 0x%x>";
-static char __pyx_k_395[] = "file must be a filename or file-like object";
-static char __pyx_k_397[] = "either filename or external ID required";
-static char __pyx_k_398[] = "error parsing DTD";
-static char __pyx_k_399[] = "DTD not initialised";
-static char __pyx_k_400[] = "Failed to create validation context";
-static char __pyx_k_403[] = "Internal error in DTD validation";
-static char __pyx_k_405[] = "http://relaxng.org/ns/structure/1.0";
-static char __pyx_k_406[] = "Document is not Relax NG";
-static char __pyx_k_408[] = "No tree or file given";
-static char __pyx_k_409[] = "Document is not parsable as Relax NG";
-static char __pyx_k_410[] = "Document is not valid Relax NG";
-static char __pyx_k_411[] = "RelaxNG instance not initialised";
-static char __pyx_k_412[] = "RelaxNGValidateError";
-static char __pyx_k_413[] = "Internal error in Relax NG validation";
-static char __pyx_k_415[] = "http://www.w3.org/2001/XMLSchema";
-static char __pyx_k_416[] = "Document is not XML Schema";
-static char __pyx_k_417[] = "Document is not valid XML Schema";
-static char __pyx_k_418[] = "Schema instance not initialised";
-static char __pyx_k_419[] = "XMLSchemaValidateError";
-static char __pyx_k_420[] = "Internal error in XML Schema validation.";
-static char __pyx_k_421[] = "_ParserSchemaValidationContext not initialised";
-static char __pyx_k_422[] = "lxml.etree was compiled without Schematron support.";
-static char __pyx_k_424[] = "SchematronParseError";
-static char __pyx_k_426[] = "Document is not a valid Schematron schema";
-static char __pyx_k_427[] = "Schematron instance not initialised";
-static char __pyx_k_429[] = "SchematronValidateError";
-static char __pyx_k_430[] = "Internal error in Schematron validation";
-static char __pyx_k_431[] = ".memorylist";
-static char __pyx_k_432[] = "getfilesystemencoding";
-static char __pyx_k_433[] = "Failed to create file %s";
-static char __pyx_k_434[] = ".memorydump";
-static char __pyx_k_435[] = "The error log of the last parser run.\n        ";
-static char __pyx_k_436[] = "The custom resolver registry of this parser.";
-static char __pyx_k_437[] = "The version of the underlying XML parser.";
-static char __pyx_k_438[] = "The error log of the last (or current) run of the feed parser.\n\n        Note that this is local to the feed parser and thus is\n        different from what the ``error_log`` property returns.\n        ";
-static char __pyx_k_439[] = "Element tag\n        ";
-static char __pyx_k_440[] = "Element attribute dictionary. Where possible, use get(), set(),\n        keys(), values() and items() to access element attributes.\n        ";
-static char __pyx_k_441[] = "Text before the first subelement. This is either a string or \n        the value None, if there was no text.\n        ";
-static char __pyx_k_442[] = "Text after this element's end tag, but before the next sibling\n        element's start tag. This is either a string or the value None, if\n        there was no text.\n        ";
-static char __pyx_k_443[] = "Namespace prefix or None.\n        ";
-static char __pyx_k_444[] = "Original line number as found by the parser or None if unknown.\n        ";
-static char __pyx_k_445[] = "Namespace prefix->URI mapping known in the context of this\n        Element.  This includes all namespace declarations of the\n        parents.\n\n        Note that changing the returned dict has no effect on the Element.\n        ";
-static char __pyx_k_446[] = "The base URI of the Element (xml:base or HTML base URL).\n        None if the base URI is unknown.\n\n        Note that the value depends on the URL of the document that\n        holds the Element if there is no xml:base attribute on the\n        Element or its ancestors.\n\n        Setting this property will set an xml:base attribute on the\n        Element, regardless of the document type (XML or HTML).\n        ";
-static char __pyx_k_447[] = "Returns a dict containing all pseudo-attributes that can be\n        parsed from the text content of this processing instruction.\n        Note that modifying the dict currently has no effect on the\n        XML node, although this is not guaranteed to stay this way.\n        ";
-static char __pyx_k_448[] = "Namespace prefix for extension functions.";
-static char __pyx_k_449[] = "The log of errors and warnings of an XSLT execution.";
-static char __pyx_k_450[] = "The literal XPath expression.\n        ";
-static char __pyx_k_451[] = "Information about the document provided by parser and DTD.  This\n        value is only defined for ElementTree objects based on the root node\n        of a parsed document (e.g.  those returned by the parse functions),\n        not for trees that were built manually.\n        ";
-static char __pyx_k_452[] = "The parser that was used to parse the document in this ElementTree.\n        ";
-static char __pyx_k_453[] = "The log of validation errors and warnings.";
-static char __pyx_k_454[] = "The name of the error domain.  See lxml.etree.ErrorDomains\n        ";
-static char __pyx_k_455[] = "The name of the error type.  See lxml.etree.ErrorTypes\n        ";
-static char __pyx_k_456[] = "The name of the error level.  See lxml.etree.ErrorLevels\n        ";
-static char __pyx_k_457[] = "Return an ElementTree with profiling data for the stylesheet run.\n        ";
-static char __pyx_k_458[] = "The error log of the last (or current) parser run.\n        ";
-static char __pyx_k_459[] = "Returns the name of the root node as defined by the DOCTYPE.";
-static char __pyx_k_460[] = "Returns the public ID of the DOCTYPE.";
-static char __pyx_k_461[] = "Returns the system ID of the DOCTYPE.";
-static char __pyx_k_462[] = "Returns the XML version as declared by the document.";
-static char __pyx_k_463[] = "Returns the encoding name as declared by the document.";
-static char __pyx_k_464[] = "Returns the standalone flag as declared by the document.  The possible\n        values are True (``standalone='yes'``), False\n        (``standalone='no'`` or flag not provided in the declaration),\n        and None (unknown or no declaration found).  Note that a\n        normal truth test on this value will always tell if the\n        ``standalone`` flag was set to ``'yes'`` or not.\n        ";
-static char __pyx_k_465[] = "The source URL of the document (or None if unknown).";
-static char __pyx_k_466[] = "Returns a DOCTYPE declaration string for the document.";
-static char __pyx_k_467[] = "Returns a DTD validator based on the internal subset of the document.";
-static char __pyx_k_468[] = "Returns a DTD validator based on the external subset of the document.";
-static char __pyx_k_469[] = "Text before the first subelement. This is either a string or the\n        value None, if there was no text.\n        ";
-static char __pyx_k_470[] = "The access control configuration as a map of options.";
-static char __pyx_k_471[] = "The ``lxml.etree`` module implements the extended ElementTree API\nfor XML.\n";
-static char __pyx_k_472[] = "restructuredtext en";
-static char __pyx_k_473[] = "AttributeBasedElementClassLookup";
-static char __pyx_k_474[] = "CustomElementClassLookup";
-static char __pyx_k_475[] = "ElementDefaultClassLookup";
-static char __pyx_k_476[] = "ElementNamespaceClassLookup";
-static char __pyx_k_477[] = "FallbackElementClassLookup";
-static char __pyx_k_478[] = "LIBXML_COMPILED_VERSION";
-static char __pyx_k_479[] = "LIBXSLT_COMPILED_VERSION";
-static char __pyx_k_480[] = "ParserBasedElementClassLookup";
-static char __pyx_k_481[] = "PythonElementClassLookup";
-static char __pyx_k_482[] = "XPathDocumentEvaluator";
-static char __pyx_k_483[] = "use_global_python_log";
-static char __pyx_k_484[] = "os.path";
-static char __pyx_k_486[] = "http://www.w3.org/XML/1998/namespace";
-static char __pyx_k_487[] = "http://www.w3.org/1999/xhtml";
-static char __pyx_k_488[] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
-static char __pyx_k_489[] = "http://schemas.xmlsoap.org/wsdl/";
-static char __pyx_k_490[] = "http://www.w3.org/2001/XMLSchema-instance";
-static char __pyx_k_491[] = "http://purl.org/dc/elements/1.1/";
-static char __pyx_k_492[] = "http://codespeak.net/lxml/objectify/pytype";
-static char __pyx_k_493[] = "ns\\d+$";
-static char __pyx_k_497[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx";
-static char __pyx_k_498[] = "lxml.etree";
-static char __pyx_k_502[] = "LxmlError.__init__";
-static char __pyx_k_503[] = "Main exception base class for lxml.  All other exceptions inherit from\n    this one.\n    ";
-static char __pyx_k_504[] = "Base class for all syntax errors.\n    ";
-static char __pyx_k_505[] = "Error during C14N serialisation.\n    ";
-static char __pyx_k_506[] = "[0-9]+";
-static char __pyx_k_508[] = "Unknown libxml2 version: %s";
-static char __pyx_k_509[] = "^(<\\?xml[^>]+)\\s+encoding\\s*=\\s*[\"\\'][^\"\\']*[\"\\'](\\s*\\?>|)";
-static char __pyx_k_511[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi";
-static char __pyx_k_515[] = "Libxml2 error levels";
-static char __pyx_k_516[] = "Libxml2 error domains";
-static char __pyx_k_517[] = "Libxml2 error types";
-static char __pyx_k_518[] = "Libxml2 RelaxNG error types";
-static char __pyx_k_519[] = "NONE=0\nWARNING=1\nERROR=2\nFATAL=3\n";
-static char __pyx_k_521[] = "NONE=0\nPARSER=1\nTREE=2\nNAMESPACE=3\nDTD=4\nHTML=5\nMEMORY=6\nOUTPUT=7\nIO=8\nFTP=9\nHTTP=10\nXINCLUDE=11\nXPATH=12\nXPOINTER=13\nREGEXP=14\nDATATYPE=15\nSCHEMASP=16\nSCHEMASV=17\nRELAXNGP=18\nRELAXNGV=19\nCATALOG=20\nC14N=21\nXSLT=22\nVALID=23\nCHECK=24\nWRITER=25\nMODULE=26\nI18N=27\nSCHEMATRONV=28\n";
-static char __pyx_k_523[] = "ERR_OK=0\nERR_INTERNAL_ERROR=1\nERR_NO_MEMORY=2\nERR_DOCUMENT_START=3\nERR_DOCUMENT_EMPTY=4\nERR_DOCUMENT_END=5\nERR_INVALID_HEX_CHARREF=6\nERR_INVALID_DEC_CHARREF=7\nERR_INVALID_CHARREF=8\nERR_INVALID_CHAR=9\nERR_CHARREF_AT_EOF=10\nERR_CHARREF_IN_PROLOG=11\nERR_CHARREF_IN_EPILOG=12\nERR_CHARREF_IN_DTD=13\nERR_ENTITYREF_AT_EOF=14\nERR_ENTITYREF_IN_PROLOG=15\nERR_ENTITYREF_IN_EPILOG=16\nERR_ENTITYREF_IN_DTD=17\nERR_PEREF_AT_EOF=18\nERR_PEREF_IN_PROLOG=19\nERR_PEREF_IN_EPILOG=20\nERR_PEREF_IN_INT_SUBSET=21\nERR_ENTITYREF_NO_NAME=22\nERR_ENTITYREF_SEMICOL_MISSING=23\nERR_PEREF_NO_NAME=24\nERR_PEREF_SEMICOL_MISSING=25\nERR_UNDECLARED_ENTITY=26\nWAR_UNDECLARED_ENTITY=27\nERR_UNPARSED_ENTITY=28\nERR_ENTITY_IS_EXTERNAL=29\nERR_ENTITY_IS_PARAMETER=30\nERR_UNKNOWN_ENCODING=31\nERR_UNSUPPORTED_ENCODING=32\nERR_STRING_NOT_STARTED=33\nERR_STRING_NOT_CLOSED=34\nERR_NS_DECL_ERROR=35\nERR_ENTITY_NOT_STARTED=36\nERR_ENTITY_NOT_FINISHED=37\nERR_LT_IN_ATTRIBUTE=38\nERR_ATTRIBUTE_NOT_STARTED=39\nERR_ATTRIBUTE_NOT_FINISHED=40\nERR_ATTRIBUTE_WITHOUT_VALUE=41\nERR_ATTRIBUTE_REDEFINED=42\nERR_LITERAL_NOT_STARTED=43\nERR_LITERAL_NOT_FINISHED=44\nERR_COMMENT_NOT_FINISHED=45\nERR_PI_NOT_STARTED=46\nERR_PI_NOT_FINISHED=47\nERR_NOTATION_NOT_STARTED=48\nERR_NOTATION_NOT_FINISHED=49\nERR_ATTLIST_NOT_STARTED=50\nERR_ATTLIST_NOT_FINISHED=51\nERR_MIXED_NOT_STARTED=52\nERR_MIXED_NOT_FINISHED=53\nERR_ELEMCONTENT_NOT_STARTED=54\nERR_ELEMCONTENT_NOT_FINISHED=55\nERR_XMLDECL_NOT_STARTED=56\nERR_XMLDECL_NOT_FINISHED=57\nERR_CONDSEC_NOT_STARTED=58\nERR_CONDSEC_NOT_FINISHED=59\nERR_EXT_SUBSET_NOT_FINISHED=60\nERR_DOCTYPE_NOT_FINISHED=61\nERR_MISPLACED_CDATA_END=62\nERR_CDATA_NOT_FINISHED=63\nERR_RESERVED_XML_NAME=64\nERR_SPACE_REQUIRED=65\nERR_SEPARATOR_REQUIRED=66\nERR_NMTOKEN_REQUIRED=67\nERR_NAME_REQUIRED=68\nERR_PCDATA_REQUIRED=69\nERR_URI_REQUIRED=70\nERR_PUBID_REQUIRED=71\nERR_LT_REQUIRED=72\nERR_GT_REQUIRED=73\nERR_LTSLASH_REQUIRED=74\nERR_EQUAL_REQUIRED=75\nERR_TAG_NAME_MISMATCH=76\nERR_TAG_NOT_FIN""ISHED=77\nERR_STANDALONE_VALUE=78\n";
-static char __pyx_k_524[] = "ERR_ENCODING_NAME=79\nERR_HYPHEN_IN_COMMENT=80\nERR_INVALID_ENCODING=81\nERR_EXT_ENTITY_STANDALONE=82\nERR_CONDSEC_INVALID=83\nERR_VALUE_REQUIRED=84\nERR_NOT_WELL_BALANCED=85\nERR_EXTRA_CONTENT=86\nERR_ENTITY_CHAR_ERROR=87\nERR_ENTITY_PE_INTERNAL=88\nERR_ENTITY_LOOP=89\nERR_ENTITY_BOUNDARY=90\nERR_INVALID_URI=91\nERR_URI_FRAGMENT=92\nWAR_CATALOG_PI=93\nERR_NO_DTD=94\nERR_CONDSEC_INVALID_KEYWORD=95\nERR_VERSION_MISSING=96\nWAR_UNKNOWN_VERSION=97\nWAR_LANG_VALUE=98\nWAR_NS_URI=99\nWAR_NS_URI_RELATIVE=100\nERR_MISSING_ENCODING=101\nWAR_SPACE_VALUE=102\nERR_NOT_STANDALONE=103\nERR_ENTITY_PROCESSING=104\nERR_NOTATION_PROCESSING=105\nWAR_NS_COLUMN=106\nWAR_ENTITY_REDEFINED=107\nERR_UNKNOWN_VERSION=108\nERR_VERSION_MISMATCH=109\nNS_ERR_XML_NAMESPACE=200\nNS_ERR_UNDEFINED_NAMESPACE=201\nNS_ERR_QNAME=202\nNS_ERR_ATTRIBUTE_REDEFINED=203\nNS_ERR_EMPTY=204\nNS_ERR_COLON=205\nDTD_ATTRIBUTE_DEFAULT=500\nDTD_ATTRIBUTE_REDEFINED=501\nDTD_ATTRIBUTE_VALUE=502\nDTD_CONTENT_ERROR=503\nDTD_CONTENT_MODEL=504\nDTD_CONTENT_NOT_DETERMINIST=505\nDTD_DIFFERENT_PREFIX=506\nDTD_ELEM_DEFAULT_NAMESPACE=507\nDTD_ELEM_NAMESPACE=508\nDTD_ELEM_REDEFINED=509\nDTD_EMPTY_NOTATION=510\nDTD_ENTITY_TYPE=511\nDTD_ID_FIXED=512\nDTD_ID_REDEFINED=513\nDTD_ID_SUBSET=514\nDTD_INVALID_CHILD=515\nDTD_INVALID_DEFAULT=516\nDTD_LOAD_ERROR=517\nDTD_MISSING_ATTRIBUTE=518\nDTD_MIXED_CORRUPT=519\nDTD_MULTIPLE_ID=520\nDTD_NO_DOC=521\nDTD_NO_DTD=522\nDTD_NO_ELEM_NAME=523\nDTD_NO_PREFIX=524\nDTD_NO_ROOT=525\nDTD_NOTATION_REDEFINED=526\nDTD_NOTATION_VALUE=527\nDTD_NOT_EMPTY=528\nDTD_NOT_PCDATA=529\nDTD_NOT_STANDALONE=530\nDTD_ROOT_NAME=531\nDTD_STANDALONE_WHITE_SPACE=532\nDTD_UNKNOWN_ATTRIBUTE=533\nDTD_UNKNOWN_ELEM=534\nDTD_UNKNOWN_ENTITY=535\nDTD_UNKNOWN_ID=536\nDTD_UNKNOWN_NOTATION=537\nDTD_STANDALONE_DEFAULTED=538\nDTD_XMLID_VALUE=539\nDTD_XMLID_TYPE=540\nDTD_DUP_TOKEN=541\nHTML_STRUCURE_ERROR=800\nHTML_UNKNOWN_TAG=801\nRNGP_ANYNAME_ATTR_ANCESTOR=1000\nRNGP_ATTR_CONFLICT=1001\nRNGP_ATTRIBUTE_CHILDREN=1002\nRNGP_ATTRIBUTE_""CONTENT=1003\n";
-static char __pyx_k_525[] = "RNGP_ATTRIBUTE_EMPTY=1004\nRNGP_ATTRIBUTE_NOOP=1005\nRNGP_CHOICE_CONTENT=1006\nRNGP_CHOICE_EMPTY=1007\nRNGP_CREATE_FAILURE=1008\nRNGP_DATA_CONTENT=1009\nRNGP_DEF_CHOICE_AND_INTERLEAVE=1010\nRNGP_DEFINE_CREATE_FAILED=1011\nRNGP_DEFINE_EMPTY=1012\nRNGP_DEFINE_MISSING=1013\nRNGP_DEFINE_NAME_MISSING=1014\nRNGP_ELEM_CONTENT_EMPTY=1015\nRNGP_ELEM_CONTENT_ERROR=1016\nRNGP_ELEMENT_EMPTY=1017\nRNGP_ELEMENT_CONTENT=1018\nRNGP_ELEMENT_NAME=1019\nRNGP_ELEMENT_NO_CONTENT=1020\nRNGP_ELEM_TEXT_CONFLICT=1021\nRNGP_EMPTY=1022\nRNGP_EMPTY_CONSTRUCT=1023\nRNGP_EMPTY_CONTENT=1024\nRNGP_EMPTY_NOT_EMPTY=1025\nRNGP_ERROR_TYPE_LIB=1026\nRNGP_EXCEPT_EMPTY=1027\nRNGP_EXCEPT_MISSING=1028\nRNGP_EXCEPT_MULTIPLE=1029\nRNGP_EXCEPT_NO_CONTENT=1030\nRNGP_EXTERNALREF_EMTPY=1031\nRNGP_EXTERNAL_REF_FAILURE=1032\nRNGP_EXTERNALREF_RECURSE=1033\nRNGP_FORBIDDEN_ATTRIBUTE=1034\nRNGP_FOREIGN_ELEMENT=1035\nRNGP_GRAMMAR_CONTENT=1036\nRNGP_GRAMMAR_EMPTY=1037\nRNGP_GRAMMAR_MISSING=1038\nRNGP_GRAMMAR_NO_START=1039\nRNGP_GROUP_ATTR_CONFLICT=1040\nRNGP_HREF_ERROR=1041\nRNGP_INCLUDE_EMPTY=1042\nRNGP_INCLUDE_FAILURE=1043\nRNGP_INCLUDE_RECURSE=1044\nRNGP_INTERLEAVE_ADD=1045\nRNGP_INTERLEAVE_CREATE_FAILED=1046\nRNGP_INTERLEAVE_EMPTY=1047\nRNGP_INTERLEAVE_NO_CONTENT=1048\nRNGP_INVALID_DEFINE_NAME=1049\nRNGP_INVALID_URI=1050\nRNGP_INVALID_VALUE=1051\nRNGP_MISSING_HREF=1052\nRNGP_NAME_MISSING=1053\nRNGP_NEED_COMBINE=1054\nRNGP_NOTALLOWED_NOT_EMPTY=1055\nRNGP_NSNAME_ATTR_ANCESTOR=1056\nRNGP_NSNAME_NO_NS=1057\nRNGP_PARAM_FORBIDDEN=1058\nRNGP_PARAM_NAME_MISSING=1059\nRNGP_PARENTREF_CREATE_FAILED=1060\nRNGP_PARENTREF_NAME_INVALID=1061\nRNGP_PARENTREF_NO_NAME=1062\nRNGP_PARENTREF_NO_PARENT=1063\nRNGP_PARENTREF_NOT_EMPTY=1064\nRNGP_PARSE_ERROR=1065\nRNGP_PAT_ANYNAME_EXCEPT_ANYNAME=1066\nRNGP_PAT_ATTR_ATTR=1067\nRNGP_PAT_ATTR_ELEM=1068\nRNGP_PAT_DATA_EXCEPT_ATTR=1069\nRNGP_PAT_DATA_EXCEPT_ELEM=1070\nRNGP_PAT_DATA_EXCEPT_EMPTY=1071\nRNGP_PAT_DATA_EXCEPT_GROUP=1072\nRNGP_PAT_DATA_EXCEPT_INTERLEAVE=1073\nRNGP_PAT_DATA_EXCEPT_LIST=""1074\n";
-static char __pyx_k_526[] = "RNGP_PAT_DATA_EXCEPT_ONEMORE=1075\nRNGP_PAT_DATA_EXCEPT_REF=1076\nRNGP_PAT_DATA_EXCEPT_TEXT=1077\nRNGP_PAT_LIST_ATTR=1078\nRNGP_PAT_LIST_ELEM=1079\nRNGP_PAT_LIST_INTERLEAVE=1080\nRNGP_PAT_LIST_LIST=1081\nRNGP_PAT_LIST_REF=1082\nRNGP_PAT_LIST_TEXT=1083\nRNGP_PAT_NSNAME_EXCEPT_ANYNAME=1084\nRNGP_PAT_NSNAME_EXCEPT_NSNAME=1085\nRNGP_PAT_ONEMORE_GROUP_ATTR=1086\nRNGP_PAT_ONEMORE_INTERLEAVE_ATTR=1087\nRNGP_PAT_START_ATTR=1088\nRNGP_PAT_START_DATA=1089\nRNGP_PAT_START_EMPTY=1090\nRNGP_PAT_START_GROUP=1091\nRNGP_PAT_START_INTERLEAVE=1092\nRNGP_PAT_START_LIST=1093\nRNGP_PAT_START_ONEMORE=1094\nRNGP_PAT_START_TEXT=1095\nRNGP_PAT_START_VALUE=1096\nRNGP_PREFIX_UNDEFINED=1097\nRNGP_REF_CREATE_FAILED=1098\nRNGP_REF_CYCLE=1099\nRNGP_REF_NAME_INVALID=1100\nRNGP_REF_NO_DEF=1101\nRNGP_REF_NO_NAME=1102\nRNGP_REF_NOT_EMPTY=1103\nRNGP_START_CHOICE_AND_INTERLEAVE=1104\nRNGP_START_CONTENT=1105\nRNGP_START_EMPTY=1106\nRNGP_START_MISSING=1107\nRNGP_TEXT_EXPECTED=1108\nRNGP_TEXT_HAS_CHILD=1109\nRNGP_TYPE_MISSING=1110\nRNGP_TYPE_NOT_FOUND=1111\nRNGP_TYPE_VALUE=1112\nRNGP_UNKNOWN_ATTRIBUTE=1113\nRNGP_UNKNOWN_COMBINE=1114\nRNGP_UNKNOWN_CONSTRUCT=1115\nRNGP_UNKNOWN_TYPE_LIB=1116\nRNGP_URI_FRAGMENT=1117\nRNGP_URI_NOT_ABSOLUTE=1118\nRNGP_VALUE_EMPTY=1119\nRNGP_VALUE_NO_CONTENT=1120\nRNGP_XMLNS_NAME=1121\nRNGP_XML_NS=1122\nXPATH_EXPRESSION_OK=1200\nXPATH_NUMBER_ERROR=1201\nXPATH_UNFINISHED_LITERAL_ERROR=1202\nXPATH_START_LITERAL_ERROR=1203\nXPATH_VARIABLE_REF_ERROR=1204\nXPATH_UNDEF_VARIABLE_ERROR=1205\nXPATH_INVALID_PREDICATE_ERROR=1206\nXPATH_EXPR_ERROR=1207\nXPATH_UNCLOSED_ERROR=1208\nXPATH_UNKNOWN_FUNC_ERROR=1209\nXPATH_INVALID_OPERAND=1210\nXPATH_INVALID_TYPE=1211\nXPATH_INVALID_ARITY=1212\nXPATH_INVALID_CTXT_SIZE=1213\nXPATH_INVALID_CTXT_POSITION=1214\nXPATH_MEMORY_ERROR=1215\nXPTR_SYNTAX_ERROR=1216\nXPTR_RESOURCE_ERROR=1217\nXPTR_SUB_RESOURCE_ERROR=1218\nXPATH_UNDEF_PREFIX_ERROR=1219\nXPATH_ENCODING_ERROR=1220\nXPATH_INVALID_CHAR_ERROR=1221\nTREE_INVALID_HEX=1300\nTREE_INVALID_DEC=1301\nTREE""_UNTERMINATED_ENTITY=1302\n";
-static char __pyx_k_527[] = "TREE_NOT_UTF8=1303\nSAVE_NOT_UTF8=1400\nSAVE_CHAR_INVALID=1401\nSAVE_NO_DOCTYPE=1402\nSAVE_UNKNOWN_ENCODING=1403\nREGEXP_COMPILE_ERROR=1450\nIO_UNKNOWN=1500\nIO_EACCES=1501\nIO_EAGAIN=1502\nIO_EBADF=1503\nIO_EBADMSG=1504\nIO_EBUSY=1505\nIO_ECANCELED=1506\nIO_ECHILD=1507\nIO_EDEADLK=1508\nIO_EDOM=1509\nIO_EEXIST=1510\nIO_EFAULT=1511\nIO_EFBIG=1512\nIO_EINPROGRESS=1513\nIO_EINTR=1514\nIO_EINVAL=1515\nIO_EIO=1516\nIO_EISDIR=1517\nIO_EMFILE=1518\nIO_EMLINK=1519\nIO_EMSGSIZE=1520\nIO_ENAMETOOLONG=1521\nIO_ENFILE=1522\nIO_ENODEV=1523\nIO_ENOENT=1524\nIO_ENOEXEC=1525\nIO_ENOLCK=1526\nIO_ENOMEM=1527\nIO_ENOSPC=1528\nIO_ENOSYS=1529\nIO_ENOTDIR=1530\nIO_ENOTEMPTY=1531\nIO_ENOTSUP=1532\nIO_ENOTTY=1533\nIO_ENXIO=1534\nIO_EPERM=1535\nIO_EPIPE=1536\nIO_ERANGE=1537\nIO_EROFS=1538\nIO_ESPIPE=1539\nIO_ESRCH=1540\nIO_ETIMEDOUT=1541\nIO_EXDEV=1542\nIO_NETWORK_ATTEMPT=1543\nIO_ENCODER=1544\nIO_FLUSH=1545\nIO_WRITE=1546\nIO_NO_INPUT=1547\nIO_BUFFER_FULL=1548\nIO_LOAD_ERROR=1549\nIO_ENOTSOCK=1550\nIO_EISCONN=1551\nIO_ECONNREFUSED=1552\nIO_ENETUNREACH=1553\nIO_EADDRINUSE=1554\nIO_EALREADY=1555\nIO_EAFNOSUPPORT=1556\nXINCLUDE_RECURSION=1600\nXINCLUDE_PARSE_VALUE=1601\nXINCLUDE_ENTITY_DEF_MISMATCH=1602\nXINCLUDE_NO_HREF=1603\nXINCLUDE_NO_FALLBACK=1604\nXINCLUDE_HREF_URI=1605\nXINCLUDE_TEXT_FRAGMENT=1606\nXINCLUDE_TEXT_DOCUMENT=1607\nXINCLUDE_INVALID_CHAR=1608\nXINCLUDE_BUILD_FAILED=1609\nXINCLUDE_UNKNOWN_ENCODING=1610\nXINCLUDE_MULTIPLE_ROOT=1611\nXINCLUDE_XPTR_FAILED=1612\nXINCLUDE_XPTR_RESULT=1613\nXINCLUDE_INCLUDE_IN_INCLUDE=1614\nXINCLUDE_FALLBACKS_IN_INCLUDE=1615\nXINCLUDE_FALLBACK_NOT_IN_INCLUDE=1616\nXINCLUDE_DEPRECATED_NS=1617\nXINCLUDE_FRAGMENT_ID=1618\nCATALOG_MISSING_ATTR=1650\nCATALOG_ENTRY_BROKEN=1651\nCATALOG_PREFER_VALUE=1652\nCATALOG_NOT_CATALOG=1653\nCATALOG_RECURSION=1654\nSCHEMAP_PREFIX_UNDEFINED=1700\nSCHEMAP_ATTRFORMDEFAULT_VALUE=1701\nSCHEMAP_ATTRGRP_NONAME_NOREF=1702\nSCHEMAP_ATTR_NONAME_NOREF=1703\nSCHEMAP_COMPLEXTYPE_NONAME_NOREF=1704\nSCHEMAP_ELEMFORMDEFAULT_VALUE=""1705\nSCHEMAP_ELEM_NONAME_NOREF=1706\n";
-static char __pyx_k_528[] = "SCHEMAP_EXTENSION_NO_BASE=1707\nSCHEMAP_FACET_NO_VALUE=1708\nSCHEMAP_FAILED_BUILD_IMPORT=1709\nSCHEMAP_GROUP_NONAME_NOREF=1710\nSCHEMAP_IMPORT_NAMESPACE_NOT_URI=1711\nSCHEMAP_IMPORT_REDEFINE_NSNAME=1712\nSCHEMAP_IMPORT_SCHEMA_NOT_URI=1713\nSCHEMAP_INVALID_BOOLEAN=1714\nSCHEMAP_INVALID_ENUM=1715\nSCHEMAP_INVALID_FACET=1716\nSCHEMAP_INVALID_FACET_VALUE=1717\nSCHEMAP_INVALID_MAXOCCURS=1718\nSCHEMAP_INVALID_MINOCCURS=1719\nSCHEMAP_INVALID_REF_AND_SUBTYPE=1720\nSCHEMAP_INVALID_WHITE_SPACE=1721\nSCHEMAP_NOATTR_NOREF=1722\nSCHEMAP_NOTATION_NO_NAME=1723\nSCHEMAP_NOTYPE_NOREF=1724\nSCHEMAP_REF_AND_SUBTYPE=1725\nSCHEMAP_RESTRICTION_NONAME_NOREF=1726\nSCHEMAP_SIMPLETYPE_NONAME=1727\nSCHEMAP_TYPE_AND_SUBTYPE=1728\nSCHEMAP_UNKNOWN_ALL_CHILD=1729\nSCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD=1730\nSCHEMAP_UNKNOWN_ATTR_CHILD=1731\nSCHEMAP_UNKNOWN_ATTRGRP_CHILD=1732\nSCHEMAP_UNKNOWN_ATTRIBUTE_GROUP=1733\nSCHEMAP_UNKNOWN_BASE_TYPE=1734\nSCHEMAP_UNKNOWN_CHOICE_CHILD=1735\nSCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD=1736\nSCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD=1737\nSCHEMAP_UNKNOWN_ELEM_CHILD=1738\nSCHEMAP_UNKNOWN_EXTENSION_CHILD=1739\nSCHEMAP_UNKNOWN_FACET_CHILD=1740\nSCHEMAP_UNKNOWN_FACET_TYPE=1741\nSCHEMAP_UNKNOWN_GROUP_CHILD=1742\nSCHEMAP_UNKNOWN_IMPORT_CHILD=1743\nSCHEMAP_UNKNOWN_LIST_CHILD=1744\nSCHEMAP_UNKNOWN_NOTATION_CHILD=1745\nSCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD=1746\nSCHEMAP_UNKNOWN_REF=1747\nSCHEMAP_UNKNOWN_RESTRICTION_CHILD=1748\nSCHEMAP_UNKNOWN_SCHEMAS_CHILD=1749\nSCHEMAP_UNKNOWN_SEQUENCE_CHILD=1750\nSCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD=1751\nSCHEMAP_UNKNOWN_SIMPLETYPE_CHILD=1752\nSCHEMAP_UNKNOWN_TYPE=1753\nSCHEMAP_UNKNOWN_UNION_CHILD=1754\nSCHEMAP_ELEM_DEFAULT_FIXED=1755\nSCHEMAP_REGEXP_INVALID=1756\nSCHEMAP_FAILED_LOAD=1757\nSCHEMAP_NOTHING_TO_PARSE=1758\nSCHEMAP_NOROOT=1759\nSCHEMAP_REDEFINED_GROUP=1760\nSCHEMAP_REDEFINED_TYPE=1761\nSCHEMAP_REDEFINED_ELEMENT=1762\nSCHEMAP_REDEFINED_ATTRGROUP=1763\nSCHEMAP_REDEFINED_ATTR=1764\nSCHEMAP_REDEFINED_NOTATION=1765\nSCHEMAP_FAILED_PARSE=1766\nSCH""EMAP_UNKNOWN_PREFIX=1767\n";
-static char __pyx_k_529[] = "SCHEMAP_DEF_AND_PREFIX=1768\nSCHEMAP_UNKNOWN_INCLUDE_CHILD=1769\nSCHEMAP_INCLUDE_SCHEMA_NOT_URI=1770\nSCHEMAP_INCLUDE_SCHEMA_NO_URI=1771\nSCHEMAP_NOT_SCHEMA=1772\nSCHEMAP_UNKNOWN_MEMBER_TYPE=1773\nSCHEMAP_INVALID_ATTR_USE=1774\nSCHEMAP_RECURSIVE=1775\nSCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE=1776\nSCHEMAP_INVALID_ATTR_COMBINATION=1777\nSCHEMAP_INVALID_ATTR_INLINE_COMBINATION=1778\nSCHEMAP_MISSING_SIMPLETYPE_CHILD=1779\nSCHEMAP_INVALID_ATTR_NAME=1780\nSCHEMAP_REF_AND_CONTENT=1781\nSCHEMAP_CT_PROPS_CORRECT_1=1782\nSCHEMAP_CT_PROPS_CORRECT_2=1783\nSCHEMAP_CT_PROPS_CORRECT_3=1784\nSCHEMAP_CT_PROPS_CORRECT_4=1785\nSCHEMAP_CT_PROPS_CORRECT_5=1786\nSCHEMAP_DERIVATION_OK_RESTRICTION_1=1787\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1=1788\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2=1789\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_2=1790\nSCHEMAP_DERIVATION_OK_RESTRICTION_3=1791\nSCHEMAP_WILDCARD_INVALID_NS_MEMBER=1792\nSCHEMAP_INTERSECTION_NOT_EXPRESSIBLE=1793\nSCHEMAP_UNION_NOT_EXPRESSIBLE=1794\nSCHEMAP_SRC_IMPORT_3_1=1795\nSCHEMAP_SRC_IMPORT_3_2=1796\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_1=1797\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_2=1798\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_3=1799\nSCHEMAP_COS_CT_EXTENDS_1_3=1800\nSCHEMAV_NOROOT=1801\nSCHEMAV_UNDECLAREDELEM=1802\nSCHEMAV_NOTTOPLEVEL=1803\nSCHEMAV_MISSING=1804\nSCHEMAV_WRONGELEM=1805\nSCHEMAV_NOTYPE=1806\nSCHEMAV_NOROLLBACK=1807\nSCHEMAV_ISABSTRACT=1808\nSCHEMAV_NOTEMPTY=1809\nSCHEMAV_ELEMCONT=1810\nSCHEMAV_HAVEDEFAULT=1811\nSCHEMAV_NOTNILLABLE=1812\nSCHEMAV_EXTRACONTENT=1813\nSCHEMAV_INVALIDATTR=1814\nSCHEMAV_INVALIDELEM=1815\nSCHEMAV_NOTDETERMINIST=1816\nSCHEMAV_CONSTRUCT=1817\nSCHEMAV_INTERNAL=1818\nSCHEMAV_NOTSIMPLE=1819\nSCHEMAV_ATTRUNKNOWN=1820\nSCHEMAV_ATTRINVALID=1821\nSCHEMAV_VALUE=1822\nSCHEMAV_FACET=1823\nSCHEMAV_CVC_DATATYPE_VALID_1_2_1=1824\nSCHEMAV_CVC_DATATYPE_VALID_1_2_2=1825\nSCHEMAV_CVC_DATATYPE_VALID_1_2_3=1826\nSCHEMAV_CVC_TYPE_3_1_1=1827\nSCHEMAV_CVC_TYPE_3_1_2=1828\nSCHEMAV_CVC_FACET_VALID=1829\nSCHEMAV_CVC_LENGTH_VALID""=1830\n";
-static char __pyx_k_530[] = "SCHEMAV_CVC_MINLENGTH_VALID=1831\nSCHEMAV_CVC_MAXLENGTH_VALID=1832\nSCHEMAV_CVC_MININCLUSIVE_VALID=1833\nSCHEMAV_CVC_MAXINCLUSIVE_VALID=1834\nSCHEMAV_CVC_MINEXCLUSIVE_VALID=1835\nSCHEMAV_CVC_MAXEXCLUSIVE_VALID=1836\nSCHEMAV_CVC_TOTALDIGITS_VALID=1837\nSCHEMAV_CVC_FRACTIONDIGITS_VALID=1838\nSCHEMAV_CVC_PATTERN_VALID=1839\nSCHEMAV_CVC_ENUMERATION_VALID=1840\nSCHEMAV_CVC_COMPLEX_TYPE_2_1=1841\nSCHEMAV_CVC_COMPLEX_TYPE_2_2=1842\nSCHEMAV_CVC_COMPLEX_TYPE_2_3=1843\nSCHEMAV_CVC_COMPLEX_TYPE_2_4=1844\nSCHEMAV_CVC_ELT_1=1845\nSCHEMAV_CVC_ELT_2=1846\nSCHEMAV_CVC_ELT_3_1=1847\nSCHEMAV_CVC_ELT_3_2_1=1848\nSCHEMAV_CVC_ELT_3_2_2=1849\nSCHEMAV_CVC_ELT_4_1=1850\nSCHEMAV_CVC_ELT_4_2=1851\nSCHEMAV_CVC_ELT_4_3=1852\nSCHEMAV_CVC_ELT_5_1_1=1853\nSCHEMAV_CVC_ELT_5_1_2=1854\nSCHEMAV_CVC_ELT_5_2_1=1855\nSCHEMAV_CVC_ELT_5_2_2_1=1856\nSCHEMAV_CVC_ELT_5_2_2_2_1=1857\nSCHEMAV_CVC_ELT_5_2_2_2_2=1858\nSCHEMAV_CVC_ELT_6=1859\nSCHEMAV_CVC_ELT_7=1860\nSCHEMAV_CVC_ATTRIBUTE_1=1861\nSCHEMAV_CVC_ATTRIBUTE_2=1862\nSCHEMAV_CVC_ATTRIBUTE_3=1863\nSCHEMAV_CVC_ATTRIBUTE_4=1864\nSCHEMAV_CVC_COMPLEX_TYPE_3_1=1865\nSCHEMAV_CVC_COMPLEX_TYPE_3_2_1=1866\nSCHEMAV_CVC_COMPLEX_TYPE_3_2_2=1867\nSCHEMAV_CVC_COMPLEX_TYPE_4=1868\nSCHEMAV_CVC_COMPLEX_TYPE_5_1=1869\nSCHEMAV_CVC_COMPLEX_TYPE_5_2=1870\nSCHEMAV_ELEMENT_CONTENT=1871\nSCHEMAV_DOCUMENT_ELEMENT_MISSING=1872\nSCHEMAV_CVC_COMPLEX_TYPE_1=1873\nSCHEMAV_CVC_AU=1874\nSCHEMAV_CVC_TYPE_1=1875\nSCHEMAV_CVC_TYPE_2=1876\nSCHEMAV_CVC_IDC=1877\nSCHEMAV_CVC_WILDCARD=1878\nSCHEMAV_MISC=1879\nXPTR_UNKNOWN_SCHEME=1900\nXPTR_CHILDSEQ_START=1901\nXPTR_EVAL_FAILED=1902\nXPTR_EXTRA_OBJECTS=1903\nC14N_CREATE_CTXT=1950\nC14N_REQUIRES_UTF8=1951\nC14N_CREATE_STACK=1952\nC14N_INVALID_NODE=1953\nC14N_UNKNOW_NODE=1954\nC14N_RELATIVE_NAMESPACE=1955\nFTP_PASV_ANSWER=2000\nFTP_EPSV_ANSWER=2001\nFTP_ACCNT=2002\nFTP_URL_SYNTAX=2003\nHTTP_URL_SYNTAX=2020\nHTTP_USE_IP=2021\nHTTP_UNKNOWN_HOST=2022\nSCHEMAP_SRC_SIMPLE_TYPE_1=3000\nSCHEMAP_SRC_SIMPLE_TYPE_2=3001\nSCHEMAP_SRC_SIMPLE_TYPE_3=3002\nSCHE""MAP_SRC_SIMPLE_TYPE_4=3003\n";
-static char __pyx_k_531[] = "SCHEMAP_SRC_RESOLVE=3004\nSCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE=3005\nSCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE=3006\nSCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES=3007\nSCHEMAP_ST_PROPS_CORRECT_1=3008\nSCHEMAP_ST_PROPS_CORRECT_2=3009\nSCHEMAP_ST_PROPS_CORRECT_3=3010\nSCHEMAP_COS_ST_RESTRICTS_1_1=3011\nSCHEMAP_COS_ST_RESTRICTS_1_2=3012\nSCHEMAP_COS_ST_RESTRICTS_1_3_1=3013\nSCHEMAP_COS_ST_RESTRICTS_1_3_2=3014\nSCHEMAP_COS_ST_RESTRICTS_2_1=3015\nSCHEMAP_COS_ST_RESTRICTS_2_3_1_1=3016\nSCHEMAP_COS_ST_RESTRICTS_2_3_1_2=3017\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_1=3018\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_2=3019\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_3=3020\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_4=3021\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_5=3022\nSCHEMAP_COS_ST_RESTRICTS_3_1=3023\nSCHEMAP_COS_ST_RESTRICTS_3_3_1=3024\nSCHEMAP_COS_ST_RESTRICTS_3_3_1_2=3025\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_2=3026\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_1=3027\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_3=3028\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_4=3029\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_5=3030\nSCHEMAP_COS_ST_DERIVED_OK_2_1=3031\nSCHEMAP_COS_ST_DERIVED_OK_2_2=3032\nSCHEMAP_S4S_ELEM_NOT_ALLOWED=3033\nSCHEMAP_S4S_ELEM_MISSING=3034\nSCHEMAP_S4S_ATTR_NOT_ALLOWED=3035\nSCHEMAP_S4S_ATTR_MISSING=3036\nSCHEMAP_S4S_ATTR_INVALID_VALUE=3037\nSCHEMAP_SRC_ELEMENT_1=3038\nSCHEMAP_SRC_ELEMENT_2_1=3039\nSCHEMAP_SRC_ELEMENT_2_2=3040\nSCHEMAP_SRC_ELEMENT_3=3041\nSCHEMAP_P_PROPS_CORRECT_1=3042\nSCHEMAP_P_PROPS_CORRECT_2_1=3043\nSCHEMAP_P_PROPS_CORRECT_2_2=3044\nSCHEMAP_E_PROPS_CORRECT_2=3045\nSCHEMAP_E_PROPS_CORRECT_3=3046\nSCHEMAP_E_PROPS_CORRECT_4=3047\nSCHEMAP_E_PROPS_CORRECT_5=3048\nSCHEMAP_E_PROPS_CORRECT_6=3049\nSCHEMAP_SRC_INCLUDE=3050\nSCHEMAP_SRC_ATTRIBUTE_1=3051\nSCHEMAP_SRC_ATTRIBUTE_2=3052\nSCHEMAP_SRC_ATTRIBUTE_3_1=3053\nSCHEMAP_SRC_ATTRIBUTE_3_2=3054\nSCHEMAP_SRC_ATTRIBUTE_4=3055\nSCHEMAP_NO_XMLNS=3056\nSCHEMAP_NO_XSI=3057\nSCHEMAP_COS_VALID_DEFAULT_1=3058\nSCHEMAP_COS_VALID_DEFAULT_2_1=3059\nSCHEMAP_COS_VALID_DEFAULT_2_2_1=3060\nSCHEMAP_COS_VALID_DEFA""ULT_2_2_2=3061\n";
-static char __pyx_k_532[] = "SCHEMAP_CVC_SIMPLE_TYPE=3062\nSCHEMAP_COS_CT_EXTENDS_1_1=3063\nSCHEMAP_SRC_IMPORT_1_1=3064\nSCHEMAP_SRC_IMPORT_1_2=3065\nSCHEMAP_SRC_IMPORT_2=3066\nSCHEMAP_SRC_IMPORT_2_1=3067\nSCHEMAP_SRC_IMPORT_2_2=3068\nSCHEMAP_INTERNAL=3069\nSCHEMAP_NOT_DETERMINISTIC=3070\nSCHEMAP_SRC_ATTRIBUTE_GROUP_1=3071\nSCHEMAP_SRC_ATTRIBUTE_GROUP_2=3072\nSCHEMAP_SRC_ATTRIBUTE_GROUP_3=3073\nSCHEMAP_MG_PROPS_CORRECT_1=3074\nSCHEMAP_MG_PROPS_CORRECT_2=3075\nSCHEMAP_SRC_CT_1=3076\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3=3077\nSCHEMAP_AU_PROPS_CORRECT_2=3078\nSCHEMAP_A_PROPS_CORRECT_2=3079\nSCHEMAP_C_PROPS_CORRECT=3080\nSCHEMAP_SRC_REDEFINE=3081\nSCHEMAP_SRC_IMPORT=3082\nSCHEMAP_WARN_SKIP_SCHEMA=3083\nSCHEMAP_WARN_UNLOCATED_SCHEMA=3084\nSCHEMAP_WARN_ATTR_REDECL_PROH=3085\nSCHEMAP_WARN_ATTR_POINTLESS_PROH=3086\nSCHEMAP_AG_PROPS_CORRECT=3087\nSCHEMAP_COS_CT_EXTENDS_1_2=3088\nSCHEMAP_AU_PROPS_CORRECT=3089\nSCHEMAP_A_PROPS_CORRECT_3=3090\nSCHEMAP_COS_ALL_LIMITED=3091\nSCHEMATRONV_ASSERT=4000\nSCHEMATRONV_REPORT=4001\nMODULE_OPEN=4900\nMODULE_CLOSE=4901\nCHECK_FOUND_ELEMENT=5000\nCHECK_FOUND_ATTRIBUTE=5001\nCHECK_FOUND_TEXT=5002\nCHECK_FOUND_CDATA=5003\nCHECK_FOUND_ENTITYREF=5004\nCHECK_FOUND_ENTITY=5005\nCHECK_FOUND_PI=5006\nCHECK_FOUND_COMMENT=5007\nCHECK_FOUND_DOCTYPE=5008\nCHECK_FOUND_FRAGMENT=5009\nCHECK_FOUND_NOTATION=5010\nCHECK_UNKNOWN_NODE=5011\nCHECK_ENTITY_TYPE=5012\nCHECK_NO_PARENT=5013\nCHECK_NO_DOC=5014\nCHECK_NO_NAME=5015\nCHECK_NO_ELEM=5016\nCHECK_WRONG_DOC=5017\nCHECK_NO_PREV=5018\nCHECK_WRONG_PREV=5019\nCHECK_NO_NEXT=5020\nCHECK_WRONG_NEXT=5021\nCHECK_NOT_DTD=5022\nCHECK_NOT_ATTR=5023\nCHECK_NOT_ATTR_DECL=5024\nCHECK_NOT_ELEM_DECL=5025\nCHECK_NOT_ENTITY_DECL=5026\nCHECK_NOT_NS_DECL=5027\nCHECK_NO_HREF=5028\nCHECK_WRONG_PARENT=5029\nCHECK_NS_SCOPE=5030\nCHECK_NS_ANCESTOR=5031\nCHECK_NOT_UTF8=5032\nCHECK_NO_DICT=5033\nCHECK_NOT_NCNAME=5034\nCHECK_OUTSIDE_DICT=5035\nCHECK_WRONG_NAME=5036\nCHECK_NAME_NOT_NULL=5037\nI18N_NO_NAME=6000\nI18N_NO_HANDLER=6001\nI18N_EXCESS_HANDLER=6002\nI18N""_CONV_FAILED=6003\n";
-static char __pyx_k_533[] = "I18N_NO_OUTPUT=6004\nCHECK_=6005\nCHECK_X=6006\n";
-static char __pyx_k_535[] = "RELAXNG_OK=0\nRELAXNG_ERR_MEMORY=1\nRELAXNG_ERR_TYPE=2\nRELAXNG_ERR_TYPEVAL=3\nRELAXNG_ERR_DUPID=4\nRELAXNG_ERR_TYPECMP=5\nRELAXNG_ERR_NOSTATE=6\nRELAXNG_ERR_NODEFINE=7\nRELAXNG_ERR_LISTEXTRA=8\nRELAXNG_ERR_LISTEMPTY=9\nRELAXNG_ERR_INTERNODATA=10\nRELAXNG_ERR_INTERSEQ=11\nRELAXNG_ERR_INTEREXTRA=12\nRELAXNG_ERR_ELEMNAME=13\nRELAXNG_ERR_ATTRNAME=14\nRELAXNG_ERR_ELEMNONS=15\nRELAXNG_ERR_ATTRNONS=16\nRELAXNG_ERR_ELEMWRONGNS=17\nRELAXNG_ERR_ATTRWRONGNS=18\nRELAXNG_ERR_ELEMEXTRANS=19\nRELAXNG_ERR_ATTREXTRANS=20\nRELAXNG_ERR_ELEMNOTEMPTY=21\nRELAXNG_ERR_NOELEM=22\nRELAXNG_ERR_NOTELEM=23\nRELAXNG_ERR_ATTRVALID=24\nRELAXNG_ERR_CONTENTVALID=25\nRELAXNG_ERR_EXTRACONTENT=26\nRELAXNG_ERR_INVALIDATTR=27\nRELAXNG_ERR_DATAELEM=28\nRELAXNG_ERR_VALELEM=29\nRELAXNG_ERR_LISTELEM=30\nRELAXNG_ERR_DATATYPE=31\nRELAXNG_ERR_VALUE=32\nRELAXNG_ERR_LIST=33\nRELAXNG_ERR_NOGRAMMAR=34\nRELAXNG_ERR_EXTRADATA=35\nRELAXNG_ERR_LACKDATA=36\nRELAXNG_ERR_INTERNAL=37\nRELAXNG_ERR_ELEMWRONG=38\nRELAXNG_ERR_TEXTWRONG=39\n";
-static char __pyx_k_537[] = "\\s+(\\w+)\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
-static char __pyx_k_572[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi";
-static char __pyx_k_573[] = "Base class of lxml registry errors.\n    ";
-static char __pyx_k_574[] = "Error registering a namespace extension.\n    ";
-static char __pyx_k_577[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi";
-static char __pyx_k_580[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi";
-static char __pyx_k_581[] = "ParseError.__init__";
-static char __pyx_k_582[] = "Syntax error while parsing an XML document.\n\n    For compatibility with ElementTree 1.3 and later.\n    ";
-static char __pyx_k_583[] = "Syntax error while parsing an XML document.\n    ";
-static char __pyx_k_584[] = "Internal lxml parser error.\n    ";
-static char __pyx_k_590[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi";
-static char __pyx_k_591[] = "_TargetParserResult.__init__";
-static char __pyx_k_592[] = "A libxml2 error that occurred during serialisation.\n    ";
-static char __pyx_k_595[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi";
-static char __pyx_k_600[] = "Error during XInclude processing.\n    ";
-static char __pyx_k_603[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi";
-static char __pyx_k_610[] = "Base class of all XPath errors.\n    ";
-static char __pyx_k_611[] = "Error during XPath evaluation.\n    ";
-static char __pyx_k_612[] = "Internal error looking up an XPath extension function.\n    ";
-static char __pyx_k_613[] = "Error handling an XPath result.\n    ";
-static char __pyx_k_614[] = "Number encoding";
-static char __pyx_k_615[] = "Unfinished literal";
-static char __pyx_k_616[] = "Start of literal";
-static char __pyx_k_617[] = "Expected $ for variable reference";
-static char __pyx_k_618[] = "Undefined variable";
-static char __pyx_k_619[] = "Invalid predicate";
-static char __pyx_k_620[] = "Invalid expression";
-static char __pyx_k_621[] = "Missing closing curly brace";
-static char __pyx_k_622[] = "Unregistered function";
-static char __pyx_k_623[] = "Invalid operand";
-static char __pyx_k_624[] = "Invalid type";
-static char __pyx_k_625[] = "Invalid number of arguments";
-static char __pyx_k_626[] = "Invalid context size";
-static char __pyx_k_627[] = "Invalid context position";
-static char __pyx_k_628[] = "Memory allocation error";
-static char __pyx_k_629[] = "Syntax error";
-static char __pyx_k_630[] = "Resource error";
-static char __pyx_k_631[] = "Sub resource error";
-static char __pyx_k_632[] = "Undefined namespace prefix";
-static char __pyx_k_633[] = "Encoding error";
-static char __pyx_k_634[] = "Char out of XML range";
-static char __pyx_k_635[] = "Invalid or incomplete context";
-static char __pyx_k_636[] = "Stack usage error";
-static char __pyx_k_639[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi";
-static char __pyx_k_642[] = "_ElementStringResult.getparent";
-static char __pyx_k_645[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi";
-static char __pyx_k_646[] = "(\"[^\"]*\")|('[^']*')";
-static char __pyx_k_648[] = "({[^}]+})";
-static char __pyx_k_650[] = "Base class of all XSLT errors.\n    ";
-static char __pyx_k_651[] = "Error parsing a stylesheet document.\n    ";
-static char __pyx_k_652[] = "Error running an XSL transformation.\n    ";
-static char __pyx_k_653[] = "Error serialising an XSLT result.\n    ";
-static char __pyx_k_654[] = "Error registering an XSLT extension.\n    ";
-static char __pyx_k_657[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi";
-static char __pyx_k_660[] = "set_global_max_depth";
-static char __pyx_k_661[] = "\\s+href\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
-static char __pyx_k_663[] = "Validation error.\n\n    Raised by all document validators when their ``assertValid(tree)``\n    method fails.\n    ";
-static char __pyx_k_664[] = "Base class for DTD errors.\n    ";
-static char __pyx_k_665[] = "Error while parsing a DTD.\n    ";
-static char __pyx_k_666[] = "Error while validating an XML document with a DTD.\n    ";
-static char __pyx_k_667[] = "Base class for RelaxNG errors.\n    ";
-static char __pyx_k_668[] = "Error while parsing an XML document as RelaxNG.\n    ";
-static char __pyx_k_669[] = "Error while validating an XML document with a RelaxNG schema.\n    ";
-static char __pyx_k_670[] = "Base class of all XML Schema errors\n    ";
-static char __pyx_k_671[] = "Error while parsing an XML document as XML Schema.\n    ";
-static char __pyx_k_672[] = "Error while validating an XML document with an XML Schema.\n    ";
-static char __pyx_k_673[] = "boolean(//xs:attribute[@default or @fixed][1])";
-static char __pyx_k_675[] = "Base class of all Schematron errors.\n    ";
-static char __pyx_k_676[] = "Error while parsing an XML document as Schematron schema.\n    ";
-static char __pyx_k_677[] = "Error while validating an XML document with a Schematron schema.\n    ";
-static char __pyx_k_678[] = "XML (line 2954)";
-static char __pyx_k_679[] = "XML(text, parser=None, base_url=None)\n\n    Parses an XML document or fragment from a string constant.\n    Returns the root node (or the result returned by a parser target).\n    This function can be used to embed \"XML literals\" in Python code,\n    like in\n\n       >>> root = etree.XML(\"<root><test/></root>\")\n\n    To override the parser with a different ``XMLParser`` you can pass it to\n    the ``parser`` keyword argument.\n\n    The ``base_url`` keyword argument allows to set the original base URL of\n    the document to support relative Paths when looking up external entities\n    (DTD, XInclude, ...).\n    ";
+static char __pyx_k_100[] = "Cannot specify encoding with C14N";
+static char __pyx_k_102[] = "Cannot enable XML declaration in C14N";
+static char __pyx_k_104[] = "Can only discard comments in C14N serialisation";
+static char __pyx_k_106[] = "US-ASCII";
+static char __pyx_k_107[] = "UTF-8";
+static char __pyx_k_108[] = "Element is not in this tree.";
+static char __pyx_k_110[] = "/";
+static char __pyx_k_117[] = "pop expected at most 2 arguments, got %d";
+static char __pyx_k_118[] = "*";
+static char __pyx_k_119[] = "{*}*";
+static char __pyx_k_126[] = "Invalid character reference: '%s'";
+static char __pyx_k_127[] = "Invalid entity reference: '%s'";
+static char __pyx_k_132[] = "Serialisation to unicode must not request an XML declaration";
+static char __pyx_k_133[] = "Type '%s' cannot be serialized.";
+static char __pyx_k_134[] = "Proxy invalidated!";
+static char __pyx_k_135[] = "Unsupported node type: %d";
+static char __pyx_k_138[] = "Unsupported element type: %d";
+static char __pyx_k_139[] = "This type cannot be instatiated from Python";
+static char __pyx_k_140[] = "cannot append, document already has a root element";
+static char __pyx_k_141[] = "unsupported element type for top-level node: %d";
+static char __pyx_k_142[] = "invalid argument type %s";
+static char __pyx_k_143[] = "invalid element";
+static char __pyx_k_145[] = "Invalid child type: %r";
+static char __pyx_k_146[] = "Unknown node type: %s";
+static char __pyx_k_147[] = "result of class lookup must be subclass of %s, got %s";
+static char __pyx_k_148[] = "element class must be subclass of ElementBase";
+static char __pyx_k_149[] = "comment class must be subclass of CommentBase";
+static char __pyx_k_150[] = "Entity class must be subclass of EntityBase";
+static char __pyx_k_151[] = "PI class must be subclass of PIBase";
+static char __pyx_k_152[] = "xml-stylesheet";
+static char __pyx_k_153[] = "text/xsl";
+static char __pyx_k_154[] = "text/xml";
+static char __pyx_k_156[] = "Name not registered.";
+static char __pyx_k_157[] = "NamespaceRegistryError";
+static char __pyx_k_158[] = "Registered element classes must be subtypes of ElementBase";
+static char __pyx_k_159[] = "Namespace(%r)";
+static char __pyx_k_160[] = "Registered functions must be callable.";
+static char __pyx_k_161[] = "extensions must have non empty names";
+static char __pyx_k_162[] = "FunctionNamespace(%r)";
+static char __pyx_k_163[] = "argument must be a byte string or unicode string";
+static char __pyx_k_164[] = "Argument is not a file-like object";
+static char __pyx_k_165[] = "_ParserDictionaryContext";
+static char __pyx_k_166[] = "<test/>";
+static char __pyx_k_167[] = "UTF-16LE";
+static char __pyx_k_168[] = "UTF-16BE";
+static char __pyx_k_169[] = "UCS-4LE";
+static char __pyx_k_170[] = "UCS-4BE";
+static char __pyx_k_171[] = "reading from file-like objects must return byte strings or unicode strings";
+static char __pyx_k_172[] = "parser locking failed";
+static char __pyx_k_173[] = "Error reading file '%s': %s";
+static char __pyx_k_174[] = "Error reading '%s'";
+static char __pyx_k_175[] = "Document is not well formed";
+static char __pyx_k_176[] = "line %d: %s";
+static char __pyx_k_177[] = "WAR_UNDECLARED_ENTITY";
+static char __pyx_k_178[] = "ERR_UNDECLARED_ENTITY";
+static char __pyx_k_179[] = "This class cannot be instantiated";
+static char __pyx_k_180[] = "unknown encoding: '%s'";
+static char __pyx_k_181[] = "libxml2 %d.%d.%d";
+static char __pyx_k_182[] = "set_element_class_lookup";
+static char __pyx_k_183[] = "string is too long to parse it with libxml2";
+static char __pyx_k_184[] = "Unicode parsing is not supported on this platform";
+static char __pyx_k_185[] = "Parsing requires string data";
+static char __pyx_k_186[] = "no element found";
+static char __pyx_k_220[] = "cannot parse from '%s'";
+static char __pyx_k_221[] = "Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.";
+static char __pyx_k_223[] = "can only parse strings";
+static char __pyx_k_224[] = "internal error (tail)";
+static char __pyx_k_225[] = "internal error (text)";
+static char __pyx_k_226[] = "missing end tags";
+static char __pyx_k_227[] = "missing toplevel element";
+static char __pyx_k_228[] = "end tag mismatch (expected %s, got %s)";
+static char __pyx_k_229[] = "unknown output method %r";
+static char __pyx_k_230[] = "Error during serialisation (out of memory?)";
+static char __pyx_k_231[] = "utf-8";
+static char __pyx_k_233[] = "C14N failed";
+static char __pyx_k_234[] = "unknown error %d";
+static char __pyx_k_235[] = "1.0";
+static char __pyx_k_236[] = "<?xml version='";
+static char __pyx_k_237[] = "' encoding='";
+static char __pyx_k_238[] = "' standalone='no'?>\n";
+static char __pyx_k_239[] = "' standalone='yes'?>\n";
+static char __pyx_k_240[] = "'?>\n";
+static char __pyx_k_241[] = "<!DOCTYPE ";
+static char __pyx_k_242[] = " PUBLIC \"";
+static char __pyx_k_243[] = "\" \"";
+static char __pyx_k_244[] = " SYSTEM \"";
+static char __pyx_k_245[] = "\"";
+static char __pyx_k_246[] = ">\n";
+static char __pyx_k_247[] = " [\n";
+static char __pyx_k_248[] = "]>\n";
+static char __pyx_k_249[] = "Could not create I/O writer context.";
+static char __pyx_k_250[] = "File is already closed";
+static char __pyx_k_251[] = "File or filename expected, got '%s'";
+static char __pyx_k_253[] = "XML declaration already written";
+static char __pyx_k_255[] = "DOCTYPE already written or cannot write it here";
+static char __pyx_k_257[] = ":";
+static char __pyx_k_258[] = "cannot append trailing element to complete XML document";
+static char __pyx_k_260[] = "<";
+static char __pyx_k_261[] = ">";
+static char __pyx_k_262[] = "=\"";
+static char __pyx_k_263[] = "not in an element";
+static char __pyx_k_267[] = "inconsistent exit action in context manager";
+static char __pyx_k_270[] = "</";
+static char __pyx_k_273[] = "got invalid input value of type %s, expected string or Element";
+static char __pyx_k_274[] = "no content written";
+static char __pyx_k_276[] = "pending open tags on close";
+static char __pyx_k_278[] = "start-ns";
+static char __pyx_k_279[] = "end-ns";
+static char __pyx_k_280[] = "invalid event name '%s'";
+static char __pyx_k_295[] = "iterparse parsers cannot be copied";
+static char __pyx_k_297[] = "reading file objects must return bytes objects";
+static char __pyx_k_303[] = "//*[string(@id)]";
+static char __pyx_k_306[] = "No ID dictionary available.";
+static char __pyx_k_307[] = "key not found.";
+static char __pyx_k_308[] = "ID attribute not found.";
+static char __pyx_k_311[] = "XInclude instance not initialised";
+static char __pyx_k_312[] = "XPath evaluator not initialised";
+static char __pyx_k_313[] = "XInclude processing failed";
+static char __pyx_k_314[] = "empty namespace prefix is not supported in XPath";
+static char __pyx_k_315[] = "setting default namespace is not supported in XPath";
+static char __pyx_k_316[] = "empty prefix is not supported in XPath";
+static char __pyx_k_317[] = "XPath context is only usable during the evaluation";
+static char __pyx_k_318[] = "no context node";
+static char __pyx_k_319[] = "document-external context nodes are not supported";
+static char __pyx_k_320[] = "document context is missing";
+static char __pyx_k_324[] = "http://exslt.org/regular-expressions";
+static char __pyx_k_325[] = "Non-Element values not supported at this point - got %r";
+static char __pyx_k_326[] = "text-root";
+static char __pyx_k_327[] = "This is not a supported node-set result: %r";
+static char __pyx_k_328[] = "Unknown return type: %s";
+static char __pyx_k_329[] = "Undefined xpath result";
+static char __pyx_k_330[] = "Unknown xpath result %s";
+static char __pyx_k_331[] = "Not yet implemented result node type: %d";
+static char __pyx_k_332[] = "_ElementStringResult";
+static char __pyx_k_333[] = "XPath function '%s' not found";
+static char __pyx_k_334[] = "This version of libxml2 has a known XPath bug. Use it at your own risk.";
+static char __pyx_k_336[] = "XPath evaluator locking failed";
+static char __pyx_k_337[] = "Error in xpath expression";
+static char __pyx_k_340[] = "XPath context not initialised";
+static char __pyx_k_349[] = "__xpp%02d";
+static char __pyx_k_352[] = "string://__STRING__XSLT__/";
+static char __pyx_k_353[] = "Cannot resolve URI %s";
+static char __pyx_k_354[] = "%s(%s)";
+static char __pyx_k_355[] = ", ";
+static char __pyx_k_356[] = "%s=%r";
+static char __pyx_k_357[] = "extensions must not have empty namespaces";
+static char __pyx_k_359[] = "string://__STRING__XSLT__/%d.xslt";
+static char __pyx_k_361[] = "Cannot parse stylesheet";
+static char __pyx_k_362[] = "cannot set a maximum stylesheet traversal depth < 0";
+static char __pyx_k_366[] = "XSLT stylesheet not initialised";
+static char __pyx_k_367[] = "Error applying stylesheet, line %d";
+static char __pyx_k_368[] = "Error applying stylesheet";
+static char __pyx_k_369[] = "//xsl:stylesheet[@xml:id = $id]";
+static char __pyx_k_371[] = "http://www.w3.org/1999/XSL/Transform";
+static char __pyx_k_372[] = "PI lacks content";
+static char __pyx_k_373[] = "malformed PI attributes";
+static char __pyx_k_374[] = "reference to non-existing embedded stylesheet";
+static char __pyx_k_375[] = "ambiguous reference to embedded stylesheet";
+static char __pyx_k_376[] = "only setting the 'href' attribute is supported on XSLT-PIs";
+static char __pyx_k_377[] = "Invalid URL, must not contain '\"' or '>'";
+static char __pyx_k_378[] = " href=\"%s\"";
+static char __pyx_k_381[] = "XSLT context not initialised";
+static char __pyx_k_382[] = "fake-parent";
+static char __pyx_k_385[] = "unsupported XSLT result type: %d";
+static char __pyx_k_386[] = "extension element %s not found";
+static char __pyx_k_388[] = "Error executing extension element '%s': %s";
+static char __pyx_k_389[] = "Error executing extension element '%s'";
+static char __pyx_k_390[] = "Error during XSLT extension element evaluation";
+static char __pyx_k_391[] = "Document does not comply with schema";
+static char __pyx_k_392[] = "invalid DTD proxy at %s";
+static char __pyx_k_393[] = "<%s.%s object name=%r type=%r occur=%r at 0x%x>";
+static char __pyx_k_394[] = "<%s.%s object name=%r elemname=%r prefix=%r type=%r default=%r default_value=%r at 0x%x>";
+static char __pyx_k_395[] = "<%s.%s object name=%r prefix=%r type=%r at 0x%x>";
+static char __pyx_k_396[] = "<%s.%s object name=%r at 0x%x>";
+static char __pyx_k_398[] = "file must be a filename or file-like object";
+static char __pyx_k_400[] = "either filename or external ID required";
+static char __pyx_k_401[] = "error parsing DTD";
+static char __pyx_k_402[] = "DTD not initialised";
+static char __pyx_k_403[] = "Failed to create validation context";
+static char __pyx_k_406[] = "Internal error in DTD validation";
+static char __pyx_k_408[] = "http://relaxng.org/ns/structure/1.0";
+static char __pyx_k_409[] = "Document is not Relax NG";
+static char __pyx_k_411[] = "No tree or file given";
+static char __pyx_k_412[] = "Document is not parsable as Relax NG";
+static char __pyx_k_413[] = "Document is not valid Relax NG";
+static char __pyx_k_414[] = "RelaxNG instance not initialised";
+static char __pyx_k_415[] = "RelaxNGValidateError";
+static char __pyx_k_416[] = "Internal error in Relax NG validation";
+static char __pyx_k_418[] = "http://www.w3.org/2001/XMLSchema";
+static char __pyx_k_419[] = "Document is not XML Schema";
+static char __pyx_k_420[] = "Document is not valid XML Schema";
+static char __pyx_k_421[] = "Schema instance not initialised";
+static char __pyx_k_422[] = "XMLSchemaValidateError";
+static char __pyx_k_423[] = "Internal error in XML Schema validation.";
+static char __pyx_k_424[] = "_ParserSchemaValidationContext not initialised";
+static char __pyx_k_425[] = "lxml.etree was compiled without Schematron support.";
+static char __pyx_k_427[] = "SchematronParseError";
+static char __pyx_k_429[] = "Document is not a valid Schematron schema";
+static char __pyx_k_430[] = "Schematron instance not initialised";
+static char __pyx_k_432[] = "SchematronValidateError";
+static char __pyx_k_433[] = "Internal error in Schematron validation";
+static char __pyx_k_434[] = ".memorylist";
+static char __pyx_k_435[] = "getfilesystemencoding";
+static char __pyx_k_436[] = "Failed to create file %s";
+static char __pyx_k_437[] = ".memorydump";
+static char __pyx_k_438[] = "The error log of the last parser run.\n        ";
+static char __pyx_k_439[] = "The custom resolver registry of this parser.";
+static char __pyx_k_440[] = "The version of the underlying XML parser.";
+static char __pyx_k_441[] = "The error log of the last (or current) run of the feed parser.\n\n        Note that this is local to the feed parser and thus is\n        different from what the ``error_log`` property returns.\n        ";
+static char __pyx_k_442[] = "Element tag\n        ";
+static char __pyx_k_443[] = "Element attribute dictionary. Where possible, use get(), set(),\n        keys(), values() and items() to access element attributes.\n        ";
+static char __pyx_k_444[] = "Text before the first subelement. This is either a string or \n        the value None, if there was no text.\n        ";
+static char __pyx_k_445[] = "Text after this element's end tag, but before the next sibling\n        element's start tag. This is either a string or the value None, if\n        there was no text.\n        ";
+static char __pyx_k_446[] = "Namespace prefix or None.\n        ";
+static char __pyx_k_447[] = "Original line number as found by the parser or None if unknown.\n        ";
+static char __pyx_k_448[] = "Namespace prefix->URI mapping known in the context of this\n        Element.  This includes all namespace declarations of the\n        parents.\n\n        Note that changing the returned dict has no effect on the Element.\n        ";
+static char __pyx_k_449[] = "The base URI of the Element (xml:base or HTML base URL).\n        None if the base URI is unknown.\n\n        Note that the value depends on the URL of the document that\n        holds the Element if there is no xml:base attribute on the\n        Element or its ancestors.\n\n        Setting this property will set an xml:base attribute on the\n        Element, regardless of the document type (XML or HTML).\n        ";
+static char __pyx_k_450[] = "Returns a dict containing all pseudo-attributes that can be\n        parsed from the text content of this processing instruction.\n        Note that modifying the dict currently has no effect on the\n        XML node, although this is not guaranteed to stay this way.\n        ";
+static char __pyx_k_451[] = "Namespace prefix for extension functions.";
+static char __pyx_k_452[] = "The log of errors and warnings of an XSLT execution.";
+static char __pyx_k_453[] = "The literal XPath expression.\n        ";
+static char __pyx_k_454[] = "Information about the document provided by parser and DTD.  This\n        value is only defined for ElementTree objects based on the root node\n        of a parsed document (e.g.  those returned by the parse functions),\n        not for trees that were built manually.\n        ";
+static char __pyx_k_455[] = "The parser that was used to parse the document in this ElementTree.\n        ";
+static char __pyx_k_456[] = "The log of validation errors and warnings.";
+static char __pyx_k_457[] = "The name of the error domain.  See lxml.etree.ErrorDomains\n        ";
+static char __pyx_k_458[] = "The name of the error type.  See lxml.etree.ErrorTypes\n        ";
+static char __pyx_k_459[] = "The name of the error level.  See lxml.etree.ErrorLevels\n        ";
+static char __pyx_k_460[] = "Return an ElementTree with profiling data for the stylesheet run.\n        ";
+static char __pyx_k_461[] = "The error log of the last (or current) parser run.\n        ";
+static char __pyx_k_462[] = "Returns the name of the root node as defined by the DOCTYPE.";
+static char __pyx_k_463[] = "Returns the public ID of the DOCTYPE.";
+static char __pyx_k_464[] = "Returns the system ID of the DOCTYPE.";
+static char __pyx_k_465[] = "Returns the XML version as declared by the document.";
+static char __pyx_k_466[] = "Returns the encoding name as declared by the document.";
+static char __pyx_k_467[] = "Returns the standalone flag as declared by the document.  The possible\n        values are True (``standalone='yes'``), False\n        (``standalone='no'`` or flag not provided in the declaration),\n        and None (unknown or no declaration found).  Note that a\n        normal truth test on this value will always tell if the\n        ``standalone`` flag was set to ``'yes'`` or not.\n        ";
+static char __pyx_k_468[] = "The source URL of the document (or None if unknown).";
+static char __pyx_k_469[] = "Returns a DOCTYPE declaration string for the document.";
+static char __pyx_k_470[] = "Returns a DTD validator based on the internal subset of the document.";
+static char __pyx_k_471[] = "Returns a DTD validator based on the external subset of the document.";
+static char __pyx_k_472[] = "Text before the first subelement. This is either a string or the\n        value None, if there was no text.\n        ";
+static char __pyx_k_473[] = "The access control configuration as a map of options.";
+static char __pyx_k_474[] = "The ``lxml.etree`` module implements the extended ElementTree API\nfor XML.\n";
+static char __pyx_k_475[] = "restructuredtext en";
+static char __pyx_k_476[] = "AttributeBasedElementClassLookup";
+static char __pyx_k_477[] = "CustomElementClassLookup";
+static char __pyx_k_478[] = "ElementDefaultClassLookup";
+static char __pyx_k_479[] = "ElementNamespaceClassLookup";
+static char __pyx_k_480[] = "FallbackElementClassLookup";
+static char __pyx_k_481[] = "LIBXML_COMPILED_VERSION";
+static char __pyx_k_482[] = "LIBXSLT_COMPILED_VERSION";
+static char __pyx_k_483[] = "ParserBasedElementClassLookup";
+static char __pyx_k_484[] = "PythonElementClassLookup";
+static char __pyx_k_485[] = "XPathDocumentEvaluator";
+static char __pyx_k_486[] = "use_global_python_log";
+static char __pyx_k_487[] = "os.path";
+static char __pyx_k_489[] = "http://www.w3.org/XML/1998/namespace";
+static char __pyx_k_490[] = "http://www.w3.org/1999/xhtml";
+static char __pyx_k_491[] = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
+static char __pyx_k_492[] = "http://schemas.xmlsoap.org/wsdl/";
+static char __pyx_k_493[] = "http://www.w3.org/2001/XMLSchema-instance";
+static char __pyx_k_494[] = "http://purl.org/dc/elements/1.1/";
+static char __pyx_k_495[] = "http://codespeak.net/lxml/objectify/pytype";
+static char __pyx_k_496[] = "ns\\d+$";
+static char __pyx_k_500[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx";
+static char __pyx_k_501[] = "lxml.etree";
+static char __pyx_k_505[] = "LxmlError.__init__";
+static char __pyx_k_506[] = "Main exception base class for lxml.  All other exceptions inherit from\n    this one.\n    ";
+static char __pyx_k_507[] = "Base class for all syntax errors.\n    ";
+static char __pyx_k_508[] = "Error during C14N serialisation.\n    ";
+static char __pyx_k_509[] = "[0-9]+";
+static char __pyx_k_511[] = "Unknown libxml2 version: %s";
+static char __pyx_k_512[] = "^(<\\?xml[^>]+)\\s+encoding\\s*=\\s*[\"\\'][^\"\\']*[\"\\'](\\s*\\?>|)";
+static char __pyx_k_514[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi";
+static char __pyx_k_518[] = "Libxml2 error levels";
+static char __pyx_k_519[] = "Libxml2 error domains";
+static char __pyx_k_520[] = "Libxml2 error types";
+static char __pyx_k_521[] = "Libxml2 RelaxNG error types";
+static char __pyx_k_522[] = "NONE=0\nWARNING=1\nERROR=2\nFATAL=3\n";
+static char __pyx_k_524[] = "NONE=0\nPARSER=1\nTREE=2\nNAMESPACE=3\nDTD=4\nHTML=5\nMEMORY=6\nOUTPUT=7\nIO=8\nFTP=9\nHTTP=10\nXINCLUDE=11\nXPATH=12\nXPOINTER=13\nREGEXP=14\nDATATYPE=15\nSCHEMASP=16\nSCHEMASV=17\nRELAXNGP=18\nRELAXNGV=19\nCATALOG=20\nC14N=21\nXSLT=22\nVALID=23\nCHECK=24\nWRITER=25\nMODULE=26\nI18N=27\nSCHEMATRONV=28\nBUFFER=29\nURI=30\n";
+static char __pyx_k_526[] = "ERR_OK=0\nERR_INTERNAL_ERROR=1\nERR_NO_MEMORY=2\nERR_DOCUMENT_START=3\nERR_DOCUMENT_EMPTY=4\nERR_DOCUMENT_END=5\nERR_INVALID_HEX_CHARREF=6\nERR_INVALID_DEC_CHARREF=7\nERR_INVALID_CHARREF=8\nERR_INVALID_CHAR=9\nERR_CHARREF_AT_EOF=10\nERR_CHARREF_IN_PROLOG=11\nERR_CHARREF_IN_EPILOG=12\nERR_CHARREF_IN_DTD=13\nERR_ENTITYREF_AT_EOF=14\nERR_ENTITYREF_IN_PROLOG=15\nERR_ENTITYREF_IN_EPILOG=16\nERR_ENTITYREF_IN_DTD=17\nERR_PEREF_AT_EOF=18\nERR_PEREF_IN_PROLOG=19\nERR_PEREF_IN_EPILOG=20\nERR_PEREF_IN_INT_SUBSET=21\nERR_ENTITYREF_NO_NAME=22\nERR_ENTITYREF_SEMICOL_MISSING=23\nERR_PEREF_NO_NAME=24\nERR_PEREF_SEMICOL_MISSING=25\nERR_UNDECLARED_ENTITY=26\nWAR_UNDECLARED_ENTITY=27\nERR_UNPARSED_ENTITY=28\nERR_ENTITY_IS_EXTERNAL=29\nERR_ENTITY_IS_PARAMETER=30\nERR_UNKNOWN_ENCODING=31\nERR_UNSUPPORTED_ENCODING=32\nERR_STRING_NOT_STARTED=33\nERR_STRING_NOT_CLOSED=34\nERR_NS_DECL_ERROR=35\nERR_ENTITY_NOT_STARTED=36\nERR_ENTITY_NOT_FINISHED=37\nERR_LT_IN_ATTRIBUTE=38\nERR_ATTRIBUTE_NOT_STARTED=39\nERR_ATTRIBUTE_NOT_FINISHED=40\nERR_ATTRIBUTE_WITHOUT_VALUE=41\nERR_ATTRIBUTE_REDEFINED=42\nERR_LITERAL_NOT_STARTED=43\nERR_LITERAL_NOT_FINISHED=44\nERR_COMMENT_NOT_FINISHED=45\nERR_PI_NOT_STARTED=46\nERR_PI_NOT_FINISHED=47\nERR_NOTATION_NOT_STARTED=48\nERR_NOTATION_NOT_FINISHED=49\nERR_ATTLIST_NOT_STARTED=50\nERR_ATTLIST_NOT_FINISHED=51\nERR_MIXED_NOT_STARTED=52\nERR_MIXED_NOT_FINISHED=53\nERR_ELEMCONTENT_NOT_STARTED=54\nERR_ELEMCONTENT_NOT_FINISHED=55\nERR_XMLDECL_NOT_STARTED=56\nERR_XMLDECL_NOT_FINISHED=57\nERR_CONDSEC_NOT_STARTED=58\nERR_CONDSEC_NOT_FINISHED=59\nERR_EXT_SUBSET_NOT_FINISHED=60\nERR_DOCTYPE_NOT_FINISHED=61\nERR_MISPLACED_CDATA_END=62\nERR_CDATA_NOT_FINISHED=63\nERR_RESERVED_XML_NAME=64\nERR_SPACE_REQUIRED=65\nERR_SEPARATOR_REQUIRED=66\nERR_NMTOKEN_REQUIRED=67\nERR_NAME_REQUIRED=68\nERR_PCDATA_REQUIRED=69\nERR_URI_REQUIRED=70\nERR_PUBID_REQUIRED=71\nERR_LT_REQUIRED=72\nERR_GT_REQUIRED=73\nERR_LTSLASH_REQUIRED=74\nERR_EQUAL_REQUIRED=75\nERR_TAG_NAME_MISMATCH=76\nERR_TAG_NOT_FIN""ISHED=77\nERR_STANDALONE_VALUE=78\n";
+static char __pyx_k_527[] = "ERR_ENCODING_NAME=79\nERR_HYPHEN_IN_COMMENT=80\nERR_INVALID_ENCODING=81\nERR_EXT_ENTITY_STANDALONE=82\nERR_CONDSEC_INVALID=83\nERR_VALUE_REQUIRED=84\nERR_NOT_WELL_BALANCED=85\nERR_EXTRA_CONTENT=86\nERR_ENTITY_CHAR_ERROR=87\nERR_ENTITY_PE_INTERNAL=88\nERR_ENTITY_LOOP=89\nERR_ENTITY_BOUNDARY=90\nERR_INVALID_URI=91\nERR_URI_FRAGMENT=92\nWAR_CATALOG_PI=93\nERR_NO_DTD=94\nERR_CONDSEC_INVALID_KEYWORD=95\nERR_VERSION_MISSING=96\nWAR_UNKNOWN_VERSION=97\nWAR_LANG_VALUE=98\nWAR_NS_URI=99\nWAR_NS_URI_RELATIVE=100\nERR_MISSING_ENCODING=101\nWAR_SPACE_VALUE=102\nERR_NOT_STANDALONE=103\nERR_ENTITY_PROCESSING=104\nERR_NOTATION_PROCESSING=105\nWAR_NS_COLUMN=106\nWAR_ENTITY_REDEFINED=107\nERR_UNKNOWN_VERSION=108\nERR_VERSION_MISMATCH=109\nERR_NAME_TOO_LONG=110\nERR_USER_STOP=111\nNS_ERR_XML_NAMESPACE=200\nNS_ERR_UNDEFINED_NAMESPACE=201\nNS_ERR_QNAME=202\nNS_ERR_ATTRIBUTE_REDEFINED=203\nNS_ERR_EMPTY=204\nNS_ERR_COLON=205\nDTD_ATTRIBUTE_DEFAULT=500\nDTD_ATTRIBUTE_REDEFINED=501\nDTD_ATTRIBUTE_VALUE=502\nDTD_CONTENT_ERROR=503\nDTD_CONTENT_MODEL=504\nDTD_CONTENT_NOT_DETERMINIST=505\nDTD_DIFFERENT_PREFIX=506\nDTD_ELEM_DEFAULT_NAMESPACE=507\nDTD_ELEM_NAMESPACE=508\nDTD_ELEM_REDEFINED=509\nDTD_EMPTY_NOTATION=510\nDTD_ENTITY_TYPE=511\nDTD_ID_FIXED=512\nDTD_ID_REDEFINED=513\nDTD_ID_SUBSET=514\nDTD_INVALID_CHILD=515\nDTD_INVALID_DEFAULT=516\nDTD_LOAD_ERROR=517\nDTD_MISSING_ATTRIBUTE=518\nDTD_MIXED_CORRUPT=519\nDTD_MULTIPLE_ID=520\nDTD_NO_DOC=521\nDTD_NO_DTD=522\nDTD_NO_ELEM_NAME=523\nDTD_NO_PREFIX=524\nDTD_NO_ROOT=525\nDTD_NOTATION_REDEFINED=526\nDTD_NOTATION_VALUE=527\nDTD_NOT_EMPTY=528\nDTD_NOT_PCDATA=529\nDTD_NOT_STANDALONE=530\nDTD_ROOT_NAME=531\nDTD_STANDALONE_WHITE_SPACE=532\nDTD_UNKNOWN_ATTRIBUTE=533\nDTD_UNKNOWN_ELEM=534\nDTD_UNKNOWN_ENTITY=535\nDTD_UNKNOWN_ID=536\nDTD_UNKNOWN_NOTATION=537\nDTD_STANDALONE_DEFAULTED=538\nDTD_XMLID_VALUE=539\nDTD_XMLID_TYPE=540\nDTD_DUP_TOKEN=541\nHTML_STRUCURE_ERROR=800\nHTML_UNKNOWN_TAG=801\nRNGP_ANYNAME_ATTR_ANCESTOR=1000\nRNGP_ATTR_CONFLICT=1001\nRNG""P_ATTRIBUTE_CHILDREN=1002\n";
+static char __pyx_k_528[] = "RNGP_ATTRIBUTE_CONTENT=1003\nRNGP_ATTRIBUTE_EMPTY=1004\nRNGP_ATTRIBUTE_NOOP=1005\nRNGP_CHOICE_CONTENT=1006\nRNGP_CHOICE_EMPTY=1007\nRNGP_CREATE_FAILURE=1008\nRNGP_DATA_CONTENT=1009\nRNGP_DEF_CHOICE_AND_INTERLEAVE=1010\nRNGP_DEFINE_CREATE_FAILED=1011\nRNGP_DEFINE_EMPTY=1012\nRNGP_DEFINE_MISSING=1013\nRNGP_DEFINE_NAME_MISSING=1014\nRNGP_ELEM_CONTENT_EMPTY=1015\nRNGP_ELEM_CONTENT_ERROR=1016\nRNGP_ELEMENT_EMPTY=1017\nRNGP_ELEMENT_CONTENT=1018\nRNGP_ELEMENT_NAME=1019\nRNGP_ELEMENT_NO_CONTENT=1020\nRNGP_ELEM_TEXT_CONFLICT=1021\nRNGP_EMPTY=1022\nRNGP_EMPTY_CONSTRUCT=1023\nRNGP_EMPTY_CONTENT=1024\nRNGP_EMPTY_NOT_EMPTY=1025\nRNGP_ERROR_TYPE_LIB=1026\nRNGP_EXCEPT_EMPTY=1027\nRNGP_EXCEPT_MISSING=1028\nRNGP_EXCEPT_MULTIPLE=1029\nRNGP_EXCEPT_NO_CONTENT=1030\nRNGP_EXTERNALREF_EMTPY=1031\nRNGP_EXTERNAL_REF_FAILURE=1032\nRNGP_EXTERNALREF_RECURSE=1033\nRNGP_FORBIDDEN_ATTRIBUTE=1034\nRNGP_FOREIGN_ELEMENT=1035\nRNGP_GRAMMAR_CONTENT=1036\nRNGP_GRAMMAR_EMPTY=1037\nRNGP_GRAMMAR_MISSING=1038\nRNGP_GRAMMAR_NO_START=1039\nRNGP_GROUP_ATTR_CONFLICT=1040\nRNGP_HREF_ERROR=1041\nRNGP_INCLUDE_EMPTY=1042\nRNGP_INCLUDE_FAILURE=1043\nRNGP_INCLUDE_RECURSE=1044\nRNGP_INTERLEAVE_ADD=1045\nRNGP_INTERLEAVE_CREATE_FAILED=1046\nRNGP_INTERLEAVE_EMPTY=1047\nRNGP_INTERLEAVE_NO_CONTENT=1048\nRNGP_INVALID_DEFINE_NAME=1049\nRNGP_INVALID_URI=1050\nRNGP_INVALID_VALUE=1051\nRNGP_MISSING_HREF=1052\nRNGP_NAME_MISSING=1053\nRNGP_NEED_COMBINE=1054\nRNGP_NOTALLOWED_NOT_EMPTY=1055\nRNGP_NSNAME_ATTR_ANCESTOR=1056\nRNGP_NSNAME_NO_NS=1057\nRNGP_PARAM_FORBIDDEN=1058\nRNGP_PARAM_NAME_MISSING=1059\nRNGP_PARENTREF_CREATE_FAILED=1060\nRNGP_PARENTREF_NAME_INVALID=1061\nRNGP_PARENTREF_NO_NAME=1062\nRNGP_PARENTREF_NO_PARENT=1063\nRNGP_PARENTREF_NOT_EMPTY=1064\nRNGP_PARSE_ERROR=1065\nRNGP_PAT_ANYNAME_EXCEPT_ANYNAME=1066\nRNGP_PAT_ATTR_ATTR=1067\nRNGP_PAT_ATTR_ELEM=1068\nRNGP_PAT_DATA_EXCEPT_ATTR=1069\nRNGP_PAT_DATA_EXCEPT_ELEM=1070\nRNGP_PAT_DATA_EXCEPT_EMPTY=1071\nRNGP_PAT_DATA_EXCEPT_GROUP=1072\nRNGP_PAT_DATA_EXCEPT_INTERLEAVE=107""3\nRNGP_PAT_DATA_EXCEPT_LIST=1074\n";
+static char __pyx_k_529[] = "RNGP_PAT_DATA_EXCEPT_ONEMORE=1075\nRNGP_PAT_DATA_EXCEPT_REF=1076\nRNGP_PAT_DATA_EXCEPT_TEXT=1077\nRNGP_PAT_LIST_ATTR=1078\nRNGP_PAT_LIST_ELEM=1079\nRNGP_PAT_LIST_INTERLEAVE=1080\nRNGP_PAT_LIST_LIST=1081\nRNGP_PAT_LIST_REF=1082\nRNGP_PAT_LIST_TEXT=1083\nRNGP_PAT_NSNAME_EXCEPT_ANYNAME=1084\nRNGP_PAT_NSNAME_EXCEPT_NSNAME=1085\nRNGP_PAT_ONEMORE_GROUP_ATTR=1086\nRNGP_PAT_ONEMORE_INTERLEAVE_ATTR=1087\nRNGP_PAT_START_ATTR=1088\nRNGP_PAT_START_DATA=1089\nRNGP_PAT_START_EMPTY=1090\nRNGP_PAT_START_GROUP=1091\nRNGP_PAT_START_INTERLEAVE=1092\nRNGP_PAT_START_LIST=1093\nRNGP_PAT_START_ONEMORE=1094\nRNGP_PAT_START_TEXT=1095\nRNGP_PAT_START_VALUE=1096\nRNGP_PREFIX_UNDEFINED=1097\nRNGP_REF_CREATE_FAILED=1098\nRNGP_REF_CYCLE=1099\nRNGP_REF_NAME_INVALID=1100\nRNGP_REF_NO_DEF=1101\nRNGP_REF_NO_NAME=1102\nRNGP_REF_NOT_EMPTY=1103\nRNGP_START_CHOICE_AND_INTERLEAVE=1104\nRNGP_START_CONTENT=1105\nRNGP_START_EMPTY=1106\nRNGP_START_MISSING=1107\nRNGP_TEXT_EXPECTED=1108\nRNGP_TEXT_HAS_CHILD=1109\nRNGP_TYPE_MISSING=1110\nRNGP_TYPE_NOT_FOUND=1111\nRNGP_TYPE_VALUE=1112\nRNGP_UNKNOWN_ATTRIBUTE=1113\nRNGP_UNKNOWN_COMBINE=1114\nRNGP_UNKNOWN_CONSTRUCT=1115\nRNGP_UNKNOWN_TYPE_LIB=1116\nRNGP_URI_FRAGMENT=1117\nRNGP_URI_NOT_ABSOLUTE=1118\nRNGP_VALUE_EMPTY=1119\nRNGP_VALUE_NO_CONTENT=1120\nRNGP_XMLNS_NAME=1121\nRNGP_XML_NS=1122\nXPATH_EXPRESSION_OK=1200\nXPATH_NUMBER_ERROR=1201\nXPATH_UNFINISHED_LITERAL_ERROR=1202\nXPATH_START_LITERAL_ERROR=1203\nXPATH_VARIABLE_REF_ERROR=1204\nXPATH_UNDEF_VARIABLE_ERROR=1205\nXPATH_INVALID_PREDICATE_ERROR=1206\nXPATH_EXPR_ERROR=1207\nXPATH_UNCLOSED_ERROR=1208\nXPATH_UNKNOWN_FUNC_ERROR=1209\nXPATH_INVALID_OPERAND=1210\nXPATH_INVALID_TYPE=1211\nXPATH_INVALID_ARITY=1212\nXPATH_INVALID_CTXT_SIZE=1213\nXPATH_INVALID_CTXT_POSITION=1214\nXPATH_MEMORY_ERROR=1215\nXPTR_SYNTAX_ERROR=1216\nXPTR_RESOURCE_ERROR=1217\nXPTR_SUB_RESOURCE_ERROR=1218\nXPATH_UNDEF_PREFIX_ERROR=1219\nXPATH_ENCODING_ERROR=1220\nXPATH_INVALID_CHAR_ERROR=1221\nTREE_INVALID_HEX=1300\nTREE_INVALID_DEC=1301\nTREE""_UNTERMINATED_ENTITY=1302\n";
+static char __pyx_k_530[] = "TREE_NOT_UTF8=1303\nSAVE_NOT_UTF8=1400\nSAVE_CHAR_INVALID=1401\nSAVE_NO_DOCTYPE=1402\nSAVE_UNKNOWN_ENCODING=1403\nREGEXP_COMPILE_ERROR=1450\nIO_UNKNOWN=1500\nIO_EACCES=1501\nIO_EAGAIN=1502\nIO_EBADF=1503\nIO_EBADMSG=1504\nIO_EBUSY=1505\nIO_ECANCELED=1506\nIO_ECHILD=1507\nIO_EDEADLK=1508\nIO_EDOM=1509\nIO_EEXIST=1510\nIO_EFAULT=1511\nIO_EFBIG=1512\nIO_EINPROGRESS=1513\nIO_EINTR=1514\nIO_EINVAL=1515\nIO_EIO=1516\nIO_EISDIR=1517\nIO_EMFILE=1518\nIO_EMLINK=1519\nIO_EMSGSIZE=1520\nIO_ENAMETOOLONG=1521\nIO_ENFILE=1522\nIO_ENODEV=1523\nIO_ENOENT=1524\nIO_ENOEXEC=1525\nIO_ENOLCK=1526\nIO_ENOMEM=1527\nIO_ENOSPC=1528\nIO_ENOSYS=1529\nIO_ENOTDIR=1530\nIO_ENOTEMPTY=1531\nIO_ENOTSUP=1532\nIO_ENOTTY=1533\nIO_ENXIO=1534\nIO_EPERM=1535\nIO_EPIPE=1536\nIO_ERANGE=1537\nIO_EROFS=1538\nIO_ESPIPE=1539\nIO_ESRCH=1540\nIO_ETIMEDOUT=1541\nIO_EXDEV=1542\nIO_NETWORK_ATTEMPT=1543\nIO_ENCODER=1544\nIO_FLUSH=1545\nIO_WRITE=1546\nIO_NO_INPUT=1547\nIO_BUFFER_FULL=1548\nIO_LOAD_ERROR=1549\nIO_ENOTSOCK=1550\nIO_EISCONN=1551\nIO_ECONNREFUSED=1552\nIO_ENETUNREACH=1553\nIO_EADDRINUSE=1554\nIO_EALREADY=1555\nIO_EAFNOSUPPORT=1556\nXINCLUDE_RECURSION=1600\nXINCLUDE_PARSE_VALUE=1601\nXINCLUDE_ENTITY_DEF_MISMATCH=1602\nXINCLUDE_NO_HREF=1603\nXINCLUDE_NO_FALLBACK=1604\nXINCLUDE_HREF_URI=1605\nXINCLUDE_TEXT_FRAGMENT=1606\nXINCLUDE_TEXT_DOCUMENT=1607\nXINCLUDE_INVALID_CHAR=1608\nXINCLUDE_BUILD_FAILED=1609\nXINCLUDE_UNKNOWN_ENCODING=1610\nXINCLUDE_MULTIPLE_ROOT=1611\nXINCLUDE_XPTR_FAILED=1612\nXINCLUDE_XPTR_RESULT=1613\nXINCLUDE_INCLUDE_IN_INCLUDE=1614\nXINCLUDE_FALLBACKS_IN_INCLUDE=1615\nXINCLUDE_FALLBACK_NOT_IN_INCLUDE=1616\nXINCLUDE_DEPRECATED_NS=1617\nXINCLUDE_FRAGMENT_ID=1618\nCATALOG_MISSING_ATTR=1650\nCATALOG_ENTRY_BROKEN=1651\nCATALOG_PREFER_VALUE=1652\nCATALOG_NOT_CATALOG=1653\nCATALOG_RECURSION=1654\nSCHEMAP_PREFIX_UNDEFINED=1700\nSCHEMAP_ATTRFORMDEFAULT_VALUE=1701\nSCHEMAP_ATTRGRP_NONAME_NOREF=1702\nSCHEMAP_ATTR_NONAME_NOREF=1703\nSCHEMAP_COMPLEXTYPE_NONAME_NOREF=1704\nSCHEMAP_ELEMFORMDEFAULT_VALUE=""1705\nSCHEMAP_ELEM_NONAME_NOREF=1706\n";
+static char __pyx_k_531[] = "SCHEMAP_EXTENSION_NO_BASE=1707\nSCHEMAP_FACET_NO_VALUE=1708\nSCHEMAP_FAILED_BUILD_IMPORT=1709\nSCHEMAP_GROUP_NONAME_NOREF=1710\nSCHEMAP_IMPORT_NAMESPACE_NOT_URI=1711\nSCHEMAP_IMPORT_REDEFINE_NSNAME=1712\nSCHEMAP_IMPORT_SCHEMA_NOT_URI=1713\nSCHEMAP_INVALID_BOOLEAN=1714\nSCHEMAP_INVALID_ENUM=1715\nSCHEMAP_INVALID_FACET=1716\nSCHEMAP_INVALID_FACET_VALUE=1717\nSCHEMAP_INVALID_MAXOCCURS=1718\nSCHEMAP_INVALID_MINOCCURS=1719\nSCHEMAP_INVALID_REF_AND_SUBTYPE=1720\nSCHEMAP_INVALID_WHITE_SPACE=1721\nSCHEMAP_NOATTR_NOREF=1722\nSCHEMAP_NOTATION_NO_NAME=1723\nSCHEMAP_NOTYPE_NOREF=1724\nSCHEMAP_REF_AND_SUBTYPE=1725\nSCHEMAP_RESTRICTION_NONAME_NOREF=1726\nSCHEMAP_SIMPLETYPE_NONAME=1727\nSCHEMAP_TYPE_AND_SUBTYPE=1728\nSCHEMAP_UNKNOWN_ALL_CHILD=1729\nSCHEMAP_UNKNOWN_ANYATTRIBUTE_CHILD=1730\nSCHEMAP_UNKNOWN_ATTR_CHILD=1731\nSCHEMAP_UNKNOWN_ATTRGRP_CHILD=1732\nSCHEMAP_UNKNOWN_ATTRIBUTE_GROUP=1733\nSCHEMAP_UNKNOWN_BASE_TYPE=1734\nSCHEMAP_UNKNOWN_CHOICE_CHILD=1735\nSCHEMAP_UNKNOWN_COMPLEXCONTENT_CHILD=1736\nSCHEMAP_UNKNOWN_COMPLEXTYPE_CHILD=1737\nSCHEMAP_UNKNOWN_ELEM_CHILD=1738\nSCHEMAP_UNKNOWN_EXTENSION_CHILD=1739\nSCHEMAP_UNKNOWN_FACET_CHILD=1740\nSCHEMAP_UNKNOWN_FACET_TYPE=1741\nSCHEMAP_UNKNOWN_GROUP_CHILD=1742\nSCHEMAP_UNKNOWN_IMPORT_CHILD=1743\nSCHEMAP_UNKNOWN_LIST_CHILD=1744\nSCHEMAP_UNKNOWN_NOTATION_CHILD=1745\nSCHEMAP_UNKNOWN_PROCESSCONTENT_CHILD=1746\nSCHEMAP_UNKNOWN_REF=1747\nSCHEMAP_UNKNOWN_RESTRICTION_CHILD=1748\nSCHEMAP_UNKNOWN_SCHEMAS_CHILD=1749\nSCHEMAP_UNKNOWN_SEQUENCE_CHILD=1750\nSCHEMAP_UNKNOWN_SIMPLECONTENT_CHILD=1751\nSCHEMAP_UNKNOWN_SIMPLETYPE_CHILD=1752\nSCHEMAP_UNKNOWN_TYPE=1753\nSCHEMAP_UNKNOWN_UNION_CHILD=1754\nSCHEMAP_ELEM_DEFAULT_FIXED=1755\nSCHEMAP_REGEXP_INVALID=1756\nSCHEMAP_FAILED_LOAD=1757\nSCHEMAP_NOTHING_TO_PARSE=1758\nSCHEMAP_NOROOT=1759\nSCHEMAP_REDEFINED_GROUP=1760\nSCHEMAP_REDEFINED_TYPE=1761\nSCHEMAP_REDEFINED_ELEMENT=1762\nSCHEMAP_REDEFINED_ATTRGROUP=1763\nSCHEMAP_REDEFINED_ATTR=1764\nSCHEMAP_REDEFINED_NOTATION=1765\nSCHEMAP_FAILED_PARSE=1766\nSCH""EMAP_UNKNOWN_PREFIX=1767\n";
+static char __pyx_k_532[] = "SCHEMAP_DEF_AND_PREFIX=1768\nSCHEMAP_UNKNOWN_INCLUDE_CHILD=1769\nSCHEMAP_INCLUDE_SCHEMA_NOT_URI=1770\nSCHEMAP_INCLUDE_SCHEMA_NO_URI=1771\nSCHEMAP_NOT_SCHEMA=1772\nSCHEMAP_UNKNOWN_MEMBER_TYPE=1773\nSCHEMAP_INVALID_ATTR_USE=1774\nSCHEMAP_RECURSIVE=1775\nSCHEMAP_SUPERNUMEROUS_LIST_ITEM_TYPE=1776\nSCHEMAP_INVALID_ATTR_COMBINATION=1777\nSCHEMAP_INVALID_ATTR_INLINE_COMBINATION=1778\nSCHEMAP_MISSING_SIMPLETYPE_CHILD=1779\nSCHEMAP_INVALID_ATTR_NAME=1780\nSCHEMAP_REF_AND_CONTENT=1781\nSCHEMAP_CT_PROPS_CORRECT_1=1782\nSCHEMAP_CT_PROPS_CORRECT_2=1783\nSCHEMAP_CT_PROPS_CORRECT_3=1784\nSCHEMAP_CT_PROPS_CORRECT_4=1785\nSCHEMAP_CT_PROPS_CORRECT_5=1786\nSCHEMAP_DERIVATION_OK_RESTRICTION_1=1787\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_1=1788\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2=1789\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_2=1790\nSCHEMAP_DERIVATION_OK_RESTRICTION_3=1791\nSCHEMAP_WILDCARD_INVALID_NS_MEMBER=1792\nSCHEMAP_INTERSECTION_NOT_EXPRESSIBLE=1793\nSCHEMAP_UNION_NOT_EXPRESSIBLE=1794\nSCHEMAP_SRC_IMPORT_3_1=1795\nSCHEMAP_SRC_IMPORT_3_2=1796\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_1=1797\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_2=1798\nSCHEMAP_DERIVATION_OK_RESTRICTION_4_3=1799\nSCHEMAP_COS_CT_EXTENDS_1_3=1800\nSCHEMAV_NOROOT=1801\nSCHEMAV_UNDECLAREDELEM=1802\nSCHEMAV_NOTTOPLEVEL=1803\nSCHEMAV_MISSING=1804\nSCHEMAV_WRONGELEM=1805\nSCHEMAV_NOTYPE=1806\nSCHEMAV_NOROLLBACK=1807\nSCHEMAV_ISABSTRACT=1808\nSCHEMAV_NOTEMPTY=1809\nSCHEMAV_ELEMCONT=1810\nSCHEMAV_HAVEDEFAULT=1811\nSCHEMAV_NOTNILLABLE=1812\nSCHEMAV_EXTRACONTENT=1813\nSCHEMAV_INVALIDATTR=1814\nSCHEMAV_INVALIDELEM=1815\nSCHEMAV_NOTDETERMINIST=1816\nSCHEMAV_CONSTRUCT=1817\nSCHEMAV_INTERNAL=1818\nSCHEMAV_NOTSIMPLE=1819\nSCHEMAV_ATTRUNKNOWN=1820\nSCHEMAV_ATTRINVALID=1821\nSCHEMAV_VALUE=1822\nSCHEMAV_FACET=1823\nSCHEMAV_CVC_DATATYPE_VALID_1_2_1=1824\nSCHEMAV_CVC_DATATYPE_VALID_1_2_2=1825\nSCHEMAV_CVC_DATATYPE_VALID_1_2_3=1826\nSCHEMAV_CVC_TYPE_3_1_1=1827\nSCHEMAV_CVC_TYPE_3_1_2=1828\nSCHEMAV_CVC_FACET_VALID=1829\nSCHEMAV_CVC_LENGTH_VALID""=1830\n";
+static char __pyx_k_533[] = "SCHEMAV_CVC_MINLENGTH_VALID=1831\nSCHEMAV_CVC_MAXLENGTH_VALID=1832\nSCHEMAV_CVC_MININCLUSIVE_VALID=1833\nSCHEMAV_CVC_MAXINCLUSIVE_VALID=1834\nSCHEMAV_CVC_MINEXCLUSIVE_VALID=1835\nSCHEMAV_CVC_MAXEXCLUSIVE_VALID=1836\nSCHEMAV_CVC_TOTALDIGITS_VALID=1837\nSCHEMAV_CVC_FRACTIONDIGITS_VALID=1838\nSCHEMAV_CVC_PATTERN_VALID=1839\nSCHEMAV_CVC_ENUMERATION_VALID=1840\nSCHEMAV_CVC_COMPLEX_TYPE_2_1=1841\nSCHEMAV_CVC_COMPLEX_TYPE_2_2=1842\nSCHEMAV_CVC_COMPLEX_TYPE_2_3=1843\nSCHEMAV_CVC_COMPLEX_TYPE_2_4=1844\nSCHEMAV_CVC_ELT_1=1845\nSCHEMAV_CVC_ELT_2=1846\nSCHEMAV_CVC_ELT_3_1=1847\nSCHEMAV_CVC_ELT_3_2_1=1848\nSCHEMAV_CVC_ELT_3_2_2=1849\nSCHEMAV_CVC_ELT_4_1=1850\nSCHEMAV_CVC_ELT_4_2=1851\nSCHEMAV_CVC_ELT_4_3=1852\nSCHEMAV_CVC_ELT_5_1_1=1853\nSCHEMAV_CVC_ELT_5_1_2=1854\nSCHEMAV_CVC_ELT_5_2_1=1855\nSCHEMAV_CVC_ELT_5_2_2_1=1856\nSCHEMAV_CVC_ELT_5_2_2_2_1=1857\nSCHEMAV_CVC_ELT_5_2_2_2_2=1858\nSCHEMAV_CVC_ELT_6=1859\nSCHEMAV_CVC_ELT_7=1860\nSCHEMAV_CVC_ATTRIBUTE_1=1861\nSCHEMAV_CVC_ATTRIBUTE_2=1862\nSCHEMAV_CVC_ATTRIBUTE_3=1863\nSCHEMAV_CVC_ATTRIBUTE_4=1864\nSCHEMAV_CVC_COMPLEX_TYPE_3_1=1865\nSCHEMAV_CVC_COMPLEX_TYPE_3_2_1=1866\nSCHEMAV_CVC_COMPLEX_TYPE_3_2_2=1867\nSCHEMAV_CVC_COMPLEX_TYPE_4=1868\nSCHEMAV_CVC_COMPLEX_TYPE_5_1=1869\nSCHEMAV_CVC_COMPLEX_TYPE_5_2=1870\nSCHEMAV_ELEMENT_CONTENT=1871\nSCHEMAV_DOCUMENT_ELEMENT_MISSING=1872\nSCHEMAV_CVC_COMPLEX_TYPE_1=1873\nSCHEMAV_CVC_AU=1874\nSCHEMAV_CVC_TYPE_1=1875\nSCHEMAV_CVC_TYPE_2=1876\nSCHEMAV_CVC_IDC=1877\nSCHEMAV_CVC_WILDCARD=1878\nSCHEMAV_MISC=1879\nXPTR_UNKNOWN_SCHEME=1900\nXPTR_CHILDSEQ_START=1901\nXPTR_EVAL_FAILED=1902\nXPTR_EXTRA_OBJECTS=1903\nC14N_CREATE_CTXT=1950\nC14N_REQUIRES_UTF8=1951\nC14N_CREATE_STACK=1952\nC14N_INVALID_NODE=1953\nC14N_UNKNOW_NODE=1954\nC14N_RELATIVE_NAMESPACE=1955\nFTP_PASV_ANSWER=2000\nFTP_EPSV_ANSWER=2001\nFTP_ACCNT=2002\nFTP_URL_SYNTAX=2003\nHTTP_URL_SYNTAX=2020\nHTTP_USE_IP=2021\nHTTP_UNKNOWN_HOST=2022\nSCHEMAP_SRC_SIMPLE_TYPE_1=3000\nSCHEMAP_SRC_SIMPLE_TYPE_2=3001\nSCHEMAP_SRC_SIMPLE_TYPE_3=3002\nSCHE""MAP_SRC_SIMPLE_TYPE_4=3003\n";
+static char __pyx_k_534[] = "SCHEMAP_SRC_RESOLVE=3004\nSCHEMAP_SRC_RESTRICTION_BASE_OR_SIMPLETYPE=3005\nSCHEMAP_SRC_LIST_ITEMTYPE_OR_SIMPLETYPE=3006\nSCHEMAP_SRC_UNION_MEMBERTYPES_OR_SIMPLETYPES=3007\nSCHEMAP_ST_PROPS_CORRECT_1=3008\nSCHEMAP_ST_PROPS_CORRECT_2=3009\nSCHEMAP_ST_PROPS_CORRECT_3=3010\nSCHEMAP_COS_ST_RESTRICTS_1_1=3011\nSCHEMAP_COS_ST_RESTRICTS_1_2=3012\nSCHEMAP_COS_ST_RESTRICTS_1_3_1=3013\nSCHEMAP_COS_ST_RESTRICTS_1_3_2=3014\nSCHEMAP_COS_ST_RESTRICTS_2_1=3015\nSCHEMAP_COS_ST_RESTRICTS_2_3_1_1=3016\nSCHEMAP_COS_ST_RESTRICTS_2_3_1_2=3017\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_1=3018\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_2=3019\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_3=3020\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_4=3021\nSCHEMAP_COS_ST_RESTRICTS_2_3_2_5=3022\nSCHEMAP_COS_ST_RESTRICTS_3_1=3023\nSCHEMAP_COS_ST_RESTRICTS_3_3_1=3024\nSCHEMAP_COS_ST_RESTRICTS_3_3_1_2=3025\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_2=3026\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_1=3027\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_3=3028\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_4=3029\nSCHEMAP_COS_ST_RESTRICTS_3_3_2_5=3030\nSCHEMAP_COS_ST_DERIVED_OK_2_1=3031\nSCHEMAP_COS_ST_DERIVED_OK_2_2=3032\nSCHEMAP_S4S_ELEM_NOT_ALLOWED=3033\nSCHEMAP_S4S_ELEM_MISSING=3034\nSCHEMAP_S4S_ATTR_NOT_ALLOWED=3035\nSCHEMAP_S4S_ATTR_MISSING=3036\nSCHEMAP_S4S_ATTR_INVALID_VALUE=3037\nSCHEMAP_SRC_ELEMENT_1=3038\nSCHEMAP_SRC_ELEMENT_2_1=3039\nSCHEMAP_SRC_ELEMENT_2_2=3040\nSCHEMAP_SRC_ELEMENT_3=3041\nSCHEMAP_P_PROPS_CORRECT_1=3042\nSCHEMAP_P_PROPS_CORRECT_2_1=3043\nSCHEMAP_P_PROPS_CORRECT_2_2=3044\nSCHEMAP_E_PROPS_CORRECT_2=3045\nSCHEMAP_E_PROPS_CORRECT_3=3046\nSCHEMAP_E_PROPS_CORRECT_4=3047\nSCHEMAP_E_PROPS_CORRECT_5=3048\nSCHEMAP_E_PROPS_CORRECT_6=3049\nSCHEMAP_SRC_INCLUDE=3050\nSCHEMAP_SRC_ATTRIBUTE_1=3051\nSCHEMAP_SRC_ATTRIBUTE_2=3052\nSCHEMAP_SRC_ATTRIBUTE_3_1=3053\nSCHEMAP_SRC_ATTRIBUTE_3_2=3054\nSCHEMAP_SRC_ATTRIBUTE_4=3055\nSCHEMAP_NO_XMLNS=3056\nSCHEMAP_NO_XSI=3057\nSCHEMAP_COS_VALID_DEFAULT_1=3058\nSCHEMAP_COS_VALID_DEFAULT_2_1=3059\nSCHEMAP_COS_VALID_DEFAULT_2_2_1=3060\nSCHEMAP_COS_VALID_DEFA""ULT_2_2_2=3061\n";
+static char __pyx_k_535[] = "SCHEMAP_CVC_SIMPLE_TYPE=3062\nSCHEMAP_COS_CT_EXTENDS_1_1=3063\nSCHEMAP_SRC_IMPORT_1_1=3064\nSCHEMAP_SRC_IMPORT_1_2=3065\nSCHEMAP_SRC_IMPORT_2=3066\nSCHEMAP_SRC_IMPORT_2_1=3067\nSCHEMAP_SRC_IMPORT_2_2=3068\nSCHEMAP_INTERNAL=3069\nSCHEMAP_NOT_DETERMINISTIC=3070\nSCHEMAP_SRC_ATTRIBUTE_GROUP_1=3071\nSCHEMAP_SRC_ATTRIBUTE_GROUP_2=3072\nSCHEMAP_SRC_ATTRIBUTE_GROUP_3=3073\nSCHEMAP_MG_PROPS_CORRECT_1=3074\nSCHEMAP_MG_PROPS_CORRECT_2=3075\nSCHEMAP_SRC_CT_1=3076\nSCHEMAP_DERIVATION_OK_RESTRICTION_2_1_3=3077\nSCHEMAP_AU_PROPS_CORRECT_2=3078\nSCHEMAP_A_PROPS_CORRECT_2=3079\nSCHEMAP_C_PROPS_CORRECT=3080\nSCHEMAP_SRC_REDEFINE=3081\nSCHEMAP_SRC_IMPORT=3082\nSCHEMAP_WARN_SKIP_SCHEMA=3083\nSCHEMAP_WARN_UNLOCATED_SCHEMA=3084\nSCHEMAP_WARN_ATTR_REDECL_PROH=3085\nSCHEMAP_WARN_ATTR_POINTLESS_PROH=3086\nSCHEMAP_AG_PROPS_CORRECT=3087\nSCHEMAP_COS_CT_EXTENDS_1_2=3088\nSCHEMAP_AU_PROPS_CORRECT=3089\nSCHEMAP_A_PROPS_CORRECT_3=3090\nSCHEMAP_COS_ALL_LIMITED=3091\nSCHEMATRONV_ASSERT=4000\nSCHEMATRONV_REPORT=4001\nMODULE_OPEN=4900\nMODULE_CLOSE=4901\nCHECK_FOUND_ELEMENT=5000\nCHECK_FOUND_ATTRIBUTE=5001\nCHECK_FOUND_TEXT=5002\nCHECK_FOUND_CDATA=5003\nCHECK_FOUND_ENTITYREF=5004\nCHECK_FOUND_ENTITY=5005\nCHECK_FOUND_PI=5006\nCHECK_FOUND_COMMENT=5007\nCHECK_FOUND_DOCTYPE=5008\nCHECK_FOUND_FRAGMENT=5009\nCHECK_FOUND_NOTATION=5010\nCHECK_UNKNOWN_NODE=5011\nCHECK_ENTITY_TYPE=5012\nCHECK_NO_PARENT=5013\nCHECK_NO_DOC=5014\nCHECK_NO_NAME=5015\nCHECK_NO_ELEM=5016\nCHECK_WRONG_DOC=5017\nCHECK_NO_PREV=5018\nCHECK_WRONG_PREV=5019\nCHECK_NO_NEXT=5020\nCHECK_WRONG_NEXT=5021\nCHECK_NOT_DTD=5022\nCHECK_NOT_ATTR=5023\nCHECK_NOT_ATTR_DECL=5024\nCHECK_NOT_ELEM_DECL=5025\nCHECK_NOT_ENTITY_DECL=5026\nCHECK_NOT_NS_DECL=5027\nCHECK_NO_HREF=5028\nCHECK_WRONG_PARENT=5029\nCHECK_NS_SCOPE=5030\nCHECK_NS_ANCESTOR=5031\nCHECK_NOT_UTF8=5032\nCHECK_NO_DICT=5033\nCHECK_NOT_NCNAME=5034\nCHECK_OUTSIDE_DICT=5035\nCHECK_WRONG_NAME=5036\nCHECK_NAME_NOT_NULL=5037\nI18N_NO_NAME=6000\nI18N_NO_HANDLER=6001\nI18N_EXCESS_HANDLER=6002\nI18N""_CONV_FAILED=6003\n";
+static char __pyx_k_536[] = "I18N_NO_OUTPUT=6004\nBUF_OVERFLOW=7000\n";
+static char __pyx_k_538[] = "RELAXNG_OK=0\nRELAXNG_ERR_MEMORY=1\nRELAXNG_ERR_TYPE=2\nRELAXNG_ERR_TYPEVAL=3\nRELAXNG_ERR_DUPID=4\nRELAXNG_ERR_TYPECMP=5\nRELAXNG_ERR_NOSTATE=6\nRELAXNG_ERR_NODEFINE=7\nRELAXNG_ERR_LISTEXTRA=8\nRELAXNG_ERR_LISTEMPTY=9\nRELAXNG_ERR_INTERNODATA=10\nRELAXNG_ERR_INTERSEQ=11\nRELAXNG_ERR_INTEREXTRA=12\nRELAXNG_ERR_ELEMNAME=13\nRELAXNG_ERR_ATTRNAME=14\nRELAXNG_ERR_ELEMNONS=15\nRELAXNG_ERR_ATTRNONS=16\nRELAXNG_ERR_ELEMWRONGNS=17\nRELAXNG_ERR_ATTRWRONGNS=18\nRELAXNG_ERR_ELEMEXTRANS=19\nRELAXNG_ERR_ATTREXTRANS=20\nRELAXNG_ERR_ELEMNOTEMPTY=21\nRELAXNG_ERR_NOELEM=22\nRELAXNG_ERR_NOTELEM=23\nRELAXNG_ERR_ATTRVALID=24\nRELAXNG_ERR_CONTENTVALID=25\nRELAXNG_ERR_EXTRACONTENT=26\nRELAXNG_ERR_INVALIDATTR=27\nRELAXNG_ERR_DATAELEM=28\nRELAXNG_ERR_VALELEM=29\nRELAXNG_ERR_LISTELEM=30\nRELAXNG_ERR_DATATYPE=31\nRELAXNG_ERR_VALUE=32\nRELAXNG_ERR_LIST=33\nRELAXNG_ERR_NOGRAMMAR=34\nRELAXNG_ERR_EXTRADATA=35\nRELAXNG_ERR_LACKDATA=36\nRELAXNG_ERR_INTERNAL=37\nRELAXNG_ERR_ELEMWRONG=38\nRELAXNG_ERR_TEXTWRONG=39\n";
+static char __pyx_k_540[] = "\\s+(\\w+)\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
+static char __pyx_k_575[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi";
+static char __pyx_k_576[] = "Base class of lxml registry errors.\n    ";
+static char __pyx_k_577[] = "Error registering a namespace extension.\n    ";
+static char __pyx_k_580[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi";
+static char __pyx_k_583[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi";
+static char __pyx_k_584[] = "ParseError.__init__";
+static char __pyx_k_585[] = "Syntax error while parsing an XML document.\n\n    For compatibility with ElementTree 1.3 and later.\n    ";
+static char __pyx_k_586[] = "Syntax error while parsing an XML document.\n    ";
+static char __pyx_k_587[] = "Internal lxml parser error.\n    ";
+static char __pyx_k_593[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi";
+static char __pyx_k_594[] = "_TargetParserResult.__init__";
+static char __pyx_k_595[] = "A libxml2 error that occurred during serialisation.\n    ";
+static char __pyx_k_598[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi";
+static char __pyx_k_603[] = "Error during XInclude processing.\n    ";
+static char __pyx_k_606[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi";
+static char __pyx_k_613[] = "Base class of all XPath errors.\n    ";
+static char __pyx_k_614[] = "Error during XPath evaluation.\n    ";
+static char __pyx_k_615[] = "Internal error looking up an XPath extension function.\n    ";
+static char __pyx_k_616[] = "Error handling an XPath result.\n    ";
+static char __pyx_k_617[] = "Number encoding";
+static char __pyx_k_618[] = "Unfinished literal";
+static char __pyx_k_619[] = "Start of literal";
+static char __pyx_k_620[] = "Expected $ for variable reference";
+static char __pyx_k_621[] = "Undefined variable";
+static char __pyx_k_622[] = "Invalid predicate";
+static char __pyx_k_623[] = "Invalid expression";
+static char __pyx_k_624[] = "Missing closing curly brace";
+static char __pyx_k_625[] = "Unregistered function";
+static char __pyx_k_626[] = "Invalid operand";
+static char __pyx_k_627[] = "Invalid type";
+static char __pyx_k_628[] = "Invalid number of arguments";
+static char __pyx_k_629[] = "Invalid context size";
+static char __pyx_k_630[] = "Invalid context position";
+static char __pyx_k_631[] = "Memory allocation error";
+static char __pyx_k_632[] = "Syntax error";
+static char __pyx_k_633[] = "Resource error";
+static char __pyx_k_634[] = "Sub resource error";
+static char __pyx_k_635[] = "Undefined namespace prefix";
+static char __pyx_k_636[] = "Encoding error";
+static char __pyx_k_637[] = "Char out of XML range";
+static char __pyx_k_638[] = "Invalid or incomplete context";
+static char __pyx_k_639[] = "Stack usage error";
+static char __pyx_k_642[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi";
+static char __pyx_k_645[] = "_ElementStringResult.getparent";
+static char __pyx_k_648[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi";
+static char __pyx_k_649[] = "(\"[^\"]*\")|('[^']*')";
+static char __pyx_k_651[] = "({[^}]+})";
+static char __pyx_k_653[] = "Base class of all XSLT errors.\n    ";
+static char __pyx_k_654[] = "Error parsing a stylesheet document.\n    ";
+static char __pyx_k_655[] = "Error running an XSL transformation.\n    ";
+static char __pyx_k_656[] = "Error serialising an XSLT result.\n    ";
+static char __pyx_k_657[] = "Error registering an XSLT extension.\n    ";
+static char __pyx_k_660[] = "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi";
+static char __pyx_k_663[] = "set_global_max_depth";
+static char __pyx_k_664[] = "\\s+href\\s*=\\s*(?:\\'([^\\']*)\\'|\"([^\"]*)\")";
+static char __pyx_k_666[] = "Validation error.\n\n    Raised by all document validators when their ``assertValid(tree)``\n    method fails.\n    ";
+static char __pyx_k_667[] = "Base class for DTD errors.\n    ";
+static char __pyx_k_668[] = "Error while parsing a DTD.\n    ";
+static char __pyx_k_669[] = "Error while validating an XML document with a DTD.\n    ";
+static char __pyx_k_670[] = "Base class for RelaxNG errors.\n    ";
+static char __pyx_k_671[] = "Error while parsing an XML document as RelaxNG.\n    ";
+static char __pyx_k_672[] = "Error while validating an XML document with a RelaxNG schema.\n    ";
+static char __pyx_k_673[] = "Base class of all XML Schema errors\n    ";
+static char __pyx_k_674[] = "Error while parsing an XML document as XML Schema.\n    ";
+static char __pyx_k_675[] = "Error while validating an XML document with an XML Schema.\n    ";
+static char __pyx_k_676[] = "boolean(//xs:attribute[@default or @fixed][1])";
+static char __pyx_k_678[] = "Base class of all Schematron errors.\n    ";
+static char __pyx_k_679[] = "Error while parsing an XML document as Schematron schema.\n    ";
+static char __pyx_k_680[] = "Error while validating an XML document with a Schematron schema.\n    ";
+static char __pyx_k_681[] = "XML (line 2951)";
+static char __pyx_k_682[] = "XML(text, parser=None, base_url=None)\n\n    Parses an XML document or fragment from a string constant.\n    Returns the root node (or the result returned by a parser target).\n    This function can be used to embed \"XML literals\" in Python code,\n    like in\n\n       >>> root = etree.XML(\"<root><test/></root>\")\n\n    To override the parser with a different ``XMLParser`` you can pass it to\n    the ``parser`` keyword argument.\n\n    The ``base_url`` keyword argument allows to set the original base URL of\n    the document to support relative Paths when looking up external entities\n    (DTD, XInclude, ...).\n    ";
 static char __pyx_k__Ok[] = "Ok";
 static char __pyx_k__PI[] = "PI";
 static char __pyx_k__dc[] = "dc";
@@ -6257,7 +6265,6 @@ static char __pyx_k__rexp[] = "rexp";
 static char __pyx_k__root[] = "root";
 static char __pyx_k__self[] = "self";
 static char __pyx_k__send[] = "send";
-static char __pyx_k__sort[] = "sort";
 static char __pyx_k__stop[] = "stop";
 static char __pyx_k__tags[] = "tags";
 static char __pyx_k__tail[] = "tail";
@@ -6683,219 +6690,216 @@ static char __pyx_k___TargetParserResult[] = "_TargetParserResult";
 static char __pyx_k___append_log_message[] = "_append_log_message";
 static char __pyx_k__build_smart_strings[] = "build_smart_strings";
 static PyObject *__pyx_kp_s_1;
-static PyObject *__pyx_kp_s_101;
-static PyObject *__pyx_kp_u_103;
+static PyObject *__pyx_kp_s_100;
+static PyObject *__pyx_kp_s_102;
 static PyObject *__pyx_kp_s_104;
-static PyObject *__pyx_kp_u_104;
-static PyObject *__pyx_kp_u_105;
-static PyObject *__pyx_kp_b_107;
+static PyObject *__pyx_kp_u_106;
+static PyObject *__pyx_kp_s_107;
 static PyObject *__pyx_kp_u_107;
-static PyObject *__pyx_kp_u_114;
-static PyObject *__pyx_kp_b_115;
-static PyObject *__pyx_kp_s_115;
-static PyObject *__pyx_kp_s_116;
-static PyObject *__pyx_kp_u_123;
-static PyObject *__pyx_kp_u_124;
-static PyObject *__pyx_kp_u_129;
-static PyObject *__pyx_kp_u_130;
-static PyObject *__pyx_kp_u_131;
-static PyObject *__pyx_kp_s_132;
+static PyObject *__pyx_kp_u_108;
+static PyObject *__pyx_kp_b_110;
+static PyObject *__pyx_kp_u_110;
+static PyObject *__pyx_kp_u_117;
+static PyObject *__pyx_kp_b_118;
+static PyObject *__pyx_kp_s_118;
+static PyObject *__pyx_kp_s_119;
+static PyObject *__pyx_kp_u_126;
+static PyObject *__pyx_kp_u_127;
+static PyObject *__pyx_kp_u_132;
+static PyObject *__pyx_kp_u_133;
+static PyObject *__pyx_kp_u_134;
 static PyObject *__pyx_kp_s_135;
-static PyObject *__pyx_kp_u_136;
-static PyObject *__pyx_kp_u_137;
-static PyObject *__pyx_kp_u_138;
+static PyObject *__pyx_kp_s_138;
 static PyObject *__pyx_kp_u_139;
 static PyObject *__pyx_kp_u_140;
-static PyObject *__pyx_kp_s_142;
+static PyObject *__pyx_kp_u_141;
+static PyObject *__pyx_kp_u_142;
 static PyObject *__pyx_kp_u_143;
-static PyObject *__pyx_kp_s_144;
-static PyObject *__pyx_kp_u_145;
+static PyObject *__pyx_kp_s_145;
 static PyObject *__pyx_kp_u_146;
-static PyObject *__pyx_kp_u_147;
+static PyObject *__pyx_kp_s_147;
 static PyObject *__pyx_kp_u_148;
+static PyObject *__pyx_kp_u_149;
 static PyObject *__pyx_kp_u_15;
-static PyObject *__pyx_kp_u_153;
-static PyObject *__pyx_n_s_154;
-static PyObject *__pyx_kp_u_155;
+static PyObject *__pyx_kp_u_150;
+static PyObject *__pyx_kp_u_151;
 static PyObject *__pyx_kp_u_156;
-static PyObject *__pyx_kp_u_157;
+static PyObject *__pyx_n_s_157;
 static PyObject *__pyx_kp_u_158;
 static PyObject *__pyx_kp_u_159;
 static PyObject *__pyx_kp_u_16;
-static PyObject *__pyx_kp_s_160;
+static PyObject *__pyx_kp_u_160;
 static PyObject *__pyx_kp_u_161;
-static PyObject *__pyx_n_u_162;
-static PyObject *__pyx_kp_u_168;
-static PyObject *__pyx_kp_u_169;
+static PyObject *__pyx_kp_u_162;
+static PyObject *__pyx_kp_s_163;
+static PyObject *__pyx_kp_u_164;
+static PyObject *__pyx_n_u_165;
 static PyObject *__pyx_kp_u_17;
-static PyObject *__pyx_kp_u_170;
 static PyObject *__pyx_kp_u_171;
 static PyObject *__pyx_kp_u_172;
 static PyObject *__pyx_kp_u_173;
-static PyObject *__pyx_n_s_174;
-static PyObject *__pyx_n_s_175;
+static PyObject *__pyx_kp_u_174;
+static PyObject *__pyx_kp_u_175;
 static PyObject *__pyx_kp_u_176;
-static PyObject *__pyx_kp_u_177;
-static PyObject *__pyx_kp_u_178;
-static PyObject *__pyx_n_s_179;
+static PyObject *__pyx_n_s_177;
+static PyObject *__pyx_n_s_178;
+static PyObject *__pyx_kp_u_179;
 static PyObject *__pyx_kp_u_18;
 static PyObject *__pyx_kp_u_180;
 static PyObject *__pyx_kp_u_181;
-static PyObject *__pyx_kp_u_182;
+static PyObject *__pyx_n_s_182;
 static PyObject *__pyx_kp_u_183;
+static PyObject *__pyx_kp_u_184;
+static PyObject *__pyx_kp_u_185;
+static PyObject *__pyx_kp_u_186;
 static PyObject *__pyx_kp_u_19;
 static PyObject *__pyx_kp_u_20;
 static PyObject *__pyx_kp_u_21;
-static PyObject *__pyx_kp_u_217;
-static PyObject *__pyx_kp_u_218;
 static PyObject *__pyx_kp_u_22;
 static PyObject *__pyx_kp_u_220;
 static PyObject *__pyx_kp_u_221;
-static PyObject *__pyx_kp_u_222;
 static PyObject *__pyx_kp_u_223;
 static PyObject *__pyx_kp_u_224;
 static PyObject *__pyx_kp_u_225;
 static PyObject *__pyx_kp_u_226;
 static PyObject *__pyx_kp_u_227;
 static PyObject *__pyx_kp_u_228;
+static PyObject *__pyx_kp_u_229;
 static PyObject *__pyx_kp_u_23;
 static PyObject *__pyx_kp_u_230;
 static PyObject *__pyx_kp_u_231;
+static PyObject *__pyx_kp_u_233;
+static PyObject *__pyx_kp_u_234;
 static PyObject *__pyx_kp_u_24;
-static PyObject *__pyx_kp_u_242;
-static PyObject *__pyx_kp_u_246;
-static PyObject *__pyx_kp_u_247;
-static PyObject *__pyx_kp_u_248;
+static PyObject *__pyx_kp_u_245;
+static PyObject *__pyx_kp_u_249;
 static PyObject *__pyx_kp_b_25;
 static PyObject *__pyx_kp_s_25;
 static PyObject *__pyx_kp_u_25;
-static PyObject *__pyx_kp_s_250;
-static PyObject *__pyx_kp_s_252;
-static PyObject *__pyx_kp_b_254;
+static PyObject *__pyx_kp_u_250;
+static PyObject *__pyx_kp_u_251;
+static PyObject *__pyx_kp_s_253;
 static PyObject *__pyx_kp_s_255;
-static PyObject *__pyx_kp_u_258;
-static PyObject *__pyx_kp_s_260;
-static PyObject *__pyx_kp_s_264;
+static PyObject *__pyx_kp_b_257;
+static PyObject *__pyx_kp_s_258;
+static PyObject *__pyx_kp_u_261;
+static PyObject *__pyx_kp_s_263;
+static PyObject *__pyx_kp_s_267;
 static PyObject *__pyx_kp_u_27;
-static PyObject *__pyx_kp_s_270;
-static PyObject *__pyx_kp_s_271;
 static PyObject *__pyx_kp_s_273;
-static PyObject *__pyx_kp_u_275;
-static PyObject *__pyx_kp_u_276;
-static PyObject *__pyx_kp_u_277;
+static PyObject *__pyx_kp_s_274;
+static PyObject *__pyx_kp_s_276;
+static PyObject *__pyx_kp_u_278;
+static PyObject *__pyx_kp_u_279;
 static PyObject *__pyx_kp_u_28;
+static PyObject *__pyx_kp_u_280;
 static PyObject *__pyx_kp_s_29;
-static PyObject *__pyx_kp_u_292;
-static PyObject *__pyx_kp_s_294;
-static PyObject *__pyx_kp_s_30;
-static PyObject *__pyx_kp_u_300;
+static PyObject *__pyx_kp_u_295;
+static PyObject *__pyx_kp_s_297;
 static PyObject *__pyx_kp_u_303;
-static PyObject *__pyx_kp_u_304;
-static PyObject *__pyx_kp_u_305;
-static PyObject *__pyx_kp_s_308;
-static PyObject *__pyx_kp_s_309;
-static PyObject *__pyx_kp_u_310;
-static PyObject *__pyx_kp_u_311;
-static PyObject *__pyx_kp_u_312;
+static PyObject *__pyx_kp_u_306;
+static PyObject *__pyx_kp_u_307;
+static PyObject *__pyx_kp_u_308;
+static PyObject *__pyx_kp_s_311;
+static PyObject *__pyx_kp_s_312;
 static PyObject *__pyx_kp_u_313;
 static PyObject *__pyx_kp_u_314;
 static PyObject *__pyx_kp_u_315;
 static PyObject *__pyx_kp_u_316;
 static PyObject *__pyx_kp_u_317;
+static PyObject *__pyx_kp_u_318;
+static PyObject *__pyx_kp_u_319;
 static PyObject *__pyx_kp_s_32;
-static PyObject *__pyx_kp_b_321;
-static PyObject *__pyx_kp_u_322;
-static PyObject *__pyx_kp_s_323;
-static PyObject *__pyx_kp_u_324;
+static PyObject *__pyx_kp_u_320;
+static PyObject *__pyx_kp_b_324;
 static PyObject *__pyx_kp_u_325;
-static PyObject *__pyx_kp_u_326;
+static PyObject *__pyx_kp_s_326;
 static PyObject *__pyx_kp_u_327;
 static PyObject *__pyx_kp_u_328;
-static PyObject *__pyx_n_s_329;
+static PyObject *__pyx_kp_u_329;
+static PyObject *__pyx_kp_s_33;
 static PyObject *__pyx_kp_u_330;
 static PyObject *__pyx_kp_u_331;
+static PyObject *__pyx_n_s_332;
 static PyObject *__pyx_kp_u_333;
 static PyObject *__pyx_kp_u_334;
-static PyObject *__pyx_kp_s_337;
-static PyObject *__pyx_kp_u_35;
-static PyObject *__pyx_kp_u_350;
-static PyObject *__pyx_kp_u_351;
-static PyObject *__pyx_kp_u_352;
+static PyObject *__pyx_kp_u_336;
+static PyObject *__pyx_kp_u_337;
+static PyObject *__pyx_kp_s_340;
+static PyObject *__pyx_kp_s_35;
 static PyObject *__pyx_kp_u_353;
 static PyObject *__pyx_kp_u_354;
+static PyObject *__pyx_kp_u_355;
 static PyObject *__pyx_kp_u_356;
-static PyObject *__pyx_kp_u_358;
-static PyObject *__pyx_kp_s_359;
-static PyObject *__pyx_kp_u_36;
-static PyObject *__pyx_kp_s_363;
-static PyObject *__pyx_kp_u_364;
-static PyObject *__pyx_kp_u_365;
-static PyObject *__pyx_kp_u_366;
-static PyObject *__pyx_kp_b_368;
+static PyObject *__pyx_kp_u_357;
+static PyObject *__pyx_kp_u_359;
+static PyObject *__pyx_kp_u_361;
+static PyObject *__pyx_kp_s_362;
+static PyObject *__pyx_kp_s_366;
+static PyObject *__pyx_kp_u_367;
 static PyObject *__pyx_kp_u_368;
 static PyObject *__pyx_kp_u_369;
-static PyObject *__pyx_kp_s_37;
-static PyObject *__pyx_kp_u_370;
+static PyObject *__pyx_kp_b_371;
 static PyObject *__pyx_kp_u_371;
 static PyObject *__pyx_kp_u_372;
 static PyObject *__pyx_kp_u_373;
 static PyObject *__pyx_kp_u_374;
 static PyObject *__pyx_kp_u_375;
-static PyObject *__pyx_kp_s_378;
-static PyObject *__pyx_kp_s_38;
-static PyObject *__pyx_kp_u_382;
-static PyObject *__pyx_kp_u_383;
-static PyObject *__pyx_kp_u_388;
-static PyObject *__pyx_kp_u_389;
-static PyObject *__pyx_kp_s_39;
-static PyObject *__pyx_kp_s_390;
-static PyObject *__pyx_kp_s_391;
-static PyObject *__pyx_kp_s_392;
+static PyObject *__pyx_kp_u_376;
+static PyObject *__pyx_kp_u_377;
+static PyObject *__pyx_kp_u_378;
+static PyObject *__pyx_kp_u_38;
+static PyObject *__pyx_kp_s_381;
+static PyObject *__pyx_kp_u_385;
+static PyObject *__pyx_kp_u_386;
+static PyObject *__pyx_kp_u_39;
+static PyObject *__pyx_kp_u_391;
+static PyObject *__pyx_kp_u_392;
 static PyObject *__pyx_kp_s_393;
-static PyObject *__pyx_kp_u_395;
-static PyObject *__pyx_kp_u_397;
+static PyObject *__pyx_kp_s_394;
+static PyObject *__pyx_kp_s_395;
+static PyObject *__pyx_kp_s_396;
 static PyObject *__pyx_kp_u_398;
-static PyObject *__pyx_kp_s_399;
 static PyObject *__pyx_kp_u_4;
 static PyObject *__pyx_kp_s_40;
 static PyObject *__pyx_kp_u_400;
+static PyObject *__pyx_kp_u_401;
+static PyObject *__pyx_kp_s_402;
 static PyObject *__pyx_kp_u_403;
 static PyObject *__pyx_kp_u_406;
-static PyObject *__pyx_kp_u_408;
 static PyObject *__pyx_kp_u_409;
 static PyObject *__pyx_kp_s_41;
-static PyObject *__pyx_kp_u_410;
-static PyObject *__pyx_kp_s_411;
-static PyObject *__pyx_n_s_412;
+static PyObject *__pyx_kp_u_411;
+static PyObject *__pyx_kp_u_412;
 static PyObject *__pyx_kp_u_413;
-static PyObject *__pyx_kp_b_415;
-static PyObject *__pyx_kp_u_415;
+static PyObject *__pyx_kp_s_414;
+static PyObject *__pyx_n_s_415;
 static PyObject *__pyx_kp_u_416;
-static PyObject *__pyx_kp_u_417;
-static PyObject *__pyx_kp_s_418;
-static PyObject *__pyx_n_s_419;
-static PyObject *__pyx_kp_u_42;
+static PyObject *__pyx_kp_b_418;
+static PyObject *__pyx_kp_u_418;
+static PyObject *__pyx_kp_u_419;
+static PyObject *__pyx_kp_s_42;
 static PyObject *__pyx_kp_u_420;
 static PyObject *__pyx_kp_s_421;
-static PyObject *__pyx_kp_u_422;
-static PyObject *__pyx_n_s_424;
-static PyObject *__pyx_kp_u_426;
-static PyObject *__pyx_kp_s_427;
-static PyObject *__pyx_n_s_429;
-static PyObject *__pyx_kp_u_43;
-static PyObject *__pyx_kp_u_430;
-static PyObject *__pyx_kp_b_431;
+static PyObject *__pyx_n_s_422;
+static PyObject *__pyx_kp_u_423;
+static PyObject *__pyx_kp_s_424;
+static PyObject *__pyx_kp_u_425;
+static PyObject *__pyx_n_s_427;
+static PyObject *__pyx_kp_u_429;
+static PyObject *__pyx_kp_s_43;
+static PyObject *__pyx_kp_s_430;
 static PyObject *__pyx_n_s_432;
-static PyObject *__pyx_kp_s_433;
+static PyObject *__pyx_kp_u_433;
 static PyObject *__pyx_kp_b_434;
-static PyObject *__pyx_kp_u_44;
+static PyObject *__pyx_n_s_435;
+static PyObject *__pyx_kp_s_436;
+static PyObject *__pyx_kp_b_437;
+static PyObject *__pyx_kp_s_44;
 static PyObject *__pyx_kp_u_45;
 static PyObject *__pyx_kp_u_46;
 static PyObject *__pyx_kp_u_47;
-static PyObject *__pyx_kp_u_472;
-static PyObject *__pyx_n_s_473;
-static PyObject *__pyx_n_s_474;
-static PyObject *__pyx_n_s_475;
+static PyObject *__pyx_kp_u_475;
 static PyObject *__pyx_n_s_476;
 static PyObject *__pyx_n_s_477;
 static PyObject *__pyx_n_s_478;
@@ -6906,37 +6910,40 @@ static PyObject *__pyx_n_s_481;
 static PyObject *__pyx_n_s_482;
 static PyObject *__pyx_n_s_483;
 static PyObject *__pyx_n_s_484;
-static PyObject *__pyx_kp_b_486;
-static PyObject *__pyx_kp_b_487;
-static PyObject *__pyx_kp_b_488;
+static PyObject *__pyx_n_s_485;
+static PyObject *__pyx_n_s_486;
+static PyObject *__pyx_n_s_487;
 static PyObject *__pyx_kp_b_489;
-static PyObject *__pyx_kp_s_49;
 static PyObject *__pyx_kp_u_49;
 static PyObject *__pyx_kp_b_490;
 static PyObject *__pyx_kp_b_491;
 static PyObject *__pyx_kp_b_492;
 static PyObject *__pyx_kp_b_493;
-static PyObject *__pyx_kp_s_497;
-static PyObject *__pyx_n_s_498;
+static PyObject *__pyx_kp_b_494;
+static PyObject *__pyx_kp_b_495;
+static PyObject *__pyx_kp_b_496;
 static PyObject *__pyx_kp_b_5;
 static PyObject *__pyx_kp_u_5;
-static PyObject *__pyx_n_s_502;
-static PyObject *__pyx_kp_s_503;
-static PyObject *__pyx_kp_s_504;
-static PyObject *__pyx_kp_s_505;
-static PyObject *__pyx_kp_u_506;
-static PyObject *__pyx_kp_u_508;
+static PyObject *__pyx_kp_u_50;
+static PyObject *__pyx_kp_s_500;
+static PyObject *__pyx_n_s_501;
+static PyObject *__pyx_n_s_505;
+static PyObject *__pyx_kp_s_506;
+static PyObject *__pyx_kp_s_507;
+static PyObject *__pyx_kp_s_508;
 static PyObject *__pyx_kp_u_509;
-static PyObject *__pyx_kp_s_511;
-static PyObject *__pyx_kp_s_515;
-static PyObject *__pyx_kp_s_516;
-static PyObject *__pyx_kp_s_517;
+static PyObject *__pyx_kp_u_51;
+static PyObject *__pyx_kp_u_511;
+static PyObject *__pyx_kp_u_512;
+static PyObject *__pyx_kp_s_514;
 static PyObject *__pyx_kp_s_518;
-static PyObject *__pyx_kp_u_519;
-static PyObject *__pyx_kp_u_521;
-static PyObject *__pyx_kp_u_523;
+static PyObject *__pyx_kp_s_519;
+static PyObject *__pyx_kp_s_52;
+static PyObject *__pyx_kp_u_52;
+static PyObject *__pyx_kp_s_520;
+static PyObject *__pyx_kp_s_521;
+static PyObject *__pyx_kp_u_522;
 static PyObject *__pyx_kp_u_524;
-static PyObject *__pyx_kp_u_525;
 static PyObject *__pyx_kp_u_526;
 static PyObject *__pyx_kp_u_527;
 static PyObject *__pyx_kp_u_528;
@@ -6945,38 +6952,35 @@ static PyObject *__pyx_kp_u_530;
 static PyObject *__pyx_kp_u_531;
 static PyObject *__pyx_kp_u_532;
 static PyObject *__pyx_kp_u_533;
+static PyObject *__pyx_kp_u_534;
 static PyObject *__pyx_kp_u_535;
-static PyObject *__pyx_kp_u_537;
-static PyObject *__pyx_kp_u_57;
-static PyObject *__pyx_kp_s_572;
-static PyObject *__pyx_kp_s_573;
-static PyObject *__pyx_kp_s_574;
+static PyObject *__pyx_kp_u_536;
+static PyObject *__pyx_kp_u_538;
+static PyObject *__pyx_kp_u_540;
+static PyObject *__pyx_kp_s_575;
+static PyObject *__pyx_kp_s_576;
 static PyObject *__pyx_kp_s_577;
 static PyObject *__pyx_kp_s_580;
-static PyObject *__pyx_n_s_581;
-static PyObject *__pyx_kp_s_582;
 static PyObject *__pyx_kp_s_583;
-static PyObject *__pyx_kp_s_584;
-static PyObject *__pyx_kp_s_59;
-static PyObject *__pyx_kp_s_590;
-static PyObject *__pyx_n_s_591;
-static PyObject *__pyx_kp_s_592;
+static PyObject *__pyx_n_s_584;
+static PyObject *__pyx_kp_s_585;
+static PyObject *__pyx_kp_s_586;
+static PyObject *__pyx_kp_s_587;
+static PyObject *__pyx_kp_s_593;
+static PyObject *__pyx_n_s_594;
 static PyObject *__pyx_kp_s_595;
+static PyObject *__pyx_kp_s_598;
 static PyObject *__pyx_kp_u_60;
-static PyObject *__pyx_kp_s_600;
 static PyObject *__pyx_kp_s_603;
-static PyObject *__pyx_kp_u_61;
-static PyObject *__pyx_kp_s_610;
-static PyObject *__pyx_kp_s_611;
-static PyObject *__pyx_kp_s_612;
+static PyObject *__pyx_kp_s_606;
 static PyObject *__pyx_kp_s_613;
-static PyObject *__pyx_kp_b_614;
-static PyObject *__pyx_kp_b_615;
-static PyObject *__pyx_kp_b_616;
+static PyObject *__pyx_kp_s_614;
+static PyObject *__pyx_kp_s_615;
+static PyObject *__pyx_kp_s_616;
 static PyObject *__pyx_kp_b_617;
 static PyObject *__pyx_kp_b_618;
 static PyObject *__pyx_kp_b_619;
-static PyObject *__pyx_kp_u_62;
+static PyObject *__pyx_kp_s_62;
 static PyObject *__pyx_kp_b_620;
 static PyObject *__pyx_kp_b_621;
 static PyObject *__pyx_kp_b_622;
@@ -6995,25 +6999,25 @@ static PyObject *__pyx_kp_b_633;
 static PyObject *__pyx_kp_b_634;
 static PyObject *__pyx_kp_b_635;
 static PyObject *__pyx_kp_b_636;
-static PyObject *__pyx_kp_s_639;
+static PyObject *__pyx_kp_b_637;
+static PyObject *__pyx_kp_b_638;
+static PyObject *__pyx_kp_b_639;
 static PyObject *__pyx_kp_u_64;
-static PyObject *__pyx_n_s_642;
-static PyObject *__pyx_kp_s_645;
-static PyObject *__pyx_kp_b_646;
-static PyObject *__pyx_kp_b_648;
+static PyObject *__pyx_kp_s_642;
+static PyObject *__pyx_n_s_645;
+static PyObject *__pyx_kp_s_648;
+static PyObject *__pyx_kp_b_649;
 static PyObject *__pyx_kp_u_65;
-static PyObject *__pyx_kp_s_650;
-static PyObject *__pyx_kp_s_651;
-static PyObject *__pyx_kp_s_652;
+static PyObject *__pyx_kp_b_651;
 static PyObject *__pyx_kp_s_653;
 static PyObject *__pyx_kp_s_654;
+static PyObject *__pyx_kp_s_655;
+static PyObject *__pyx_kp_s_656;
 static PyObject *__pyx_kp_s_657;
 static PyObject *__pyx_kp_u_66;
-static PyObject *__pyx_n_s_660;
-static PyObject *__pyx_kp_u_661;
-static PyObject *__pyx_kp_s_663;
-static PyObject *__pyx_kp_s_664;
-static PyObject *__pyx_kp_s_665;
+static PyObject *__pyx_kp_s_660;
+static PyObject *__pyx_n_s_663;
+static PyObject *__pyx_kp_u_664;
 static PyObject *__pyx_kp_s_666;
 static PyObject *__pyx_kp_s_667;
 static PyObject *__pyx_kp_s_668;
@@ -7022,35 +7026,39 @@ static PyObject *__pyx_kp_u_67;
 static PyObject *__pyx_kp_s_670;
 static PyObject *__pyx_kp_s_671;
 static PyObject *__pyx_kp_s_672;
-static PyObject *__pyx_kp_u_673;
+static PyObject *__pyx_kp_s_673;
+static PyObject *__pyx_kp_s_674;
 static PyObject *__pyx_kp_s_675;
-static PyObject *__pyx_kp_s_676;
-static PyObject *__pyx_kp_s_677;
-static PyObject *__pyx_kp_u_678;
-static PyObject *__pyx_kp_u_679;
+static PyObject *__pyx_kp_u_676;
+static PyObject *__pyx_kp_s_678;
+static PyObject *__pyx_kp_s_679;
 static PyObject *__pyx_kp_u_68;
+static PyObject *__pyx_kp_s_680;
+static PyObject *__pyx_kp_u_681;
+static PyObject *__pyx_kp_u_682;
 static PyObject *__pyx_kp_u_69;
 static PyObject *__pyx_kp_u_70;
 static PyObject *__pyx_kp_u_71;
 static PyObject *__pyx_kp_u_72;
 static PyObject *__pyx_kp_u_73;
 static PyObject *__pyx_kp_u_74;
-static PyObject *__pyx_kp_u_79;
-static PyObject *__pyx_kp_u_80;
-static PyObject *__pyx_n_s_81;
+static PyObject *__pyx_kp_u_75;
+static PyObject *__pyx_kp_u_76;
+static PyObject *__pyx_kp_u_77;
 static PyObject *__pyx_kp_u_82;
 static PyObject *__pyx_kp_u_83;
-static PyObject *__pyx_kp_u_84;
+static PyObject *__pyx_n_s_84;
 static PyObject *__pyx_kp_u_85;
 static PyObject *__pyx_kp_u_86;
 static PyObject *__pyx_kp_u_87;
-static PyObject *__pyx_n_s_88;
+static PyObject *__pyx_kp_u_88;
 static PyObject *__pyx_kp_u_89;
 static PyObject *__pyx_kp_u_90;
-static PyObject *__pyx_kp_u_91;
-static PyObject *__pyx_n_s_92;
-static PyObject *__pyx_kp_s_97;
-static PyObject *__pyx_kp_s_99;
+static PyObject *__pyx_n_s_91;
+static PyObject *__pyx_kp_u_92;
+static PyObject *__pyx_kp_u_93;
+static PyObject *__pyx_kp_u_94;
+static PyObject *__pyx_n_s_95;
 static PyObject *__pyx_n_b__A;
 static PyObject *__pyx_n_b__ASCII;
 static PyObject *__pyx_n_u__ASCII;
@@ -7500,7 +7508,6 @@ static PyObject *__pyx_n_s__send;
 static PyObject *__pyx_n_s__seq;
 static PyObject *__pyx_n_s__set_default_parser;
 static PyObject *__pyx_n_s__smart_strings;
-static PyObject *__pyx_n_s__sort;
 static PyObject *__pyx_n_s__sorted;
 static PyObject *__pyx_n_s__source;
 static PyObject *__pyx_n_s__split;
@@ -7601,26 +7608,23 @@ static PyObject *__pyx_int_neg_100;
 static PyObject *__pyx_int_neg_200;
 static PyObject *__pyx_int_neg_300;
 static PyObject *__pyx_int_32768;
-static PyObject *__pyx_k_75;
-static PyObject *__pyx_k_76;
-static PyObject *__pyx_k_77;
 static PyObject *__pyx_k_78;
-static PyObject *__pyx_k_93;
-static PyObject *__pyx_k_94;
-static PyObject *__pyx_k_95;
+static PyObject *__pyx_k_79;
+static PyObject *__pyx_k_80;
+static PyObject *__pyx_k_81;
 static PyObject *__pyx_k_96;
-static PyObject *__pyx_k_111;
-static PyObject *__pyx_k_112;
-static PyObject *__pyx_k_113;
-static PyObject *__pyx_k_117;
-static PyObject *__pyx_k_118;
-static PyObject *__pyx_k_119;
+static PyObject *__pyx_k_97;
+static PyObject *__pyx_k_98;
+static PyObject *__pyx_k_99;
+static PyObject *__pyx_k_114;
+static PyObject *__pyx_k_115;
+static PyObject *__pyx_k_116;
 static PyObject *__pyx_k_120;
-static PyObject *__pyx_k_125;
-static PyObject *__pyx_k_133;
-static PyObject *__pyx_k_184;
-static PyObject *__pyx_k_185;
-static PyObject *__pyx_k_186;
+static PyObject *__pyx_k_121;
+static PyObject *__pyx_k_122;
+static PyObject *__pyx_k_123;
+static PyObject *__pyx_k_128;
+static PyObject *__pyx_k_136;
 static PyObject *__pyx_k_187;
 static PyObject *__pyx_k_188;
 static PyObject *__pyx_k_189;
@@ -7651,9 +7655,9 @@ static PyObject *__pyx_k_213;
 static PyObject *__pyx_k_214;
 static PyObject *__pyx_k_215;
 static PyObject *__pyx_k_216;
-static PyObject *__pyx_k_280;
-static PyObject *__pyx_k_281;
-static PyObject *__pyx_k_282;
+static PyObject *__pyx_k_217;
+static PyObject *__pyx_k_218;
+static PyObject *__pyx_k_219;
 static PyObject *__pyx_k_283;
 static PyObject *__pyx_k_284;
 static PyObject *__pyx_k_285;
@@ -7663,24 +7667,27 @@ static PyObject *__pyx_k_288;
 static PyObject *__pyx_k_289;
 static PyObject *__pyx_k_290;
 static PyObject *__pyx_k_291;
-static PyObject *__pyx_k_335;
-static PyObject *__pyx_k_336;
+static PyObject *__pyx_k_292;
+static PyObject *__pyx_k_293;
+static PyObject *__pyx_k_294;
 static PyObject *__pyx_k_338;
 static PyObject *__pyx_k_339;
-static PyObject *__pyx_k_340;
 static PyObject *__pyx_k_341;
 static PyObject *__pyx_k_342;
 static PyObject *__pyx_k_343;
 static PyObject *__pyx_k_344;
 static PyObject *__pyx_k_345;
-static PyObject *__pyx_k_355;
-static PyObject *__pyx_k_361;
-static PyObject *__pyx_k_362;
-static PyObject *__pyx_k_376;
-static PyObject *__pyx_k_377;
+static PyObject *__pyx_k_346;
+static PyObject *__pyx_k_347;
+static PyObject *__pyx_k_348;
+static PyObject *__pyx_k_358;
+static PyObject *__pyx_k_364;
+static PyObject *__pyx_k_365;
+static PyObject *__pyx_k_379;
 static PyObject *__pyx_k_380;
-static PyObject *__pyx_k_381;
-static PyObject *__pyx_k_414;
+static PyObject *__pyx_k_383;
+static PyObject *__pyx_k_384;
+static PyObject *__pyx_k_417;
 static PyObject *__pyx_k_slice_8;
 static PyObject *__pyx_k_tuple_2;
 static PyObject *__pyx_k_tuple_3;
@@ -7692,159 +7699,161 @@ static PyObject *__pyx_k_slice_12;
 static PyObject *__pyx_k_slice_14;
 static PyObject *__pyx_k_tuple_11;
 static PyObject *__pyx_k_tuple_13;
+static PyObject *__pyx_k_tuple_30;
 static PyObject *__pyx_k_tuple_31;
-static PyObject *__pyx_k_tuple_33;
 static PyObject *__pyx_k_tuple_34;
-static PyObject *__pyx_k_tuple_50;
-static PyObject *__pyx_k_tuple_58;
-static PyObject *__pyx_k_tuple_98;
-static PyObject *__pyx_k_slice_106;
-static PyObject *__pyx_k_slice_108;
+static PyObject *__pyx_k_tuple_36;
+static PyObject *__pyx_k_tuple_37;
+static PyObject *__pyx_k_tuple_53;
+static PyObject *__pyx_k_tuple_61;
 static PyObject *__pyx_k_slice_109;
-static PyObject *__pyx_k_slice_110;
-static PyObject *__pyx_k_slice_134;
-static PyObject *__pyx_k_slice_152;
-static PyObject *__pyx_k_slice_262;
-static PyObject *__pyx_k_slice_263;
+static PyObject *__pyx_k_slice_111;
+static PyObject *__pyx_k_slice_112;
+static PyObject *__pyx_k_slice_113;
+static PyObject *__pyx_k_slice_137;
+static PyObject *__pyx_k_slice_155;
+static PyObject *__pyx_k_slice_265;
 static PyObject *__pyx_k_slice_266;
-static PyObject *__pyx_k_slice_306;
-static PyObject *__pyx_k_slice_307;
-static PyObject *__pyx_k_slice_347;
-static PyObject *__pyx_k_tuple_100;
-static PyObject *__pyx_k_tuple_102;
-static PyObject *__pyx_k_tuple_121;
-static PyObject *__pyx_k_tuple_122;
-static PyObject *__pyx_k_tuple_126;
-static PyObject *__pyx_k_tuple_127;
-static PyObject *__pyx_k_tuple_128;
-static PyObject *__pyx_k_tuple_141;
-static PyObject *__pyx_k_tuple_219;
-static PyObject *__pyx_k_tuple_229;
-static PyObject *__pyx_k_tuple_249;
-static PyObject *__pyx_k_tuple_251;
-static PyObject *__pyx_k_tuple_253;
+static PyObject *__pyx_k_slice_269;
+static PyObject *__pyx_k_slice_309;
+static PyObject *__pyx_k_slice_310;
+static PyObject *__pyx_k_slice_350;
+static PyObject *__pyx_k_tuple_101;
+static PyObject *__pyx_k_tuple_103;
+static PyObject *__pyx_k_tuple_105;
+static PyObject *__pyx_k_tuple_124;
+static PyObject *__pyx_k_tuple_125;
+static PyObject *__pyx_k_tuple_129;
+static PyObject *__pyx_k_tuple_130;
+static PyObject *__pyx_k_tuple_131;
+static PyObject *__pyx_k_tuple_144;
+static PyObject *__pyx_k_tuple_222;
+static PyObject *__pyx_k_tuple_232;
+static PyObject *__pyx_k_tuple_252;
+static PyObject *__pyx_k_tuple_254;
 static PyObject *__pyx_k_tuple_256;
-static PyObject *__pyx_k_tuple_261;
-static PyObject *__pyx_k_tuple_265;
+static PyObject *__pyx_k_tuple_259;
+static PyObject *__pyx_k_tuple_264;
 static PyObject *__pyx_k_tuple_268;
-static PyObject *__pyx_k_tuple_269;
+static PyObject *__pyx_k_tuple_271;
 static PyObject *__pyx_k_tuple_272;
-static PyObject *__pyx_k_tuple_274;
-static PyObject *__pyx_k_tuple_278;
-static PyObject *__pyx_k_tuple_279;
-static PyObject *__pyx_k_tuple_293;
-static PyObject *__pyx_k_tuple_295;
+static PyObject *__pyx_k_tuple_275;
+static PyObject *__pyx_k_tuple_277;
+static PyObject *__pyx_k_tuple_281;
+static PyObject *__pyx_k_tuple_282;
 static PyObject *__pyx_k_tuple_296;
-static PyObject *__pyx_k_tuple_297;
 static PyObject *__pyx_k_tuple_298;
 static PyObject *__pyx_k_tuple_299;
+static PyObject *__pyx_k_tuple_300;
 static PyObject *__pyx_k_tuple_301;
 static PyObject *__pyx_k_tuple_302;
-static PyObject *__pyx_k_tuple_318;
-static PyObject *__pyx_k_tuple_319;
-static PyObject *__pyx_k_tuple_320;
-static PyObject *__pyx_k_tuple_332;
-static PyObject *__pyx_k_tuple_348;
-static PyObject *__pyx_k_tuple_357;
+static PyObject *__pyx_k_tuple_304;
+static PyObject *__pyx_k_tuple_305;
+static PyObject *__pyx_k_tuple_321;
+static PyObject *__pyx_k_tuple_322;
+static PyObject *__pyx_k_tuple_323;
+static PyObject *__pyx_k_tuple_335;
+static PyObject *__pyx_k_tuple_351;
 static PyObject *__pyx_k_tuple_360;
-static PyObject *__pyx_k_tuple_367;
-static PyObject *__pyx_k_tuple_384;
-static PyObject *__pyx_k_tuple_394;
-static PyObject *__pyx_k_tuple_396;
-static PyObject *__pyx_k_tuple_401;
-static PyObject *__pyx_k_tuple_402;
+static PyObject *__pyx_k_tuple_363;
+static PyObject *__pyx_k_tuple_370;
+static PyObject *__pyx_k_tuple_387;
+static PyObject *__pyx_k_tuple_397;
+static PyObject *__pyx_k_tuple_399;
 static PyObject *__pyx_k_tuple_404;
+static PyObject *__pyx_k_tuple_405;
 static PyObject *__pyx_k_tuple_407;
-static PyObject *__pyx_k_tuple_423;
-static PyObject *__pyx_k_tuple_425;
+static PyObject *__pyx_k_tuple_410;
+static PyObject *__pyx_k_tuple_426;
 static PyObject *__pyx_k_tuple_428;
-static PyObject *__pyx_k_tuple_485;
-static PyObject *__pyx_k_tuple_494;
-static PyObject *__pyx_k_tuple_495;
-static PyObject *__pyx_k_tuple_499;
-static PyObject *__pyx_k_tuple_501;
-static PyObject *__pyx_k_tuple_507;
-static PyObject *__pyx_k_tuple_512;
-static PyObject *__pyx_k_tuple_513;
-static PyObject *__pyx_k_tuple_520;
-static PyObject *__pyx_k_tuple_522;
-static PyObject *__pyx_k_tuple_534;
-static PyObject *__pyx_k_tuple_536;
-static PyObject *__pyx_k_tuple_538;
-static PyObject *__pyx_k_tuple_540;
-static PyObject *__pyx_k_tuple_542;
-static PyObject *__pyx_k_tuple_544;
-static PyObject *__pyx_k_tuple_546;
-static PyObject *__pyx_k_tuple_548;
-static PyObject *__pyx_k_tuple_550;
-static PyObject *__pyx_k_tuple_552;
-static PyObject *__pyx_k_tuple_554;
-static PyObject *__pyx_k_tuple_556;
-static PyObject *__pyx_k_tuple_558;
-static PyObject *__pyx_k_tuple_560;
-static PyObject *__pyx_k_tuple_562;
-static PyObject *__pyx_k_tuple_564;
-static PyObject *__pyx_k_tuple_566;
-static PyObject *__pyx_k_tuple_568;
-static PyObject *__pyx_k_tuple_570;
-static PyObject *__pyx_k_tuple_575;
+static PyObject *__pyx_k_tuple_431;
+static PyObject *__pyx_k_tuple_488;
+static PyObject *__pyx_k_tuple_497;
+static PyObject *__pyx_k_tuple_498;
+static PyObject *__pyx_k_tuple_502;
+static PyObject *__pyx_k_tuple_504;
+static PyObject *__pyx_k_tuple_510;
+static PyObject *__pyx_k_tuple_515;
+static PyObject *__pyx_k_tuple_516;
+static PyObject *__pyx_k_tuple_523;
+static PyObject *__pyx_k_tuple_525;
+static PyObject *__pyx_k_tuple_537;
+static PyObject *__pyx_k_tuple_539;
+static PyObject *__pyx_k_tuple_541;
+static PyObject *__pyx_k_tuple_543;
+static PyObject *__pyx_k_tuple_545;
+static PyObject *__pyx_k_tuple_547;
+static PyObject *__pyx_k_tuple_549;
+static PyObject *__pyx_k_tuple_551;
+static PyObject *__pyx_k_tuple_553;
+static PyObject *__pyx_k_tuple_555;
+static PyObject *__pyx_k_tuple_557;
+static PyObject *__pyx_k_tuple_559;
+static PyObject *__pyx_k_tuple_561;
+static PyObject *__pyx_k_tuple_563;
+static PyObject *__pyx_k_tuple_565;
+static PyObject *__pyx_k_tuple_567;
+static PyObject *__pyx_k_tuple_569;
+static PyObject *__pyx_k_tuple_571;
+static PyObject *__pyx_k_tuple_573;
 static PyObject *__pyx_k_tuple_578;
-static PyObject *__pyx_k_tuple_585;
+static PyObject *__pyx_k_tuple_581;
 static PyObject *__pyx_k_tuple_588;
-static PyObject *__pyx_k_tuple_593;
+static PyObject *__pyx_k_tuple_591;
 static PyObject *__pyx_k_tuple_596;
-static PyObject *__pyx_k_tuple_598;
+static PyObject *__pyx_k_tuple_599;
 static PyObject *__pyx_k_tuple_601;
 static PyObject *__pyx_k_tuple_604;
-static PyObject *__pyx_k_tuple_606;
-static PyObject *__pyx_k_tuple_608;
-static PyObject *__pyx_k_tuple_637;
+static PyObject *__pyx_k_tuple_607;
+static PyObject *__pyx_k_tuple_609;
+static PyObject *__pyx_k_tuple_611;
 static PyObject *__pyx_k_tuple_640;
 static PyObject *__pyx_k_tuple_643;
-static PyObject *__pyx_k_tuple_647;
-static PyObject *__pyx_k_tuple_649;
-static PyObject *__pyx_k_tuple_655;
+static PyObject *__pyx_k_tuple_646;
+static PyObject *__pyx_k_tuple_650;
+static PyObject *__pyx_k_tuple_652;
 static PyObject *__pyx_k_tuple_658;
-static PyObject *__pyx_k_tuple_662;
-static PyObject *__pyx_k_tuple_674;
-static PyObject *__pyx_k_codeobj_496;
-static PyObject *__pyx_k_codeobj_500;
-static PyObject *__pyx_k_codeobj_510;
-static PyObject *__pyx_k_codeobj_514;
-static PyObject *__pyx_k_codeobj_539;
-static PyObject *__pyx_k_codeobj_541;
-static PyObject *__pyx_k_codeobj_543;
-static PyObject *__pyx_k_codeobj_545;
-static PyObject *__pyx_k_codeobj_547;
-static PyObject *__pyx_k_codeobj_549;
-static PyObject *__pyx_k_codeobj_551;
-static PyObject *__pyx_k_codeobj_553;
-static PyObject *__pyx_k_codeobj_555;
-static PyObject *__pyx_k_codeobj_557;
-static PyObject *__pyx_k_codeobj_559;
-static PyObject *__pyx_k_codeobj_561;
-static PyObject *__pyx_k_codeobj_563;
-static PyObject *__pyx_k_codeobj_565;
-static PyObject *__pyx_k_codeobj_567;
-static PyObject *__pyx_k_codeobj_569;
-static PyObject *__pyx_k_codeobj_571;
-static PyObject *__pyx_k_codeobj_576;
+static PyObject *__pyx_k_tuple_661;
+static PyObject *__pyx_k_tuple_665;
+static PyObject *__pyx_k_tuple_677;
+static PyObject *__pyx_k_codeobj_499;
+static PyObject *__pyx_k_codeobj_503;
+static PyObject *__pyx_k_codeobj_513;
+static PyObject *__pyx_k_codeobj_517;
+static PyObject *__pyx_k_codeobj_542;
+static PyObject *__pyx_k_codeobj_544;
+static PyObject *__pyx_k_codeobj_546;
+static PyObject *__pyx_k_codeobj_548;
+static PyObject *__pyx_k_codeobj_550;
+static PyObject *__pyx_k_codeobj_552;
+static PyObject *__pyx_k_codeobj_554;
+static PyObject *__pyx_k_codeobj_556;
+static PyObject *__pyx_k_codeobj_558;
+static PyObject *__pyx_k_codeobj_560;
+static PyObject *__pyx_k_codeobj_562;
+static PyObject *__pyx_k_codeobj_564;
+static PyObject *__pyx_k_codeobj_566;
+static PyObject *__pyx_k_codeobj_568;
+static PyObject *__pyx_k_codeobj_570;
+static PyObject *__pyx_k_codeobj_572;
+static PyObject *__pyx_k_codeobj_574;
 static PyObject *__pyx_k_codeobj_579;
-static PyObject *__pyx_k_codeobj_586;
-static PyObject *__pyx_k_codeobj_587;
+static PyObject *__pyx_k_codeobj_582;
 static PyObject *__pyx_k_codeobj_589;
-static PyObject *__pyx_k_codeobj_594;
+static PyObject *__pyx_k_codeobj_590;
+static PyObject *__pyx_k_codeobj_592;
 static PyObject *__pyx_k_codeobj_597;
-static PyObject *__pyx_k_codeobj_599;
+static PyObject *__pyx_k_codeobj_600;
 static PyObject *__pyx_k_codeobj_602;
 static PyObject *__pyx_k_codeobj_605;
-static PyObject *__pyx_k_codeobj_607;
-static PyObject *__pyx_k_codeobj_609;
-static PyObject *__pyx_k_codeobj_638;
+static PyObject *__pyx_k_codeobj_608;
+static PyObject *__pyx_k_codeobj_610;
+static PyObject *__pyx_k_codeobj_612;
 static PyObject *__pyx_k_codeobj_641;
 static PyObject *__pyx_k_codeobj_644;
-static PyObject *__pyx_k_codeobj_656;
+static PyObject *__pyx_k_codeobj_647;
 static PyObject *__pyx_k_codeobj_659;
+static PyObject *__pyx_k_codeobj_662;
 
 /* Python wrapper */
 static PyObject *__pyx_pw_4lxml_5etree_1register_namespace(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
@@ -7879,11 +7888,11 @@ static PyObject *__pyx_pw_4lxml_5etree_1register_namespace(PyObject *__pyx_self,
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__uri)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("register_namespace", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("register_namespace", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register_namespace") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register_namespace") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -7896,7 +7905,7 @@ static PyObject *__pyx_pw_4lxml_5etree_1register_namespace(PyObject *__pyx_self,
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("register_namespace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("register_namespace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.register_namespace", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -7907,7 +7916,7 @@ static PyObject *__pyx_pw_4lxml_5etree_1register_namespace(PyObject *__pyx_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":155
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":152
  * cdef object _check_internal_prefix = re.compile(b"ns\d+$").match
  * 
  * def register_namespace(prefix, uri):             # <<<<<<<<<<<<<<
@@ -7938,76 +7947,76 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("register_namespace", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":161
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":158
  *     removed.
  *     """
  *     prefix_utf, uri_utf = _utf8(prefix), _utf8(uri)             # <<<<<<<<<<<<<<
  *     if _check_internal_prefix(prefix_utf):
  *         raise ValueError("Prefix format reserved for internal use")
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_uri)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_uri)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_v_prefix_utf = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_v_uri_utf = ((PyObject*)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":162
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":159
  *     """
  *     prefix_utf, uri_utf = _utf8(prefix), _utf8(uri)
  *     if _check_internal_prefix(prefix_utf):             # <<<<<<<<<<<<<<
  *         raise ValueError("Prefix format reserved for internal use")
  *     _tagValidOrRaise(prefix_utf)
  */
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject *)__pyx_v_prefix_utf));
   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_prefix_utf));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_prefix_utf));
-  __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_5etree__check_internal_prefix, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_5etree__check_internal_prefix, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":163
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":160
  *     prefix_utf, uri_utf = _utf8(prefix), _utf8(uri)
  *     if _check_internal_prefix(prefix_utf):
  *         raise ValueError("Prefix format reserved for internal use")             # <<<<<<<<<<<<<<
  *     _tagValidOrRaise(prefix_utf)
  *     _uriValidOrRaise(uri_utf)
  */
-    __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":164
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":161
  *     if _check_internal_prefix(prefix_utf):
  *         raise ValueError("Prefix format reserved for internal use")
  *     _tagValidOrRaise(prefix_utf)             # <<<<<<<<<<<<<<
  *     _uriValidOrRaise(uri_utf)
  *     for k, v in list(_DEFAULT_NAMESPACE_PREFIXES.items()):
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__tagValidOrRaise(((PyObject *)__pyx_v_prefix_utf)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__tagValidOrRaise(((PyObject *)__pyx_v_prefix_utf)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":165
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":162
  *         raise ValueError("Prefix format reserved for internal use")
  *     _tagValidOrRaise(prefix_utf)
  *     _uriValidOrRaise(uri_utf)             # <<<<<<<<<<<<<<
  *     for k, v in list(_DEFAULT_NAMESPACE_PREFIXES.items()):
  *         if k == uri_utf or v == prefix_utf:
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__uriValidOrRaise(((PyObject *)__pyx_v_uri_utf)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__uriValidOrRaise(((PyObject *)__pyx_v_uri_utf)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":166
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":163
  *     _tagValidOrRaise(prefix_utf)
  *     _uriValidOrRaise(uri_utf)
  *     for k, v in list(_DEFAULT_NAMESPACE_PREFIXES.items()):             # <<<<<<<<<<<<<<
@@ -8016,16 +8025,16 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;
@@ -8033,9 +8042,9 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
   for (;;) {
     if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
       PyObject* sequence = __pyx_t_1;
@@ -8047,7 +8056,7 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -8060,16 +8069,16 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
       __Pyx_INCREF(__pyx_t_6);
       __Pyx_INCREF(__pyx_t_7);
       #else
-      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       #endif
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
@@ -8077,7 +8086,7 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
       __Pyx_GOTREF(__pyx_t_6);
       index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_7);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_9 = NULL;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L7_unpacking_done;
@@ -8085,29 +8094,27 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_k);
-    __pyx_v_k = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_6);
     __pyx_t_6 = 0;
-    __Pyx_XDECREF(__pyx_v_v);
-    __pyx_v_v = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_v, __pyx_t_7);
     __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":167
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":164
  *     _uriValidOrRaise(uri_utf)
  *     for k, v in list(_DEFAULT_NAMESPACE_PREFIXES.items()):
  *         if k == uri_utf or v == prefix_utf:             # <<<<<<<<<<<<<<
  *             del _DEFAULT_NAMESPACE_PREFIXES[k]
  *     _DEFAULT_NAMESPACE_PREFIXES[uri_utf] = prefix_utf
  */
-    __pyx_t_1 = PyObject_RichCompare(__pyx_v_k, ((PyObject *)__pyx_v_uri_utf), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_RichCompare(__pyx_v_k, ((PyObject *)__pyx_v_uri_utf), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     if (!__pyx_t_3) {
-      __pyx_t_1 = PyObject_RichCompare(__pyx_v_v, ((PyObject *)__pyx_v_prefix_utf), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_v_v, ((PyObject *)__pyx_v_prefix_utf), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_11 = __pyx_t_10;
     } else {
@@ -8115,7 +8122,7 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
     }
     if (__pyx_t_11) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":168
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":165
  *     for k, v in list(_DEFAULT_NAMESPACE_PREFIXES.items()):
  *         if k == uri_utf or v == prefix_utf:
  *             del _DEFAULT_NAMESPACE_PREFIXES[k]             # <<<<<<<<<<<<<<
@@ -8124,17 +8131,17 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
  */
       if (unlikely(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES) == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      if (unlikely(!__pyx_v_k)) { __Pyx_RaiseUnboundLocalError("k"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
-      if (PyDict_DelItem(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES), __pyx_v_k) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (unlikely(!__pyx_v_k)) { __Pyx_RaiseUnboundLocalError("k"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
+      if (PyDict_DelItem(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES), __pyx_v_k) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L8;
     }
     __pyx_L8:;
   }
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":169
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":166
  *         if k == uri_utf or v == prefix_utf:
  *             del _DEFAULT_NAMESPACE_PREFIXES[k]
  *     _DEFAULT_NAMESPACE_PREFIXES[uri_utf] = prefix_utf             # <<<<<<<<<<<<<<
@@ -8143,9 +8150,9 @@ static PyObject *__pyx_pf_4lxml_5etree_register_namespace(CYTHON_UNUSED PyObject
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  if (PyDict_SetItem(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES), ((PyObject *)__pyx_v_uri_utf), ((PyObject *)__pyx_v_prefix_utf)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES), ((PyObject *)__pyx_v_uri_utf), ((PyObject *)__pyx_v_prefix_utf)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -8184,7 +8191,7 @@ static PyObject *__pyx_pw_4lxml_5etree_9LxmlError_1__init__(PyObject *__pyx_self
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__self,&__pyx_n_s__message,&__pyx_n_s__error_log,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":181
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":178
  *     this one.
  *     """
  *     def __init__(self, message, error_log=None):             # <<<<<<<<<<<<<<
@@ -8210,7 +8217,7 @@ static PyObject *__pyx_pw_4lxml_5etree_9LxmlError_1__init__(PyObject *__pyx_self
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (kw_args > 0) {
@@ -8219,7 +8226,7 @@ static PyObject *__pyx_pw_4lxml_5etree_9LxmlError_1__init__(PyObject *__pyx_self
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -8236,7 +8243,7 @@ static PyObject *__pyx_pw_4lxml_5etree_9LxmlError_1__init__(PyObject *__pyx_self
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.LxmlError.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -8260,7 +8267,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":182
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":179
  *     """
  *     def __init__(self, message, error_log=None):
  *         if python.PY_VERSION_HEX >= 0x02050000:             # <<<<<<<<<<<<<<
@@ -8270,14 +8277,14 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
   __pyx_t_1 = ((PY_VERSION_HEX >= 0x02050000) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":184
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":181
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  *             super(_Error, self).__init__(message)             # <<<<<<<<<<<<<<
  *         else:
  *             error_super_init(self, message)
  */
-    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_v_4lxml_5etree__Error);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_4lxml_5etree__Error);
@@ -8285,18 +8292,18 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
     __Pyx_INCREF(__pyx_v_self);
     PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_self);
     __Pyx_GIVEREF(__pyx_v_self);
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_super, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_message);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_message);
     __Pyx_GIVEREF(__pyx_v_message);
-    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -8305,14 +8312,14 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":186
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":183
  *             super(_Error, self).__init__(message)
  *         else:
  *             error_super_init(self, message)             # <<<<<<<<<<<<<<
  *         if error_log is None:
  *             self.error_log = __copyGlobalErrorLog()
  */
-    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_self);
     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_self);
@@ -8320,14 +8327,14 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
     __Pyx_INCREF(__pyx_v_message);
     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_message);
     __Pyx_GIVEREF(__pyx_v_message);
-    __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_5etree_error_super_init, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_5etree_error_super_init, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 183; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":187
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":184
  *         else:
  *             error_super_init(self, message)
  *         if error_log is None:             # <<<<<<<<<<<<<<
@@ -8338,34 +8345,34 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
   __pyx_t_5 = (__pyx_t_1 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":188
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":185
  *             error_super_init(self, message)
  *         if error_log is None:
  *             self.error_log = __copyGlobalErrorLog()             # <<<<<<<<<<<<<<
  *         else:
  *             self.error_log = error_log.copy()
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree___copyGlobalErrorLog(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree___copyGlobalErrorLog(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__error_log, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__error_log, __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L4;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":190
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":187
  *             self.error_log = __copyGlobalErrorLog()
  *         else:
  *             self.error_log = error_log.copy()             # <<<<<<<<<<<<<<
  * 
  * cdef object _Error = Error if python.PY_VERSION_HEX >= 0x02050000 else None
  */
-    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_error_log, __pyx_n_s__copy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_error_log, __pyx_n_s__copy); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__error_log, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s__error_log, __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   }
   __pyx_L4:;
@@ -8384,7 +8391,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9LxmlError___init__(CYTHON_UNUSED PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":208
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":205
  * 
  * # version information
  * cdef __unpackDottedVersion(version):             # <<<<<<<<<<<<<<
@@ -8418,43 +8425,43 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__unpackDottedVersion", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":209
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":206
  * # version information
  * cdef __unpackDottedVersion(version):
  *     cdef list version_list = []             # <<<<<<<<<<<<<<
  *     l = (version.decode("ascii").replace(u'-', u'.').split(u'.') + [0]*4)[:4]
  *     for item in l:
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_version_list = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":210
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":207
  * cdef __unpackDottedVersion(version):
  *     cdef list version_list = []
  *     l = (version.decode("ascii").replace(u'-', u'.').split(u'.') + [0]*4)[:4]             # <<<<<<<<<<<<<<
  *     for item in l:
  *         try:
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_version, __pyx_n_s__decode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_version, __pyx_n_s__decode); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__split); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_7), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_7), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyList_New(1 * 4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(1 * 4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   { Py_ssize_t __pyx_temp;
     for (__pyx_temp=0; __pyx_temp < 4; __pyx_temp++) {
@@ -8463,17 +8470,17 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
       __Pyx_GIVEREF(__pyx_int_0);
     }
   }
-  __pyx_t_3 = PyNumber_Add(__pyx_t_2, ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyNumber_Add(__pyx_t_2, ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 4, NULL, NULL, &__pyx_k_slice_8, 0, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 4, NULL, NULL, &__pyx_k_slice_8, 0, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_v_l = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":211
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":208
  *     cdef list version_list = []
  *     l = (version.decode("ascii").replace(u'-', u'.').split(u'.') + [0]*4)[:4]
  *     for item in l:             # <<<<<<<<<<<<<<
@@ -8484,7 +8491,7 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
     __pyx_t_1 = __pyx_v_l; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
     __pyx_t_5 = NULL;
   } else {
-    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_l); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_l); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext;
   }
@@ -8492,33 +8499,32 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
     if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_1)) {
       if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_1)) {
       if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_3 = __pyx_t_5(__pyx_t_1);
       if (unlikely(!__pyx_t_3)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
       __Pyx_GOTREF(__pyx_t_3);
     }
-    __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_3;
+    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":212
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":209
  *     l = (version.decode("ascii").replace(u'-', u'.').split(u'.') + [0]*4)[:4]
  *     for item in l:
  *         try:             # <<<<<<<<<<<<<<
@@ -8532,23 +8538,22 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
       __Pyx_XGOTREF(__pyx_t_8);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":213
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":210
  *     for item in l:
  *         try:
  *             item = int(item)             # <<<<<<<<<<<<<<
  *         except ValueError:
  *             if item.startswith(u'dev'):
  */
-        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_INCREF(__pyx_v_item);
         PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_item);
         __Pyx_GIVEREF(__pyx_v_item);
-        __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(__pyx_t_2);
         __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-        __Pyx_DECREF(__pyx_v_item);
-        __pyx_v_item = __pyx_t_2;
+        __Pyx_DECREF_SET(__pyx_v_item, __pyx_t_2);
         __pyx_t_2 = 0;
       }
       __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -8559,7 +8564,7 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":214
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":211
  *         try:
  *             item = int(item)
  *         except ValueError:             # <<<<<<<<<<<<<<
@@ -8569,41 +8574,40 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
       __pyx_t_9 = PyErr_ExceptionMatches(__pyx_builtin_ValueError);
       if (__pyx_t_9) {
         __Pyx_AddTraceback("lxml.etree.__unpackDottedVersion", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        if (__Pyx_GetException(&__pyx_t_2, &__pyx_t_3, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_2);
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_GOTREF(__pyx_t_10);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":215
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":212
  *             item = int(item)
  *         except ValueError:
  *             if item.startswith(u'dev'):             # <<<<<<<<<<<<<<
  *                 count = item[3:]
  *                 item = -300
  */
-        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_11);
-        __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_9), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_9), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_12);
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
         if (__pyx_t_13) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":216
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":213
  *         except ValueError:
  *             if item.startswith(u'dev'):
  *                 count = item[3:]             # <<<<<<<<<<<<<<
  *                 item = -300
  *             elif item.startswith(u'alpha'):
  */
-          __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_v_item, 3, 0, NULL, NULL, &__pyx_k_slice_10, 1, 0, 1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+          __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_v_item, 3, 0, NULL, NULL, &__pyx_k_slice_10, 1, 0, 1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
           __Pyx_GOTREF(__pyx_t_12);
-          __Pyx_XDECREF(__pyx_v_count);
-          __pyx_v_count = __pyx_t_12;
+          __Pyx_XDECREF_SET(__pyx_v_count, __pyx_t_12);
           __pyx_t_12 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":217
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":214
  *             if item.startswith(u'dev'):
  *                 count = item[3:]
  *                 item = -300             # <<<<<<<<<<<<<<
@@ -8611,41 +8615,39 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
  *                 count = item[5:]
  */
           __Pyx_INCREF(__pyx_int_neg_300);
-          __Pyx_DECREF(__pyx_v_item);
-          __pyx_v_item = __pyx_int_neg_300;
+          __Pyx_DECREF_SET(__pyx_v_item, __pyx_int_neg_300);
           goto __pyx_L15;
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":218
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":215
  *                 count = item[3:]
  *                 item = -300
  *             elif item.startswith(u'alpha'):             # <<<<<<<<<<<<<<
  *                 count = item[5:]
  *                 item = -200
  */
-        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_12);
-        __pyx_t_11 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_k_tuple_11), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_11 = PyObject_Call(__pyx_t_12, ((PyObject *)__pyx_k_tuple_11), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_11);
         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
         if (__pyx_t_13) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":219
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":216
  *                 item = -300
  *             elif item.startswith(u'alpha'):
  *                 count = item[5:]             # <<<<<<<<<<<<<<
  *                 item = -200
  *             elif item.startswith(u'beta'):
  */
-          __pyx_t_11 = __Pyx_PyObject_GetSlice(__pyx_v_item, 5, 0, NULL, NULL, &__pyx_k_slice_12, 1, 0, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+          __pyx_t_11 = __Pyx_PyObject_GetSlice(__pyx_v_item, 5, 0, NULL, NULL, &__pyx_k_slice_12, 1, 0, 1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
           __Pyx_GOTREF(__pyx_t_11);
-          __Pyx_XDECREF(__pyx_v_count);
-          __pyx_v_count = __pyx_t_11;
+          __Pyx_XDECREF_SET(__pyx_v_count, __pyx_t_11);
           __pyx_t_11 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":220
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":217
  *             elif item.startswith(u'alpha'):
  *                 count = item[5:]
  *                 item = -200             # <<<<<<<<<<<<<<
@@ -8653,41 +8655,39 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
  *                 count = item[4:]
  */
           __Pyx_INCREF(__pyx_int_neg_200);
-          __Pyx_DECREF(__pyx_v_item);
-          __pyx_v_item = __pyx_int_neg_200;
+          __Pyx_DECREF_SET(__pyx_v_item, __pyx_int_neg_200);
           goto __pyx_L15;
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":221
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":218
  *                 count = item[5:]
  *                 item = -200
  *             elif item.startswith(u'beta'):             # <<<<<<<<<<<<<<
  *                 count = item[4:]
  *                 item = -100
  */
-        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__startswith); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_11);
-        __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_13), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_12 = PyObject_Call(__pyx_t_11, ((PyObject *)__pyx_k_tuple_13), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_12);
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
         if (__pyx_t_13) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":222
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":219
  *                 item = -200
  *             elif item.startswith(u'beta'):
  *                 count = item[4:]             # <<<<<<<<<<<<<<
  *                 item = -100
  *             else:
  */
-          __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_v_item, 4, 0, NULL, NULL, &__pyx_k_slice_14, 1, 0, 1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+          __pyx_t_12 = __Pyx_PyObject_GetSlice(__pyx_v_item, 4, 0, NULL, NULL, &__pyx_k_slice_14, 1, 0, 1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
           __Pyx_GOTREF(__pyx_t_12);
-          __Pyx_XDECREF(__pyx_v_count);
-          __pyx_v_count = __pyx_t_12;
+          __Pyx_XDECREF_SET(__pyx_v_count, __pyx_t_12);
           __pyx_t_12 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":223
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":220
  *             elif item.startswith(u'beta'):
  *                 count = item[4:]
  *                 item = -100             # <<<<<<<<<<<<<<
@@ -8695,13 +8695,12 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
  *                 count = 0
  */
           __Pyx_INCREF(__pyx_int_neg_100);
-          __Pyx_DECREF(__pyx_v_item);
-          __pyx_v_item = __pyx_int_neg_100;
+          __Pyx_DECREF_SET(__pyx_v_item, __pyx_int_neg_100);
           goto __pyx_L15;
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":225
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":222
  *                 item = -100
  *             else:
  *                 count = 0             # <<<<<<<<<<<<<<
@@ -8709,41 +8708,39 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
  *                 item += int(count)
  */
           __Pyx_INCREF(__pyx_int_0);
-          __Pyx_XDECREF(__pyx_v_count);
-          __pyx_v_count = __pyx_int_0;
+          __Pyx_XDECREF_SET(__pyx_v_count, __pyx_int_0);
         }
         __pyx_L15:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":226
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":223
  *             else:
  *                 count = 0
  *             if count:             # <<<<<<<<<<<<<<
  *                 item += int(count)
  *         version_list.append(item)
  */
-        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_count); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_v_count); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         if (__pyx_t_13) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":227
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":224
  *                 count = 0
  *             if count:
  *                 item += int(count)             # <<<<<<<<<<<<<<
  *         version_list.append(item)
  *     return tuple(version_list)
  */
-          __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+          __pyx_t_12 = PyTuple_New(1); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
           __Pyx_GOTREF(__pyx_t_12);
           __Pyx_INCREF(__pyx_v_count);
           PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_v_count);
           __Pyx_GIVEREF(__pyx_v_count);
-          __pyx_t_11 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+          __pyx_t_11 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_12), NULL); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
           __Pyx_GOTREF(__pyx_t_11);
           __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
-          __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_item, __pyx_t_11); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+          __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_item, __pyx_t_11); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
           __Pyx_GOTREF(__pyx_t_12);
           __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
-          __Pyx_DECREF(__pyx_v_item);
-          __pyx_v_item = __pyx_t_12;
+          __Pyx_DECREF_SET(__pyx_v_item, __pyx_t_12);
           __pyx_t_12 = 0;
           goto __pyx_L16;
         }
@@ -8767,18 +8764,18 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
       __pyx_L12_try_end:;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":228
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":225
  *             if count:
  *                 item += int(count)
  *         version_list.append(item)             # <<<<<<<<<<<<<<
  *     return tuple(version_list)
  * 
  */
-    __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_version_list, __pyx_v_item); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_14 = __Pyx_PyList_Append(__pyx_v_version_list, __pyx_v_item); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":229
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":226
  *                 item += int(count)
  *         version_list.append(item)
  *     return tuple(version_list)             # <<<<<<<<<<<<<<
@@ -8786,7 +8783,7 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
  * cdef __unpackIntVersion(int c_version):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)PyList_AsTuple(__pyx_v_version_list)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)PyList_AsTuple(__pyx_v_version_list)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_r = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -8813,7 +8810,7 @@ static PyObject *__pyx_f_4lxml_5etree___unpackDottedVersion(PyObject *__pyx_v_ve
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":231
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":228
  *     return tuple(version_list)
  * 
  * cdef __unpackIntVersion(int c_version):             # <<<<<<<<<<<<<<
@@ -8833,7 +8830,7 @@ static PyObject *__pyx_f_4lxml_5etree___unpackIntVersion(int __pyx_v_c_version)
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__unpackIntVersion", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":232
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":229
  * 
  * cdef __unpackIntVersion(int c_version):
  *     return (             # <<<<<<<<<<<<<<
@@ -8842,36 +8839,36 @@ static PyObject *__pyx_f_4lxml_5etree___unpackIntVersion(int __pyx_v_c_version)
  */
   __Pyx_XDECREF(__pyx_r);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":233
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":230
  * cdef __unpackIntVersion(int c_version):
  *     return (
  *         ((c_version / (100*100)) % 100),             # <<<<<<<<<<<<<<
  *         ((c_version / 100)       % 100),
  *         (c_version               % 100)
  */
-  __pyx_t_1 = PyInt_FromLong(__Pyx_mod_long(__Pyx_div_long(__pyx_v_c_version, 10000), 100)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyInt_FromLong(__Pyx_mod_long(__Pyx_div_long(__pyx_v_c_version, 10000), 100)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":234
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":231
  *     return (
  *         ((c_version / (100*100)) % 100),
  *         ((c_version / 100)       % 100),             # <<<<<<<<<<<<<<
  *         (c_version               % 100)
  *         )
  */
-  __pyx_t_2 = PyInt_FromLong(__Pyx_mod_long(__Pyx_div_long(__pyx_v_c_version, 100), 100)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyInt_FromLong(__Pyx_mod_long(__Pyx_div_long(__pyx_v_c_version, 100), 100)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":235
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":232
  *         ((c_version / (100*100)) % 100),
  *         ((c_version / 100)       % 100),
  *         (c_version               % 100)             # <<<<<<<<<<<<<<
  *         )
  * 
  */
-  __pyx_t_3 = PyInt_FromLong(__Pyx_mod_long(__pyx_v_c_version, 100)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyInt_FromLong(__Pyx_mod_long(__pyx_v_c_version, 100)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
@@ -8915,7 +8912,7 @@ static int __pyx_pw_4lxml_5etree_10_TempStore_1__init__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":259
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":256
  * cdef class _TempStore:
  *     cdef list _storage
  *     def __init__(self):             # <<<<<<<<<<<<<<
@@ -8932,14 +8929,14 @@ static int __pyx_pf_4lxml_5etree_10_TempStore___init__(struct __pyx_obj_4lxml_5e
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":260
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":257
  *     cdef list _storage
  *     def __init__(self):
  *         self._storage = []             # <<<<<<<<<<<<<<
  * 
  *     cdef int add(self, obj) except -1:
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
   __Pyx_GOTREF(__pyx_v_self->_storage);
@@ -8958,7 +8955,7 @@ static int __pyx_pf_4lxml_5etree_10_TempStore___init__(struct __pyx_obj_4lxml_5e
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":262
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":259
  *         self._storage = []
  * 
  *     cdef int add(self, obj) except -1:             # <<<<<<<<<<<<<<
@@ -8975,7 +8972,7 @@ static int __pyx_f_4lxml_5etree_10_TempStore_add(struct __pyx_obj_4lxml_5etree__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("add", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":263
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":260
  * 
  *     cdef int add(self, obj) except -1:
  *         self._storage.append(obj)             # <<<<<<<<<<<<<<
@@ -8984,11 +8981,11 @@ static int __pyx_f_4lxml_5etree_10_TempStore_add(struct __pyx_obj_4lxml_5etree__
  */
   if (unlikely(((PyObject *)__pyx_v_self->_storage) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_storage, __pyx_v_obj); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_storage, __pyx_v_obj); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":264
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":261
  *     cdef int add(self, obj) except -1:
  *         self._storage.append(obj)
  *         return 0             # <<<<<<<<<<<<<<
@@ -9008,7 +9005,7 @@ static int __pyx_f_4lxml_5etree_10_TempStore_add(struct __pyx_obj_4lxml_5etree__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":266
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":263
  *         return 0
  * 
  *     cdef int clear(self) except -1:             # <<<<<<<<<<<<<<
@@ -9024,7 +9021,7 @@ static int __pyx_f_4lxml_5etree_10_TempStore_clear(CYTHON_UNUSED struct __pyx_ob
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("clear", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":267
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":264
  * 
  *     cdef int clear(self) except -1:
  *         del self._storage[:]             # <<<<<<<<<<<<<<
@@ -9033,11 +9030,11 @@ static int __pyx_f_4lxml_5etree_10_TempStore_clear(CYTHON_UNUSED struct __pyx_ob
  */
   if (unlikely(((PyObject *)__pyx_v_self->_storage) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_storage), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_storage), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":268
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":265
  *     cdef int clear(self) except -1:
  *         del self._storage[:]
  *         return 0             # <<<<<<<<<<<<<<
@@ -9057,7 +9054,7 @@ static int __pyx_f_4lxml_5etree_10_TempStore_clear(CYTHON_UNUSED struct __pyx_ob
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":274
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":271
  * cdef class _ExceptionContext:
  *     cdef object _exc_info
  *     cdef void clear(self):             # <<<<<<<<<<<<<<
@@ -9069,7 +9066,7 @@ static void __pyx_f_4lxml_5etree_17_ExceptionContext_clear(struct __pyx_obj_4lxm
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("clear", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":275
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":272
  *     cdef object _exc_info
  *     cdef void clear(self):
  *         self._exc_info = None             # <<<<<<<<<<<<<<
@@ -9085,7 +9082,7 @@ static void __pyx_f_4lxml_5etree_17_ExceptionContext_clear(struct __pyx_obj_4lxm
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":277
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":274
  *         self._exc_info = None
  * 
  *     cdef void _store_raised(self):             # <<<<<<<<<<<<<<
@@ -9102,16 +9099,16 @@ static void __pyx_f_4lxml_5etree_17_ExceptionContext__store_raised(struct __pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_store_raised", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":278
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":275
  * 
  *     cdef void _store_raised(self):
  *         self._exc_info = sys.exc_info()             # <<<<<<<<<<<<<<
  * 
  *     cdef void _store_exception(self, exception):
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__exc_info); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_GIVEREF(__pyx_t_2);
@@ -9129,7 +9126,7 @@ static void __pyx_f_4lxml_5etree_17_ExceptionContext__store_raised(struct __pyx_
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":280
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":277
  *         self._exc_info = sys.exc_info()
  * 
  *     cdef void _store_exception(self, exception):             # <<<<<<<<<<<<<<
@@ -9145,14 +9142,14 @@ static void __pyx_f_4lxml_5etree_17_ExceptionContext__store_exception(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_store_exception", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":281
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":278
  * 
  *     cdef void _store_exception(self, exception):
  *         self._exc_info = (exception, None, None)             # <<<<<<<<<<<<<<
  * 
  *     cdef bint _has_raised(self):
  */
-  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_exception);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_exception);
@@ -9177,7 +9174,7 @@ static void __pyx_f_4lxml_5etree_17_ExceptionContext__store_exception(struct __p
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":283
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":280
  *         self._exc_info = (exception, None, None)
  * 
  *     cdef bint _has_raised(self):             # <<<<<<<<<<<<<<
@@ -9191,7 +9188,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__has_raised(struct __pyx_obj
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_has_raised", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":284
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":281
  * 
  *     cdef bint _has_raised(self):
  *         return self._exc_info is not None             # <<<<<<<<<<<<<<
@@ -9208,7 +9205,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__has_raised(struct __pyx_obj
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":286
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":283
  *         return self._exc_info is not None
  * 
  *     cdef int _raise_if_stored(self) except -1:             # <<<<<<<<<<<<<<
@@ -9236,7 +9233,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_raise_if_stored", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":287
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":284
  * 
  *     cdef int _raise_if_stored(self) except -1:
  *         if self._exc_info is None:             # <<<<<<<<<<<<<<
@@ -9247,7 +9244,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":288
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":285
  *     cdef int _raise_if_stored(self) except -1:
  *         if self._exc_info is None:
  *             return 0             # <<<<<<<<<<<<<<
@@ -9260,7 +9257,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":289
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":286
  *         if self._exc_info is None:
  *             return 0
  *         type, value, traceback = self._exc_info             # <<<<<<<<<<<<<<
@@ -9279,7 +9276,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
     if (unlikely(size != 3)) {
       if (size > 3) __Pyx_RaiseTooManyValuesError(3);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -9295,18 +9292,18 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
     __Pyx_INCREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_t_6);
     #else
-    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     #endif
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -9316,7 +9313,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
     __Pyx_GOTREF(__pyx_t_5);
     index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L4_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_6);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_8 = NULL;
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     goto __pyx_L5_unpacking_done;
@@ -9324,7 +9321,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     __pyx_t_8 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L5_unpacking_done:;
   }
   __pyx_v_type = __pyx_t_4;
@@ -9334,7 +9331,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
   __pyx_v_traceback = __pyx_t_6;
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":290
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":287
  *             return 0
  *         type, value, traceback = self._exc_info
  *         self._exc_info = None             # <<<<<<<<<<<<<<
@@ -9347,7 +9344,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
   __Pyx_DECREF(__pyx_v_self->_exc_info);
   __pyx_v_self->_exc_info = Py_None;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":291
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":288
  *         type, value, traceback = self._exc_info
  *         self._exc_info = None
  *         if value is None and traceback is None:             # <<<<<<<<<<<<<<
@@ -9363,7 +9360,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
   }
   if (__pyx_t_9) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":292
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":289
  *         self._exc_info = None
  *         if value is None and traceback is None:
  *             raise type             # <<<<<<<<<<<<<<
@@ -9371,12 +9368,12 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
  *             raise type, value, traceback
  */
     __Pyx_Raise(__pyx_v_type, 0, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L6;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":294
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":291
  *             raise type
  *         else:
  *             raise type, value, traceback             # <<<<<<<<<<<<<<
@@ -9384,7 +9381,7 @@ static int __pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored(struct __py
  * 
  */
     __Pyx_Raise(__pyx_v_type, __pyx_v_value, __pyx_v_traceback, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L6:;
 
@@ -12056,8 +12053,7 @@ static void __pyx_f_4lxml_5etree_fixElementDocument(xmlNode *__pyx_v_c_element,
  */
     __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(((PyObject *)__pyx_v_proxy));
-    __pyx_v_proxy = ((struct LxmlElement *)__pyx_t_2);
+    __Pyx_DECREF_SET(__pyx_v_proxy, ((struct LxmlElement *)__pyx_t_2));
     __pyx_t_2 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/proxy.pxi":435
@@ -13664,8 +13660,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__makeElement(PyObject *__pyx_v_t
  */
         __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
         __Pyx_GOTREF(__pyx_t_4);
-        __Pyx_DECREF(((PyObject *)__pyx_v_doc));
-        __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+        __Pyx_DECREF_SET(__pyx_v_doc, ((struct LxmlDocument *)__pyx_t_4));
         __pyx_t_4 = 0;
         goto __pyx_L19;
       }
@@ -14790,11 +14785,9 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
       {__pyx_filename = __pyx_f[4]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L9_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_prefix);
-    __pyx_v_prefix = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_4);
     __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_v_href);
-    __pyx_v_href = __pyx_t_10;
+    __Pyx_XDECREF_SET(__pyx_v_href, __pyx_t_10);
     __pyx_t_10 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":221
@@ -14806,8 +14799,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  */
     __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_href)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_XDECREF(((PyObject *)__pyx_v_href_utf));
-    __pyx_v_href_utf = ((PyObject*)__pyx_t_5);
+    __Pyx_XDECREF_SET(__pyx_v_href_utf, ((PyObject*)__pyx_t_5));
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":222
@@ -14848,8 +14840,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  */
       __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_prefix)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_XDECREF(((PyObject *)__pyx_v_prefix_utf));
-      __pyx_v_prefix_utf = ((PyObject*)__pyx_t_5);
+      __Pyx_XDECREF_SET(__pyx_v_prefix_utf, ((PyObject*)__pyx_t_5));
       __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":226
@@ -14972,8 +14963,7 @@ static int __pyx_f_4lxml_5etree__initNodeNamespaces(xmlNode *__pyx_v_c_node, str
  *     if node_ns_utf is not None:
  */
       __Pyx_INCREF(Py_None);
-      __Pyx_DECREF(__pyx_v_node_ns_utf);
-      __pyx_v_node_ns_utf = Py_None;
+      __Pyx_DECREF_SET(__pyx_v_node_ns_utf, Py_None);
       goto __pyx_L12;
     }
     __pyx_L12:;
@@ -15143,8 +15133,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  *             attrib.update(extra)
  */
       __Pyx_INCREF(__pyx_v_extra);
-      __Pyx_DECREF(__pyx_v_attrib);
-      __pyx_v_attrib = __pyx_v_extra;
+      __Pyx_DECREF_SET(__pyx_v_attrib, __pyx_v_extra);
       goto __pyx_L5;
     }
     /*else*/ {
@@ -15300,11 +15289,9 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         {__pyx_filename = __pyx_f[4]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L10_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_name);
-      __pyx_v_name = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
       __pyx_t_5 = 0;
-      __Pyx_XDECREF(__pyx_v_value);
-      __pyx_v_value = __pyx_t_9;
+      __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9);
       __pyx_t_9 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":261
@@ -15364,11 +15351,9 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
         {__pyx_filename = __pyx_f[4]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L12_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_attr_ns_utf);
-      __pyx_v_attr_ns_utf = __pyx_t_9;
+      __Pyx_XDECREF_SET(__pyx_v_attr_ns_utf, __pyx_t_9);
       __pyx_t_9 = 0;
-      __Pyx_XDECREF(__pyx_v_attr_name_utf);
-      __pyx_v_attr_name_utf = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_attr_name_utf, __pyx_t_5);
       __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":262
@@ -15402,8 +15387,7 @@ static PyObject *__pyx_f_4lxml_5etree__initNodeAttributes(xmlNode *__pyx_v_c_nod
  */
       __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_XDECREF(((PyObject *)__pyx_v_value_utf));
-      __pyx_v_value_utf = ((PyObject*)__pyx_t_4);
+      __Pyx_XDECREF_SET(__pyx_v_value_utf, ((PyObject*)__pyx_t_4));
       __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":265
@@ -17665,8 +17649,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
     __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__resolveQNameText(__pyx_v_element, __pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_1;
+    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
     __pyx_t_1 = 0;
     goto __pyx_L6;
   }
@@ -17681,8 +17664,7 @@ static int __pyx_f_4lxml_5etree__setAttributeValue(struct LxmlElement *__pyx_v_e
  */
     __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_1;
+    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
     __pyx_t_1 = 0;
   }
   __pyx_L6:;
@@ -18192,8 +18174,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
         __pyx_t_3 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
-        __Pyx_XDECREF(__pyx_v_item);
-        __pyx_v_item = __pyx_t_3;
+        __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
         __pyx_t_3 = 0;
         break;
 
@@ -18215,8 +18196,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
  */
         __pyx_t_3 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
-        __Pyx_XDECREF(__pyx_v_item);
-        __pyx_v_item = __pyx_t_3;
+        __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
         __pyx_t_3 = 0;
         break;
         default:
@@ -18248,8 +18228,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectAttributes(xmlNode *__pyx_v_c_node
         __Pyx_GIVEREF(__pyx_t_4);
         __pyx_t_3 = 0;
         __pyx_t_4 = 0;
-        __Pyx_XDECREF(__pyx_v_item);
-        __pyx_v_item = ((PyObject *)__pyx_t_5);
+        __Pyx_XDECREF_SET(__pyx_v_item, ((PyObject *)__pyx_t_5));
         __pyx_t_5 = 0;
         break;
       }
@@ -18697,8 +18676,7 @@ static PyObject *__pyx_f_4lxml_5etree__collectText(xmlNode *__pyx_v_c_node) {
     __pyx_t_5 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_result), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_result));
-    __pyx_v_result = ((PyObject*)__pyx_t_5);
+    __Pyx_DECREF_SET(__pyx_v_result, ((PyObject*)__pyx_t_5));
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":626
@@ -21198,11 +21176,9 @@ static Py_ssize_t __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(xmlDoc *__pyx_v
     }
     if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_ns));
-    __pyx_v_ns = ((PyObject*)__pyx_t_4);
+    __Pyx_XDECREF_SET(__pyx_v_ns, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
-    __Pyx_XDECREF(((PyObject *)__pyx_v_tag));
-    __pyx_v_tag = ((PyObject*)__pyx_t_5);
+    __Pyx_XDECREF_SET(__pyx_v_tag, ((PyObject*)__pyx_t_5));
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":928
@@ -22495,8 +22471,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
     __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_v_elements);
-    __pyx_v_elements = __pyx_t_5;
+    __Pyx_DECREF_SET(__pyx_v_elements, __pyx_t_5);
     __pyx_t_5 = 0;
     goto __pyx_L4;
   }
@@ -22626,8 +22601,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           __Pyx_GOTREF(__pyx_t_7);
         }
         if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_XDECREF(((PyObject *)__pyx_v_element));
-        __pyx_v_element = ((struct LxmlElement *)__pyx_t_7);
+        __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
         __pyx_t_7 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1097
@@ -22701,8 +22675,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
           __Pyx_GOTREF(__pyx_t_7);
         }
         if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_XDECREF(((PyObject *)__pyx_v_element));
-        __pyx_v_element = ((struct LxmlElement *)__pyx_t_7);
+        __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
         __pyx_t_7 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1101
@@ -22875,8 +22848,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
   __pyx_t_4 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_v_elements);
-  __pyx_v_elements = __pyx_t_4;
+  __Pyx_DECREF_SET(__pyx_v_elements, __pyx_t_4);
   __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1130
@@ -23145,8 +23117,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __Pyx_GOTREF(__pyx_t_7);
       }
       if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1156; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_XDECREF(((PyObject *)__pyx_v_element));
-      __pyx_v_element = ((struct LxmlElement *)__pyx_t_7);
+      __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
       __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1157
@@ -23359,8 +23330,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __Pyx_GOTREF(__pyx_t_7);
       }
       if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_XDECREF(((PyObject *)__pyx_v_element));
-      __pyx_v_element = ((struct LxmlElement *)__pyx_t_7);
+      __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
       __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1182
@@ -23443,8 +23413,7 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
         __Pyx_GOTREF(__pyx_t_7);
       }
       if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_XDECREF(((PyObject *)__pyx_v_element));
-      __pyx_v_element = ((struct LxmlElement *)__pyx_t_7);
+      __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_7));
       __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1187
@@ -23518,42 +23487,102 @@ static int __pyx_f_4lxml_5etree__replaceSlice(struct LxmlElement *__pyx_v_parent
  */
 
 static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent, struct LxmlElement *__pyx_v_child) {
-  xmlNode *__pyx_v_c_next;
   xmlNode *__pyx_v_c_node;
   xmlDoc *__pyx_v_c_source_doc;
+  xmlNode *__pyx_v_c_parent;
+  xmlNode *__pyx_v_c_next;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   xmlNode *__pyx_t_1;
   xmlDoc *__pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_appendChild", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1197
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1196
+ *     u"""Append a new child to a parent element.
  *     """
- *     cdef xmlNode* c_next
- *     cdef xmlNode* c_node = child._c_node             # <<<<<<<<<<<<<<
- *     cdef xmlDoc* c_source_doc = c_node.doc
- *     # store possible text node
+ *     c_node = child._c_node             # <<<<<<<<<<<<<<
+ *     c_source_doc = c_node.doc
+ *     # prevent cycles
  */
   __pyx_t_1 = __pyx_v_child->_c_node;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1198
- *     cdef xmlNode* c_next
- *     cdef xmlNode* c_node = child._c_node
- *     cdef xmlDoc* c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
- *     # store possible text node
- *     c_next = c_node.next
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1197
+ *     """
+ *     c_node = child._c_node
+ *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
+ *     # prevent cycles
+ *     c_parent = parent._c_node
  */
   __pyx_t_2 = __pyx_v_c_node->doc;
   __pyx_v_c_source_doc = __pyx_t_2;
 
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1199
+ *     c_source_doc = c_node.doc
+ *     # prevent cycles
+ *     c_parent = parent._c_node             # <<<<<<<<<<<<<<
+ *     while c_parent:
+ *         if c_parent is c_node:
+ */
+  __pyx_t_1 = __pyx_v_parent->_c_node;
+  __pyx_v_c_parent = __pyx_t_1;
+
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1200
- *     cdef xmlDoc* c_source_doc = c_node.doc
+ *     # prevent cycles
+ *     c_parent = parent._c_node
+ *     while c_parent:             # <<<<<<<<<<<<<<
+ *         if c_parent is c_node:
+ *             raise ValueError("cannot append parent to itself")
+ */
+  while (1) {
+    __pyx_t_3 = (__pyx_v_c_parent != 0);
+    if (!__pyx_t_3) break;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1201
+ *     c_parent = parent._c_node
+ *     while c_parent:
+ *         if c_parent is c_node:             # <<<<<<<<<<<<<<
+ *             raise ValueError("cannot append parent to itself")
+ *         c_parent = c_parent.parent
+ */
+    __pyx_t_3 = ((__pyx_v_c_parent == __pyx_v_c_node) != 0);
+    if (__pyx_t_3) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1202
+ *     while c_parent:
+ *         if c_parent is c_node:
+ *             raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
+ *         c_parent = c_parent.parent
+ *     # store possible text node
+ */
+      __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_30), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      goto __pyx_L5;
+    }
+    __pyx_L5:;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1203
+ *         if c_parent is c_node:
+ *             raise ValueError("cannot append parent to itself")
+ *         c_parent = c_parent.parent             # <<<<<<<<<<<<<<
+ *     # store possible text node
+ *     c_next = c_node.next
+ */
+    __pyx_t_1 = __pyx_v_c_parent->parent;
+    __pyx_v_c_parent = __pyx_t_1;
+  }
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1205
+ *         c_parent = c_parent.parent
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
  *     # move node itself
@@ -23562,7 +23591,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1202
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1207
  *     c_next = c_node.next
  *     # move node itself
  *     tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -23571,7 +23600,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   xmlUnlinkNode(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1203
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1208
  *     # move node itself
  *     tree.xmlUnlinkNode(c_node)
  *     tree.xmlAddChild(parent._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -23580,7 +23609,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   xmlAddChild(__pyx_v_parent->_c_node, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1204
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1209
  *     tree.xmlUnlinkNode(c_node)
  *     tree.xmlAddChild(parent._c_node, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -23589,22 +23618,22 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1207
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1212
  *     # uh oh, elements may be pointing to different doc when
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)             # <<<<<<<<<<<<<<
  * 
  * cdef int _prependChild(_Element parent, _Element child) except -1:
  */
-  __pyx_t_3 = ((PyObject *)__pyx_v_parent->_doc);
-  __Pyx_INCREF(__pyx_t_3);
-  __pyx_t_4 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_4 = ((PyObject *)__pyx_v_parent->_doc);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._appendChild", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -23612,7 +23641,7 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1209
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1214
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)
  * 
  * cdef int _prependChild(_Element parent, _Element child) except -1:             # <<<<<<<<<<<<<<
@@ -23621,10 +23650,11 @@ static int __pyx_f_4lxml_5etree__appendChild(struct LxmlElement *__pyx_v_parent,
  */
 
 static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent, struct LxmlElement *__pyx_v_child) {
-  xmlNode *__pyx_v_c_next;
-  xmlNode *__pyx_v_c_child;
   xmlNode *__pyx_v_c_node;
   xmlDoc *__pyx_v_c_source_doc;
+  xmlNode *__pyx_v_c_parent;
+  xmlNode *__pyx_v_c_next;
+  xmlNode *__pyx_v_c_child;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   xmlNode *__pyx_t_1;
@@ -23637,28 +23667,86 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_prependChild", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1214
- *     cdef xmlNode* c_next
- *     cdef xmlNode* c_child
- *     cdef xmlNode* c_node = child._c_node             # <<<<<<<<<<<<<<
- *     cdef xmlDoc* c_source_doc = c_node.doc
- *     # store possible text node
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1217
+ *     u"""Prepend a new child to a parent element.
+ *     """
+ *     c_node = child._c_node             # <<<<<<<<<<<<<<
+ *     c_source_doc = c_node.doc
+ *     # prevent cycles
  */
   __pyx_t_1 = __pyx_v_child->_c_node;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1215
- *     cdef xmlNode* c_child
- *     cdef xmlNode* c_node = child._c_node
- *     cdef xmlDoc* c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
- *     # store possible text node
- *     c_next = c_node.next
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1218
+ *     """
+ *     c_node = child._c_node
+ *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
+ *     # prevent cycles
+ *     c_parent = parent._c_node
  */
   __pyx_t_2 = __pyx_v_c_node->doc;
   __pyx_v_c_source_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1217
- *     cdef xmlDoc* c_source_doc = c_node.doc
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1220
+ *     c_source_doc = c_node.doc
+ *     # prevent cycles
+ *     c_parent = parent._c_node             # <<<<<<<<<<<<<<
+ *     while c_parent:
+ *         if c_parent is c_node:
+ */
+  __pyx_t_1 = __pyx_v_parent->_c_node;
+  __pyx_v_c_parent = __pyx_t_1;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1221
+ *     # prevent cycles
+ *     c_parent = parent._c_node
+ *     while c_parent:             # <<<<<<<<<<<<<<
+ *         if c_parent is c_node:
+ *             raise ValueError("cannot append parent to itself")
+ */
+  while (1) {
+    __pyx_t_3 = (__pyx_v_c_parent != 0);
+    if (!__pyx_t_3) break;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1222
+ *     c_parent = parent._c_node
+ *     while c_parent:
+ *         if c_parent is c_node:             # <<<<<<<<<<<<<<
+ *             raise ValueError("cannot append parent to itself")
+ *         c_parent = c_parent.parent
+ */
+    __pyx_t_3 = ((__pyx_v_c_parent == __pyx_v_c_node) != 0);
+    if (__pyx_t_3) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1223
+ *     while c_parent:
+ *         if c_parent is c_node:
+ *             raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
+ *         c_parent = c_parent.parent
+ *     # store possible text node
+ */
+      __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_31), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_Raise(__pyx_t_4, 0, 0, 0);
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      goto __pyx_L5;
+    }
+    __pyx_L5:;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1224
+ *         if c_parent is c_node:
+ *             raise ValueError("cannot append parent to itself")
+ *         c_parent = c_parent.parent             # <<<<<<<<<<<<<<
+ *     # store possible text node
+ *     c_next = c_node.next
+ */
+    __pyx_t_1 = __pyx_v_c_parent->parent;
+    __pyx_v_c_parent = __pyx_t_1;
+  }
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1226
+ *         c_parent = c_parent.parent
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
  *     # move node itself
@@ -23667,7 +23755,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1219
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1228
  *     c_next = c_node.next
  *     # move node itself
  *     c_child = _findChildForwards(parent._c_node, 0)             # <<<<<<<<<<<<<<
@@ -23676,7 +23764,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
   __pyx_v_c_child = __pyx_f_4lxml_5etree__findChildForwards(__pyx_v_parent->_c_node, 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1220
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1229
  *     # move node itself
  *     c_child = _findChildForwards(parent._c_node, 0)
  *     if c_child is NULL:             # <<<<<<<<<<<<<<
@@ -23686,7 +23774,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   __pyx_t_3 = ((__pyx_v_c_child == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1221
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1230
  *     c_child = _findChildForwards(parent._c_node, 0)
  *     if c_child is NULL:
  *         tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -23695,7 +23783,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
     xmlUnlinkNode(__pyx_v_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1222
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1231
  *     if c_child is NULL:
  *         tree.xmlUnlinkNode(c_node)
  *         tree.xmlAddChild(parent._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -23703,11 +23791,11 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  *         tree.xmlAddPrevSibling(c_child, c_node)
  */
     xmlAddChild(__pyx_v_parent->_c_node, __pyx_v_c_node);
-    goto __pyx_L3;
+    goto __pyx_L6;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1224
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1233
  *         tree.xmlAddChild(parent._c_node, c_node)
  *     else:
  *         tree.xmlAddPrevSibling(c_child, c_node)             # <<<<<<<<<<<<<<
@@ -23716,9 +23804,9 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
     xmlAddPrevSibling(__pyx_v_c_child, __pyx_v_c_node);
   }
-  __pyx_L3:;
+  __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1225
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1234
  *     else:
  *         tree.xmlAddPrevSibling(c_child, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -23727,7 +23815,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1228
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1237
  *     # uh oh, elements may be pointing to different doc when
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)             # <<<<<<<<<<<<<<
@@ -23736,7 +23824,7 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_parent->_doc);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = 0;
@@ -23750,11 +23838,11 @@ static int __pyx_f_4lxml_5etree__prependChild(struct LxmlElement *__pyx_v_parent
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1230
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1239
  *     moveNodeToDocument(parent._doc, c_source_doc, c_node)
  * 
  * cdef int _appendSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
- *     u"""Append a new child to a parent element.
+ *     u"""Add a new sibling behind an element.
  *     """
  */
 
@@ -23765,36 +23853,60 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   xmlNode *__pyx_t_1;
-  xmlDoc *__pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  int __pyx_t_2;
+  xmlDoc *__pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_appendSibling", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1233
- *     u"""Append a new child to a parent element.
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1242
+ *     u"""Add a new sibling behind an element.
  *     """
- *     cdef xmlNode* c_node = sibling._c_node             # <<<<<<<<<<<<<<
- *     cdef xmlDoc* c_source_doc = c_node.doc
- *     cdef xmlNode* c_next
+ *     c_node = sibling._c_node             # <<<<<<<<<<<<<<
+ *     if element._c_node is c_node:
+ *         return 0  # nothing to do
  */
   __pyx_t_1 = __pyx_v_sibling->_c_node;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1234
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1243
  *     """
- *     cdef xmlNode* c_node = sibling._c_node
- *     cdef xmlDoc* c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
- *     cdef xmlNode* c_next
+ *     c_node = sibling._c_node
+ *     if element._c_node is c_node:             # <<<<<<<<<<<<<<
+ *         return 0  # nothing to do
+ *     c_source_doc = c_node.doc
+ */
+  __pyx_t_2 = ((__pyx_v_element->_c_node == __pyx_v_c_node) != 0);
+  if (__pyx_t_2) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1244
+ *     c_node = sibling._c_node
+ *     if element._c_node is c_node:
+ *         return 0  # nothing to do             # <<<<<<<<<<<<<<
+ *     c_source_doc = c_node.doc
  *     # store possible text node
  */
-  __pyx_t_2 = __pyx_v_c_node->doc;
-  __pyx_v_c_source_doc = __pyx_t_2;
+    __pyx_r = 0;
+    goto __pyx_L0;
+    goto __pyx_L3;
+  }
+  __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1237
- *     cdef xmlNode* c_next
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1245
+ *     if element._c_node is c_node:
+ *         return 0  # nothing to do
+ *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
+ *     # store possible text node
+ *     c_next = c_node.next
+ */
+  __pyx_t_3 = __pyx_v_c_node->doc;
+  __pyx_v_c_source_doc = __pyx_t_3;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1247
+ *     c_source_doc = c_node.doc
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
  *     # move node itself
@@ -23803,7 +23915,7 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1239
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1249
  *     c_next = c_node.next
  *     # move node itself
  *     tree.xmlAddNextSibling(element._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -23812,7 +23924,7 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
  */
   xmlAddNextSibling(__pyx_v_element->_c_node, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1240
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1250
  *     # move node itself
  *     tree.xmlAddNextSibling(element._c_node, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -23821,22 +23933,22 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1243
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1253
  *     # uh oh, elements may be pointing to different doc when
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(element._doc, c_source_doc, c_node)             # <<<<<<<<<<<<<<
  * 
  * cdef int _prependSibling(_Element element, _Element sibling) except -1:
  */
-  __pyx_t_3 = ((PyObject *)__pyx_v_element->_doc);
-  __Pyx_INCREF(__pyx_t_3);
-  __pyx_t_4 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_4 = ((PyObject *)__pyx_v_element->_doc);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._appendSibling", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -23844,11 +23956,11 @@ static int __pyx_f_4lxml_5etree__appendSibling(struct LxmlElement *__pyx_v_eleme
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1245
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1255
  *     moveNodeToDocument(element._doc, c_source_doc, c_node)
  * 
  * cdef int _prependSibling(_Element element, _Element sibling) except -1:             # <<<<<<<<<<<<<<
- *     u"""Append a new child to a parent element.
+ *     u"""Add a new sibling before an element.
  *     """
  */
 
@@ -23859,36 +23971,60 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   xmlNode *__pyx_t_1;
-  xmlDoc *__pyx_t_2;
-  PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  int __pyx_t_2;
+  xmlDoc *__pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_prependSibling", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1248
- *     u"""Append a new child to a parent element.
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1258
+ *     u"""Add a new sibling before an element.
  *     """
- *     cdef xmlNode* c_node = sibling._c_node             # <<<<<<<<<<<<<<
- *     cdef xmlDoc* c_source_doc = c_node.doc
- *     cdef xmlNode* c_next
+ *     c_node = sibling._c_node             # <<<<<<<<<<<<<<
+ *     if element._c_node is c_node:
+ *         return 0  # nothing to do
  */
   __pyx_t_1 = __pyx_v_sibling->_c_node;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1249
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1259
  *     """
- *     cdef xmlNode* c_node = sibling._c_node
- *     cdef xmlDoc* c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
- *     cdef xmlNode* c_next
+ *     c_node = sibling._c_node
+ *     if element._c_node is c_node:             # <<<<<<<<<<<<<<
+ *         return 0  # nothing to do
+ *     c_source_doc = c_node.doc
+ */
+  __pyx_t_2 = ((__pyx_v_element->_c_node == __pyx_v_c_node) != 0);
+  if (__pyx_t_2) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1260
+ *     c_node = sibling._c_node
+ *     if element._c_node is c_node:
+ *         return 0  # nothing to do             # <<<<<<<<<<<<<<
+ *     c_source_doc = c_node.doc
  *     # store possible text node
  */
-  __pyx_t_2 = __pyx_v_c_node->doc;
-  __pyx_v_c_source_doc = __pyx_t_2;
+    __pyx_r = 0;
+    goto __pyx_L0;
+    goto __pyx_L3;
+  }
+  __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1252
- *     cdef xmlNode* c_next
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1261
+ *     if element._c_node is c_node:
+ *         return 0  # nothing to do
+ *     c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
+ *     # store possible text node
+ *     c_next = c_node.next
+ */
+  __pyx_t_3 = __pyx_v_c_node->doc;
+  __pyx_v_c_source_doc = __pyx_t_3;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1263
+ *     c_source_doc = c_node.doc
  *     # store possible text node
  *     c_next = c_node.next             # <<<<<<<<<<<<<<
  *     # move node itself
@@ -23897,7 +24033,7 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_next = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1254
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1265
  *     c_next = c_node.next
  *     # move node itself
  *     tree.xmlAddPrevSibling(element._c_node, c_node)             # <<<<<<<<<<<<<<
@@ -23906,7 +24042,7 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
  */
   xmlAddPrevSibling(__pyx_v_element->_c_node, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1255
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1266
  *     # move node itself
  *     tree.xmlAddPrevSibling(element._c_node, c_node)
  *     _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -23915,22 +24051,22 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1258
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1269
  *     # uh oh, elements may be pointing to different doc when
  *     # parent element has moved; change them too..
  *     moveNodeToDocument(element._doc, c_source_doc, c_node)             # <<<<<<<<<<<<<<
  * 
  * cdef inline int isutf8(const_xmlChar* s):
  */
-  __pyx_t_3 = ((PyObject *)__pyx_v_element->_doc);
-  __Pyx_INCREF(__pyx_t_3);
-  __pyx_t_4 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_4 = ((PyObject *)__pyx_v_element->_doc);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_t_5 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_source_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree._prependSibling", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -23938,7 +24074,7 @@ static int __pyx_f_4lxml_5etree__prependSibling(struct LxmlElement *__pyx_v_elem
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1260
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1271
  *     moveNodeToDocument(element._doc, c_source_doc, c_node)
  * 
  * cdef inline int isutf8(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -23953,7 +24089,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("isutf8", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1261
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1272
  * 
  * cdef inline int isutf8(const_xmlChar* s):
  *     cdef xmlChar c = s[0]             # <<<<<<<<<<<<<<
@@ -23962,7 +24098,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_c = (__pyx_v_s[0]);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1262
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1273
  * cdef inline int isutf8(const_xmlChar* s):
  *     cdef xmlChar c = s[0]
  *     while c != c'\0':             # <<<<<<<<<<<<<<
@@ -23973,7 +24109,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
     __pyx_t_1 = ((__pyx_v_c != '\x00') != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1263
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1274
  *     cdef xmlChar c = s[0]
  *     while c != c'\0':
  *         if c & 0x80:             # <<<<<<<<<<<<<<
@@ -23983,7 +24119,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
     __pyx_t_1 = ((__pyx_v_c & 0x80) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1264
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1275
  *     while c != c'\0':
  *         if c & 0x80:
  *             return 1             # <<<<<<<<<<<<<<
@@ -23996,7 +24132,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1265
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1276
  *         if c & 0x80:
  *             return 1
  *         s += 1             # <<<<<<<<<<<<<<
@@ -24005,7 +24141,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
  */
     __pyx_v_s = (__pyx_v_s + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1266
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1277
  *             return 1
  *         s += 1
  *         c = s[0]             # <<<<<<<<<<<<<<
@@ -24015,7 +24151,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
     __pyx_v_c = (__pyx_v_s[0]);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1267
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1278
  *         s += 1
  *         c = s[0]
  *     return 0             # <<<<<<<<<<<<<<
@@ -24031,7 +24167,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_isutf8(const xmlChar *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1269
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1280
  *     return 0
  * 
  * cdef int check_string_utf8(bytes pystring):             # <<<<<<<<<<<<<<
@@ -24054,7 +24190,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("check_string_utf8", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1274
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1285
  *     bytes or ASCII control characters.
  *     """
  *     cdef const_xmlChar* s = _xcstr(pystring)             # <<<<<<<<<<<<<<
@@ -24063,7 +24199,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  */
   __pyx_v_s = (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_pystring));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1275
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1286
  *     """
  *     cdef const_xmlChar* s = _xcstr(pystring)
  *     cdef const_xmlChar* c_end = s + len(pystring)             # <<<<<<<<<<<<<<
@@ -24072,12 +24208,12 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  */
   if (unlikely(((PyObject *)__pyx_v_pystring) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_pystring)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_pystring)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_end = (__pyx_v_s + __pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1276
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1287
  *     cdef const_xmlChar* s = _xcstr(pystring)
  *     cdef const_xmlChar* c_end = s + len(pystring)
  *     cdef bint is_non_ascii = 0             # <<<<<<<<<<<<<<
@@ -24086,7 +24222,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
  */
   __pyx_v_is_non_ascii = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1277
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1288
  *     cdef const_xmlChar* c_end = s + len(pystring)
  *     cdef bint is_non_ascii = 0
  *     while s < c_end:             # <<<<<<<<<<<<<<
@@ -24097,7 +24233,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     __pyx_t_2 = ((__pyx_v_s < __pyx_v_c_end) != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1278
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1289
  *     cdef bint is_non_ascii = 0
  *     while s < c_end:
  *         if s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -24107,7 +24243,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     __pyx_t_2 = (((__pyx_v_s[0]) & 0x80) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1280
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1291
  *         if s[0] & 0x80:
  *             # skip over multi byte sequences
  *             while s < c_end and s[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -24123,7 +24259,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
         }
         if (!__pyx_t_3) break;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1281
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1292
  *             # skip over multi byte sequences
  *             while s < c_end and s[0] & 0x80:
  *                 s += 1             # <<<<<<<<<<<<<<
@@ -24133,7 +24269,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
         __pyx_v_s = (__pyx_v_s + 1);
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1282
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1293
  *             while s < c_end and s[0] & 0x80:
  *                 s += 1
  *             is_non_ascii = 1             # <<<<<<<<<<<<<<
@@ -24145,7 +24281,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1283
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1294
  *                 s += 1
  *             is_non_ascii = 1
  *         if  s < c_end and not tree.xmlIsChar_ch(s[0]):             # <<<<<<<<<<<<<<
@@ -24161,7 +24297,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     }
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1284
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1295
  *             is_non_ascii = 1
  *         if  s < c_end and not tree.xmlIsChar_ch(s[0]):
  *             return -1 # invalid!             # <<<<<<<<<<<<<<
@@ -24174,7 +24310,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1285
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1296
  *         if  s < c_end and not tree.xmlIsChar_ch(s[0]):
  *             return -1 # invalid!
  *         s += 1             # <<<<<<<<<<<<<<
@@ -24184,7 +24320,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
     __pyx_v_s = (__pyx_v_s + 1);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1286
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1297
  *             return -1 # invalid!
  *         s += 1
  *     return is_non_ascii             # <<<<<<<<<<<<<<
@@ -24204,7 +24340,7 @@ static int __pyx_f_4lxml_5etree_check_string_utf8(PyObject *__pyx_v_pystring) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1288
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1299
  *     return is_non_ascii
  * 
  * cdef inline object funicodeOrNone(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -24222,7 +24358,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("funicodeOrNone", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1289
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1300
  * 
  * cdef inline object funicodeOrNone(const_xmlChar* s):
  *     return funicode(s) if s is not NULL else None             # <<<<<<<<<<<<<<
@@ -24231,7 +24367,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
  */
   __Pyx_XDECREF(__pyx_r);
   if (((__pyx_v_s != NULL) != 0)) {
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -24256,7 +24392,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrNone(const xmlChar
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1291
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1302
  *     return funicode(s) if s is not NULL else None
  * 
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -24274,7 +24410,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("funicodeOrEmpty", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1292
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1303
  * 
  * cdef inline object funicodeOrEmpty(const_xmlChar* s):
  *     return funicode(s) if s is not NULL else ''             # <<<<<<<<<<<<<<
@@ -24283,7 +24419,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
  */
   __Pyx_XDECREF(__pyx_r);
   if (((__pyx_v_s != NULL) != 0)) {
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_s); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -24308,7 +24444,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree_funicodeOrEmpty(const xmlCha
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1294
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1305
  *     return funicode(s) if s is not NULL else ''
  * 
  * cdef object funicode(const_xmlChar* s):             # <<<<<<<<<<<<<<
@@ -24329,7 +24465,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("funicode", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1298
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1309
  *     cdef const_xmlChar* spos
  *     cdef bint is_non_ascii
  *     if python.LXML_UNICODE_STRINGS:             # <<<<<<<<<<<<<<
@@ -24339,7 +24475,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   __pyx_t_1 = (LXML_UNICODE_STRINGS != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1299
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1310
  *     cdef bint is_non_ascii
  *     if python.LXML_UNICODE_STRINGS:
  *         return s.decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -24347,7 +24483,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  *     is_non_ascii = 0
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, strlen(((char *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, strlen(((char *)__pyx_v_s)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
     __pyx_r = ((PyObject *)__pyx_t_2);
     __pyx_t_2 = 0;
@@ -24356,7 +24492,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1300
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1311
  *     if python.LXML_UNICODE_STRINGS:
  *         return s.decode('UTF-8')
  *     spos = s             # <<<<<<<<<<<<<<
@@ -24365,7 +24501,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_spos = __pyx_v_s;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1301
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1312
  *         return s.decode('UTF-8')
  *     spos = s
  *     is_non_ascii = 0             # <<<<<<<<<<<<<<
@@ -24374,7 +24510,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_is_non_ascii = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1302
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1313
  *     spos = s
  *     is_non_ascii = 0
  *     while spos[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -24385,7 +24521,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
     __pyx_t_1 = (((__pyx_v_spos[0]) != '\x00') != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1303
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1314
  *     is_non_ascii = 0
  *     while spos[0] != c'\0':
  *         if spos[0] & 0x80:             # <<<<<<<<<<<<<<
@@ -24395,7 +24531,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
     __pyx_t_1 = (((__pyx_v_spos[0]) & 0x80) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1304
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1315
  *     while spos[0] != c'\0':
  *         if spos[0] & 0x80:
  *             is_non_ascii = 1             # <<<<<<<<<<<<<<
@@ -24404,7 +24540,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
       __pyx_v_is_non_ascii = 1;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1305
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1316
  *         if spos[0] & 0x80:
  *             is_non_ascii = 1
  *             break             # <<<<<<<<<<<<<<
@@ -24416,7 +24552,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1306
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1317
  *             is_non_ascii = 1
  *             break
  *         spos += 1             # <<<<<<<<<<<<<<
@@ -24427,7 +24563,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   }
   __pyx_L5_break:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1307
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1318
  *             break
  *         spos += 1
  *     slen = spos - s             # <<<<<<<<<<<<<<
@@ -24436,7 +24572,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  */
   __pyx_v_slen = (__pyx_v_spos - __pyx_v_s);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1308
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1319
  *         spos += 1
  *     slen = spos - s
  *     if spos[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -24446,7 +24582,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   __pyx_t_1 = (((__pyx_v_spos[0]) != '\x00') != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1309
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1320
  *     slen = spos - s
  *     if spos[0] != c'\0':
  *         slen += tree.xmlStrlen(spos)             # <<<<<<<<<<<<<<
@@ -24458,7 +24594,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1310
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1321
  *     if spos[0] != c'\0':
  *         slen += tree.xmlStrlen(spos)
  *     if is_non_ascii:             # <<<<<<<<<<<<<<
@@ -24468,7 +24604,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   __pyx_t_1 = (__pyx_v_is_non_ascii != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1311
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1322
  *         slen += tree.xmlStrlen(spos)
  *     if is_non_ascii:
  *         return s[:slen].decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -24476,7 +24612,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  * 
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_slen, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
     __pyx_r = ((PyObject *)__pyx_t_2);
     __pyx_t_2 = 0;
@@ -24485,7 +24621,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   }
   __pyx_L8:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1312
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1323
  *     if is_non_ascii:
  *         return s[:slen].decode('UTF-8')
  *     return <bytes>s[:slen]             # <<<<<<<<<<<<<<
@@ -24493,7 +24629,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
  * cdef bytes _utf8(object s):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_slen - 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_2)));
   __pyx_r = ((PyObject *)__pyx_t_2);
@@ -24512,7 +24648,7 @@ static PyObject *__pyx_f_4lxml_5etree_funicode(const xmlChar *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1314
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1325
  *     return <bytes>s[:slen]
  * 
  * cdef bytes _utf8(object s):             # <<<<<<<<<<<<<<
@@ -24535,7 +24671,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_utf8", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1321
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1332
  *     cdef int invalid
  *     cdef bytes utf8_string
  *     if not python.IS_PYTHON3 and type(s) is bytes:             # <<<<<<<<<<<<<<
@@ -24551,7 +24687,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1322
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1333
  *     cdef bytes utf8_string
  *     if not python.IS_PYTHON3 and type(s) is bytes:
  *         utf8_string = <bytes>s             # <<<<<<<<<<<<<<
@@ -24561,7 +24697,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_v_s)));
     __pyx_v_utf8_string = ((PyObject*)__pyx_v_s);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1323
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1334
  *     if not python.IS_PYTHON3 and type(s) is bytes:
  *         utf8_string = <bytes>s
  *         invalid = check_string_utf8(utf8_string)             # <<<<<<<<<<<<<<
@@ -24572,7 +24708,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1324
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1335
  *         utf8_string = <bytes>s
  *         invalid = check_string_utf8(utf8_string)
  *     elif isinstance(s, unicode):             # <<<<<<<<<<<<<<
@@ -24583,7 +24719,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1325
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1336
  *         invalid = check_string_utf8(utf8_string)
  *     elif isinstance(s, unicode):
  *         utf8_string = (<unicode>s).encode('utf8')             # <<<<<<<<<<<<<<
@@ -24592,15 +24728,15 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
  */
     if (unlikely(__pyx_v_s == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_4 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_s))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_s))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-    if (!(likely(PyBytes_CheckExact(((PyObject *)__pyx_t_4)))||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(((PyObject *)__pyx_t_4))->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(((PyObject *)__pyx_t_4)))||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(((PyObject *)__pyx_t_4))->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_utf8_string = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1326
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1337
  *     elif isinstance(s, unicode):
  *         utf8_string = (<unicode>s).encode('utf8')
  *         invalid = check_string_utf8(utf8_string) == -1 # non-XML?             # <<<<<<<<<<<<<<
@@ -24611,7 +24747,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1327
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1338
  *         utf8_string = (<unicode>s).encode('utf8')
  *         invalid = check_string_utf8(utf8_string) == -1 # non-XML?
  *     elif isinstance(s, bytes):             # <<<<<<<<<<<<<<
@@ -24622,25 +24758,25 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_3 = (__pyx_t_1 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1328
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1339
  *         invalid = check_string_utf8(utf8_string) == -1 # non-XML?
  *     elif isinstance(s, bytes):
  *         utf8_string = bytes(s)             # <<<<<<<<<<<<<<
  *         invalid = check_string_utf8(utf8_string)
  *     else:
  */
-    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_s);
     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_s);
     __Pyx_GIVEREF(__pyx_v_s);
-    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyBytes_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyBytes_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __pyx_v_utf8_string = ((PyObject*)__pyx_t_5);
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1329
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1340
  *     elif isinstance(s, bytes):
  *         utf8_string = bytes(s)
  *         invalid = check_string_utf8(utf8_string)             # <<<<<<<<<<<<<<
@@ -24652,33 +24788,33 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1331
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1342
  *         invalid = check_string_utf8(utf8_string)
  *     else:
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)             # <<<<<<<<<<<<<<
  *     if invalid:
  *         raise ValueError(
  */
-    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s____name__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_s)), __pyx_n_s____name__); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_29), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_32), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_4));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
     __pyx_t_4 = 0;
-    __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1332
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1343
  *     else:
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if invalid:             # <<<<<<<<<<<<<<
@@ -24688,23 +24824,23 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   __pyx_t_3 = (__pyx_v_invalid != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1333
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1344
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if invalid:
  *         raise ValueError(             # <<<<<<<<<<<<<<
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  *     return utf8_string
  */
-    __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_31), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_34), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1335
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1346
  *         raise ValueError(
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  *     return utf8_string             # <<<<<<<<<<<<<<
@@ -24730,7 +24866,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8(PyObject *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1337
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1348
  *     return utf8_string
  * 
  * cdef bytes _utf8orNone(object s):             # <<<<<<<<<<<<<<
@@ -24749,7 +24885,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_utf8orNone", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1338
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1349
  * 
  * cdef bytes _utf8orNone(object s):
  *     return _utf8(s) if s is not None else None             # <<<<<<<<<<<<<<
@@ -24759,7 +24895,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   __Pyx_XDECREF(((PyObject *)__pyx_r));
   __pyx_t_2 = (__pyx_v_s != Py_None);
   if ((__pyx_t_2 != 0)) {
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_s)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_s)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_1 = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -24767,7 +24903,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
     __Pyx_INCREF(Py_None);
     __pyx_t_1 = Py_None;
   }
-  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
   goto __pyx_L0;
@@ -24785,7 +24921,7 @@ static PyObject *__pyx_f_4lxml_5etree__utf8orNone(PyObject *__pyx_v_s) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1340
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1351
  *     return _utf8(s) if s is not None else None
  * 
  * cdef bint _isFilePath(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -24803,7 +24939,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   int __pyx_t_4;
   __Pyx_RefNannySetupContext("_isFilePath", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1344
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1355
  *     cdef xmlChar c
  *     # test if it looks like an absolute Unix path or a Windows network path
  *     if c_path[0] == c'/':             # <<<<<<<<<<<<<<
@@ -24813,7 +24949,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   __pyx_t_1 = (((__pyx_v_c_path[0]) == '/') != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1345
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1356
  *     # test if it looks like an absolute Unix path or a Windows network path
  *     if c_path[0] == c'/':
  *         return 1             # <<<<<<<<<<<<<<
@@ -24826,7 +24962,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1347
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1358
  *         return 1
  *     # test if it looks like an absolute Windows path
  *     if (c_path[0] >= c'a' and c_path[0] <= c'z') or \             # <<<<<<<<<<<<<<
@@ -24842,7 +24978,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   }
   if (!__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1348
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1359
  *     # test if it looks like an absolute Windows path
  *     if (c_path[0] >= c'a' and c_path[0] <= c'z') or \
  *             (c_path[0] >= c'A' and c_path[0] <= c'Z'):             # <<<<<<<<<<<<<<
@@ -24862,7 +24998,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1349
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1360
  *     if (c_path[0] >= c'a' and c_path[0] <= c'z') or \
  *             (c_path[0] >= c'A' and c_path[0] <= c'Z'):
  *         if c_path[1] == c':':             # <<<<<<<<<<<<<<
@@ -24872,7 +25008,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     __pyx_t_1 = (((__pyx_v_c_path[1]) == ':') != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1350
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1361
  *             (c_path[0] >= c'A' and c_path[0] <= c'Z'):
  *         if c_path[1] == c':':
  *             return 1             # <<<<<<<<<<<<<<
@@ -24888,7 +25024,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1352
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1363
  *             return 1
  *     # test if it looks like a relative path
  *     while c_path[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -24899,7 +25035,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     __pyx_t_1 = (((__pyx_v_c_path[0]) != '\x00') != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1353
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1364
  *     # test if it looks like a relative path
  *     while c_path[0] != c'\0':
  *         c = c_path[0]             # <<<<<<<<<<<<<<
@@ -24908,7 +25044,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
     __pyx_v_c = (__pyx_v_c_path[0]);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1358
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1369
  *         elif c == c'/':
  *             return 1
  *         elif c == c'\\':             # <<<<<<<<<<<<<<
@@ -24917,7 +25053,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
     switch (__pyx_v_c) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1354
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1365
  *     while c_path[0] != c'\0':
  *         c = c_path[0]
  *         if c == c':':             # <<<<<<<<<<<<<<
@@ -24926,7 +25062,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
       case ':':
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1355
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1366
  *         c = c_path[0]
  *         if c == c':':
  *             return 0             # <<<<<<<<<<<<<<
@@ -24937,7 +25073,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       goto __pyx_L0;
       break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1356
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1367
  *         if c == c':':
  *             return 0
  *         elif c == c'/':             # <<<<<<<<<<<<<<
@@ -24946,7 +25082,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
       case '/':
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1357
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1368
  *             return 0
  *         elif c == c'/':
  *             return 1             # <<<<<<<<<<<<<<
@@ -24957,7 +25093,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       goto __pyx_L0;
       break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1358
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1369
  *         elif c == c'/':
  *             return 1
  *         elif c == c'\\':             # <<<<<<<<<<<<<<
@@ -24966,7 +25102,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
  */
       case '\\':
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1359
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1370
  *             return 1
  *         elif c == c'\\':
  *             return 1             # <<<<<<<<<<<<<<
@@ -24978,7 +25114,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
       break;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1360
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1371
  *         elif c == c'\\':
  *             return 1
  *         c_path += 1             # <<<<<<<<<<<<<<
@@ -24988,7 +25124,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
     __pyx_v_c_path = (__pyx_v_c_path + 1);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1361
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1372
  *             return 1
  *         c_path += 1
  *     return 1             # <<<<<<<<<<<<<<
@@ -25004,7 +25140,7 @@ static int __pyx_f_4lxml_5etree__isFilePath(const xmlChar *__pyx_v_c_path) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1363
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1374
  *     return 1
  * 
  * cdef object _encodeFilename(object filename):             # <<<<<<<<<<<<<<
@@ -25029,7 +25165,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_encodeFilename", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1366
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1377
  *     u"""Make sure a filename is 8-bit encoded (or None).
  *     """
  *     if filename is None:             # <<<<<<<<<<<<<<
@@ -25040,7 +25176,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1367
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1378
  *     """
  *     if filename is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -25054,7 +25190,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1368
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1379
  *     if filename is None:
  *         return None
  *     elif isinstance(filename, bytes):             # <<<<<<<<<<<<<<
@@ -25065,7 +25201,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1369
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1380
  *         return None
  *     elif isinstance(filename, bytes):
  *         return filename             # <<<<<<<<<<<<<<
@@ -25079,7 +25215,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1370
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1381
  *     elif isinstance(filename, bytes):
  *         return filename
  *     elif isinstance(filename, unicode):             # <<<<<<<<<<<<<<
@@ -25090,7 +25226,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1371
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1382
  *         return filename
  *     elif isinstance(filename, unicode):
  *         filename8 = (<unicode>filename).encode('utf8')             # <<<<<<<<<<<<<<
@@ -25099,25 +25235,25 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
     if (unlikely(__pyx_v_filename == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __pyx_v_filename8 = ((PyObject *)__pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1372
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1383
  *     elif isinstance(filename, unicode):
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):             # <<<<<<<<<<<<<<
  *             try:
  *                 return python.PyUnicode_AsEncodedString(
  */
-    __pyx_t_4 = __Pyx_PyObject_AsUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_AsUString(__pyx_v_filename8); if (unlikely((!__pyx_t_4) && PyErr_Occurred())) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_2 = (__pyx_f_4lxml_5etree__isFilePath(((unsigned char *)__pyx_t_4)) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1373
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1384
  *         filename8 = (<unicode>filename).encode('utf8')
  *         if _isFilePath(<unsigned char*>filename8):
  *             try:             # <<<<<<<<<<<<<<
@@ -25131,7 +25267,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
         __Pyx_XGOTREF(__pyx_t_7);
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1374
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1385
  *         if _isFilePath(<unsigned char*>filename8):
  *             try:
  *                 return python.PyUnicode_AsEncodedString(             # <<<<<<<<<<<<<<
@@ -25140,14 +25276,14 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
  */
           __Pyx_XDECREF(__pyx_r);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1375
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1386
  *             try:
  *                 return python.PyUnicode_AsEncodedString(
  *                     filename, _C_FILENAME_ENCODING, NULL)             # <<<<<<<<<<<<<<
  *             except UnicodeEncodeError:
  *                 pass
  */
-          __pyx_t_3 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_v_filename, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1374; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __pyx_t_3 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_v_filename, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
           __Pyx_GOTREF(__pyx_t_3);
           __pyx_r = __pyx_t_3;
           __pyx_t_3 = 0;
@@ -25166,7 +25302,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
         __pyx_L5_error:;
         __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1376
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1387
  *                 return python.PyUnicode_AsEncodedString(
  *                     filename, _C_FILENAME_ENCODING, NULL)
  *             except UnicodeEncodeError:             # <<<<<<<<<<<<<<
@@ -25194,7 +25330,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1378
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1389
  *             except UnicodeEncodeError:
  *                 pass
  *         return filename8             # <<<<<<<<<<<<<<
@@ -25209,18 +25345,18 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1380
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1391
  *         return filename8
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):
  */
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_33), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_36), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
@@ -25237,7 +25373,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilename(PyObject *__pyx_v_filename
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1382
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1393
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):             # <<<<<<<<<<<<<<
@@ -25254,7 +25390,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_decodeFilename", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1385
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1396
  *     u"""Make the filename a unicode string if we are in Py3.
  *     """
  *     return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))             # <<<<<<<<<<<<<<
@@ -25262,7 +25398,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_p
  * cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree__decodeFilenameWithLength(__pyx_v_c_path, xmlStrlen(__pyx_v_c_path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__decodeFilenameWithLength(__pyx_v_c_path, xmlStrlen(__pyx_v_c_path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -25280,7 +25416,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilename(const xmlChar *__pyx_v_c_p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1387
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1398
  *     return _decodeFilenameWithLength(c_path, tree.xmlStrlen(c_path))
  * 
  * cdef object _decodeFilenameWithLength(const_xmlChar* c_path, size_t c_len):             # <<<<<<<<<<<<<<
@@ -25305,7 +25441,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_decodeFilenameWithLength", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1390
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1401
  *     u"""Make the filename a unicode string if we are in Py3.
  *     """
  *     if _isFilePath(c_path):             # <<<<<<<<<<<<<<
@@ -25315,7 +25451,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   __pyx_t_1 = (__pyx_f_4lxml_5etree__isFilePath(__pyx_v_c_path) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1391
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1402
  *     """
  *     if _isFilePath(c_path):
  *         try:             # <<<<<<<<<<<<<<
@@ -25329,7 +25465,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
       __Pyx_XGOTREF(__pyx_t_4);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1392
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1403
  *     if _isFilePath(c_path):
  *         try:
  *             return python.PyUnicode_Decode(             # <<<<<<<<<<<<<<
@@ -25338,14 +25474,14 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  */
         __Pyx_XDECREF(__pyx_r);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1393
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1404
  *         try:
  *             return python.PyUnicode_Decode(
  *                 <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL)             # <<<<<<<<<<<<<<
  *         except UnicodeDecodeError:
  *             pass
  */
-        __pyx_t_5 = ((PyObject *)PyUnicode_Decode(((const char *)__pyx_v_c_path), __pyx_v_c_len, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_5 = ((PyObject *)PyUnicode_Decode(((const char *)__pyx_v_c_path), __pyx_v_c_len, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1403; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __pyx_r = __pyx_t_5;
         __pyx_t_5 = 0;
@@ -25364,7 +25500,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
       __pyx_L4_error:;
       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1394
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1405
  *             return python.PyUnicode_Decode(
  *                 <const_char*>c_path, c_len, _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -25392,7 +25528,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1396
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1407
  *         except UnicodeDecodeError:
  *             pass
  *     try:             # <<<<<<<<<<<<<<
@@ -25406,7 +25542,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __Pyx_XGOTREF(__pyx_t_2);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1397
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1408
  *             pass
  *     try:
  *         return (<unsigned char*>c_path)[:c_len].decode('UTF-8')             # <<<<<<<<<<<<<<
@@ -25414,7 +25550,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  *         # this is a stupid fallback, but it might still work...
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_5 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1397; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+      __pyx_t_5 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1408; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
       __pyx_r = ((PyObject *)__pyx_t_5);
       __pyx_t_5 = 0;
@@ -25433,7 +25569,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __pyx_L12_error:;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1398
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1409
  *     try:
  *         return (<unsigned char*>c_path)[:c_len].decode('UTF-8')
  *     except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -25443,12 +25579,12 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
     __pyx_t_6 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
     if (__pyx_t_6) {
       __Pyx_AddTraceback("lxml.etree._decodeFilenameWithLength", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1398; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1409; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_8);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1400
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1411
  *     except UnicodeDecodeError:
  *         # this is a stupid fallback, but it might still work...
  *         return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')             # <<<<<<<<<<<<<<
@@ -25456,7 +25592,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
  * cdef object _encodeFilenameUTF8(object filename):
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_9 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, __pyx_k__replace, PyUnicode_DecodeLatin1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1400; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
+      __pyx_t_9 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)__pyx_v_c_path)), 0, __pyx_v_c_len, NULL, __pyx_k__replace, PyUnicode_DecodeLatin1)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1411; __pyx_clineno = __LINE__; goto __pyx_L14_except_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
       __pyx_r = ((PyObject *)__pyx_t_9);
       __pyx_t_9 = 0;
@@ -25504,7 +25640,7 @@ static PyObject *__pyx_f_4lxml_5etree__decodeFilenameWithLength(const xmlChar *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1402
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1413
  *         return (<unsigned char*>c_path)[:c_len].decode('latin-1', 'replace')
  * 
  * cdef object _encodeFilenameUTF8(object filename):             # <<<<<<<<<<<<<<
@@ -25539,7 +25675,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __Pyx_RefNannySetupContext("_encodeFilenameUTF8", 0);
   __Pyx_INCREF(__pyx_v_filename);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1407
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1418
  *     """
  *     cdef char* c_filename
  *     if filename is None:             # <<<<<<<<<<<<<<
@@ -25550,7 +25686,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1408
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1419
  *     cdef char* c_filename
  *     if filename is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -25564,7 +25700,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1409
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1420
  *     if filename is None:
  *         return None
  *     elif isinstance(filename, bytes):             # <<<<<<<<<<<<<<
@@ -25575,7 +25711,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1410
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1421
  *         return None
  *     elif isinstance(filename, bytes):
  *         if not check_string_utf8(<bytes>filename):             # <<<<<<<<<<<<<<
@@ -25585,7 +25721,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
     __pyx_t_1 = ((!(__pyx_f_4lxml_5etree_check_string_utf8(((PyObject*)__pyx_v_filename)) != 0)) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1412
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1423
  *         if not check_string_utf8(<bytes>filename):
  *             # plain ASCII!
  *             return filename             # <<<<<<<<<<<<<<
@@ -25600,7 +25736,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1413
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1424
  *             # plain ASCII!
  *             return filename
  *         c_filename = _cstr(<bytes>filename)             # <<<<<<<<<<<<<<
@@ -25609,7 +25745,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
     __pyx_v_c_filename = PyBytes_AS_STRING(__pyx_v_filename);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1414
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1425
  *             return filename
  *         c_filename = _cstr(<bytes>filename)
  *         try:             # <<<<<<<<<<<<<<
@@ -25623,7 +25759,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __Pyx_XGOTREF(__pyx_t_5);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1417
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1428
  *             # try to decode with default encoding
  *             filename = python.PyUnicode_Decode(
  *                 c_filename, len(<bytes>filename),             # <<<<<<<<<<<<<<
@@ -25632,21 +25768,20 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
         if (unlikely(__pyx_v_filename == Py_None)) {
           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1417; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1428; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         }
-        __pyx_t_6 = PyBytes_GET_SIZE(((PyObject *)((PyObject*)__pyx_v_filename))); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1417; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_6 = PyBytes_GET_SIZE(((PyObject *)((PyObject*)__pyx_v_filename))); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1428; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1418
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1429
  *             filename = python.PyUnicode_Decode(
  *                 c_filename, len(<bytes>filename),
  *                 _C_FILENAME_ENCODING, NULL)             # <<<<<<<<<<<<<<
  *         except UnicodeDecodeError as decode_exc:
  *             try:
  */
-        __pyx_t_7 = ((PyObject *)PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_6, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1416; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_7 = ((PyObject *)PyUnicode_Decode(__pyx_v_c_filename, __pyx_t_6, __pyx_v_4lxml_5etree__C_FILENAME_ENCODING, NULL)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(__pyx_t_7);
-        __Pyx_DECREF(__pyx_v_filename);
-        __pyx_v_filename = __pyx_t_7;
+        __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_7);
         __pyx_t_7 = 0;
       }
       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -25656,7 +25791,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __pyx_L5_error:;
       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1419
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1430
  *                 c_filename, len(<bytes>filename),
  *                 _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError as decode_exc:             # <<<<<<<<<<<<<<
@@ -25666,14 +25801,14 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
       __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
       if (__pyx_t_8) {
         __Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1419; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+        if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_9, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1430; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_INCREF(__pyx_t_9);
         __pyx_v_decode_exc = __pyx_t_9;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1420
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1431
  *                 _C_FILENAME_ENCODING, NULL)
  *         except UnicodeDecodeError as decode_exc:
  *             try:             # <<<<<<<<<<<<<<
@@ -25687,7 +25822,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __Pyx_XGOTREF(__pyx_t_13);
           /*try:*/ {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1422
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1433
  *             try:
  *                 # try if it's proper UTF-8
  *                 (<bytes>filename).decode('utf8')             # <<<<<<<<<<<<<<
@@ -25696,13 +25831,13 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  */
             if (unlikely(__pyx_v_filename == Py_None)) {
               PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-              {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1422; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+              {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
             }
-            __pyx_t_14 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_filename)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1422; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
+            __pyx_t_14 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_filename)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L15_error;}
             __Pyx_GOTREF(((PyObject *)__pyx_t_14));
             __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1423
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1434
  *                 # try if it's proper UTF-8
  *                 (<bytes>filename).decode('utf8')
  *                 return filename             # <<<<<<<<<<<<<<
@@ -25730,7 +25865,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __pyx_L15_error:;
           __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1424
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1435
  *                 (<bytes>filename).decode('utf8')
  *                 return filename
  *             except UnicodeDecodeError:             # <<<<<<<<<<<<<<
@@ -25740,12 +25875,12 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
           __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
           if (__pyx_t_8) {
             __Pyx_AddTraceback("lxml.etree._encodeFilenameUTF8", __pyx_clineno, __pyx_lineno, __pyx_filename);
-            if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
+            if (__Pyx_GetException(&__pyx_t_14, &__pyx_t_15, &__pyx_t_16) < 0) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1435; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
             __Pyx_GOTREF(__pyx_t_14);
             __Pyx_GOTREF(__pyx_t_15);
             __Pyx_GOTREF(__pyx_t_16);
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1425
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1436
  *                 return filename
  *             except UnicodeDecodeError:
  *                 raise decode_exc # otherwise re-raise original exception             # <<<<<<<<<<<<<<
@@ -25753,7 +25888,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
  *         return (<unicode>filename).encode('utf8')
  */
             __Pyx_Raise(__pyx_v_decode_exc, 0, 0, 0);
-            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1425; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
+            {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L17_except_error;}
             __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
             __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
             __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
@@ -25800,7 +25935,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1426
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1437
  *             except UnicodeDecodeError:
  *                 raise decode_exc # otherwise re-raise original exception
  *     if isinstance(filename, unicode):             # <<<<<<<<<<<<<<
@@ -25811,7 +25946,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1427
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1438
  *                 raise decode_exc # otherwise re-raise original exception
  *     if isinstance(filename, unicode):
  *         return (<unicode>filename).encode('utf8')             # <<<<<<<<<<<<<<
@@ -25821,9 +25956,9 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
     __Pyx_XDECREF(__pyx_r);
     if (unlikely(__pyx_v_filename == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "encode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_10 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_10 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_filename))); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_10));
     __pyx_r = ((PyObject *)__pyx_t_10);
     __pyx_t_10 = 0;
@@ -25832,18 +25967,18 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1429
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1440
  *         return (<unicode>filename).encode('utf8')
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef tuple _getNsTag(tag):
  */
-    __pyx_t_10 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_34), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_10 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_37), NULL); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_10);
     __Pyx_Raise(__pyx_t_10, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L25:;
 
@@ -25866,7 +26001,7 @@ static PyObject *__pyx_f_4lxml_5etree__encodeFilenameUTF8(PyObject *__pyx_v_file
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1431
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1442
  *         raise TypeError("Argument must be string or unicode.")
  * 
  * cdef tuple _getNsTag(tag):             # <<<<<<<<<<<<<<
@@ -25883,7 +26018,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *__pyx_v_tag) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getNsTag", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1435
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1446
  *     Return None for NS uri if no namespace URI provided.
  *     """
  *     return __getNsTag(tag, 0)             # <<<<<<<<<<<<<<
@@ -25891,7 +26026,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *__pyx_v_tag) {
  * cdef tuple _getNsTagWithEmptyNs(tag):
  */
   __Pyx_XDECREF(((PyObject *)__pyx_r));
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -25909,7 +26044,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTag(PyObject *__pyx_v_tag) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1437
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1448
  *     return __getNsTag(tag, 0)
  * 
  * cdef tuple _getNsTagWithEmptyNs(tag):             # <<<<<<<<<<<<<<
@@ -25926,7 +26061,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *__pyx_v_tag
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getNsTagWithEmptyNs", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1442
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1453
  *     part is '{}'.
  *     """
  *     return __getNsTag(tag, 1)             # <<<<<<<<<<<<<<
@@ -25934,7 +26069,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *__pyx_v_tag
  * cdef tuple __getNsTag(tag, bint empty_ns):
  */
   __Pyx_XDECREF(((PyObject *)__pyx_r));
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___getNsTag(__pyx_v_tag, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -25952,7 +26087,7 @@ static PyObject *__pyx_f_4lxml_5etree__getNsTagWithEmptyNs(PyObject *__pyx_v_tag
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1444
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1455
  *     return __getNsTag(tag, 1)
  * 
  * cdef tuple __getNsTag(tag, bint empty_ns):             # <<<<<<<<<<<<<<
@@ -25978,7 +26113,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __Pyx_RefNannySetupContext("__getNsTag", 0);
   __Pyx_INCREF(__pyx_v_tag);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1449
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1460
  *     cdef Py_ssize_t taglen
  *     cdef Py_ssize_t nslen
  *     cdef bytes ns = None             # <<<<<<<<<<<<<<
@@ -25988,7 +26123,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __Pyx_INCREF(Py_None);
   __pyx_v_ns = ((PyObject*)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1451
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1462
  *     cdef bytes ns = None
  *     # _isString() is much faster than isinstance()
  *     if not _isString(tag) and isinstance(tag, QName):             # <<<<<<<<<<<<<<
@@ -26004,7 +26139,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1452
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1463
  *     # _isString() is much faster than isinstance()
  *     if not _isString(tag) and isinstance(tag, QName):
  *         tag = (<QName>tag).text             # <<<<<<<<<<<<<<
@@ -26013,27 +26148,25 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     __pyx_t_4 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_tag)->text);
     __Pyx_INCREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_tag);
-    __pyx_v_tag = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1453
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1464
  *     if not _isString(tag) and isinstance(tag, QName):
  *         tag = (<QName>tag).text
  *     tag = _utf8(tag)             # <<<<<<<<<<<<<<
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':
  */
-  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_tag)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_tag)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_v_tag);
-  __pyx_v_tag = __pyx_t_4;
+  __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1454
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1465
  *         tag = (<QName>tag).text
  *     tag = _utf8(tag)
  *     c_tag = _cstr(tag)             # <<<<<<<<<<<<<<
@@ -26042,7 +26175,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
   __pyx_v_c_tag = PyBytes_AS_STRING(__pyx_v_tag);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1455
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1466
  *     tag = _utf8(tag)
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':             # <<<<<<<<<<<<<<
@@ -26052,7 +26185,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_t_3 = (((__pyx_v_c_tag[0]) == '{') != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1456
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1467
  *     c_tag = _cstr(tag)
  *     if c_tag[0] == c'{':
  *         c_tag += 1             # <<<<<<<<<<<<<<
@@ -26061,7 +26194,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
       __pyx_v_c_tag = (__pyx_v_c_tag + 1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1457
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1468
  *     if c_tag[0] == c'{':
  *         c_tag += 1
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')             # <<<<<<<<<<<<<<
@@ -26070,7 +26203,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     __pyx_v_c_ns_end = strchr(__pyx_v_c_tag, '}');
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1458
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1469
  *         c_tag += 1
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')
  *         if c_ns_end is NULL:             # <<<<<<<<<<<<<<
@@ -26080,20 +26213,20 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_3 = ((__pyx_v_c_ns_end == NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1459
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1470
  *         c_ns_end = cstring_h.strchr(c_tag, c'}')
  *         if c_ns_end is NULL:
  *             raise ValueError, u"Invalid tag name"             # <<<<<<<<<<<<<<
  *         nslen  = c_ns_end - c_tag
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  */
-      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_35), 0, 0);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_38), 0, 0);
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1460
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1471
  *         if c_ns_end is NULL:
  *             raise ValueError, u"Invalid tag name"
  *         nslen  = c_ns_end - c_tag             # <<<<<<<<<<<<<<
@@ -26102,7 +26235,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     __pyx_v_nslen = (__pyx_v_c_ns_end - __pyx_v_c_tag);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1461
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1472
  *             raise ValueError, u"Invalid tag name"
  *         nslen  = c_ns_end - c_tag
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2             # <<<<<<<<<<<<<<
@@ -26111,7 +26244,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  */
     __pyx_v_taglen = ((PyBytes_GET_SIZE(__pyx_v_tag) - __pyx_v_nslen) - 2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1462
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1473
  *         nslen  = c_ns_end - c_tag
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  *         if taglen == 0:             # <<<<<<<<<<<<<<
@@ -26121,20 +26254,20 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_3 = ((__pyx_v_taglen == 0) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1463
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1474
  *         taglen = python.PyBytes_GET_SIZE(tag) - nslen - 2
  *         if taglen == 0:
  *             raise ValueError, u"Empty tag name"             # <<<<<<<<<<<<<<
  *         if nslen > 0:
  *             ns = <bytes>c_tag[:nslen]
  */
-      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_36), 0, 0);
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_39), 0, 0);
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1464
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1475
  *         if taglen == 0:
  *             raise ValueError, u"Empty tag name"
  *         if nslen > 0:             # <<<<<<<<<<<<<<
@@ -26144,23 +26277,22 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_3 = ((__pyx_v_nslen > 0) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1465
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1476
  *             raise ValueError, u"Empty tag name"
  *         if nslen > 0:
  *             ns = <bytes>c_tag[:nslen]             # <<<<<<<<<<<<<<
  *         elif empty_ns:
  *             ns = b''
  */
-      __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_tag + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_tag + 0, __pyx_v_nslen - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_4)));
-      __Pyx_DECREF(((PyObject *)__pyx_v_ns));
-      __pyx_v_ns = ((PyObject*)__pyx_t_4);
+      __Pyx_DECREF_SET(__pyx_v_ns, ((PyObject*)__pyx_t_4));
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       goto __pyx_L7;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1466
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1477
  *         if nslen > 0:
  *             ns = <bytes>c_tag[:nslen]
  *         elif empty_ns:             # <<<<<<<<<<<<<<
@@ -26170,7 +26302,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
     __pyx_t_3 = (__pyx_v_empty_ns != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1467
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1478
  *             ns = <bytes>c_tag[:nslen]
  *         elif empty_ns:
  *             ns = b''             # <<<<<<<<<<<<<<
@@ -26178,29 +26310,27 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  */
       __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
-      __Pyx_DECREF(((PyObject *)__pyx_v_ns));
-      __pyx_v_ns = __pyx_kp_b_25;
+      __Pyx_DECREF_SET(__pyx_v_ns, __pyx_kp_b_25);
       goto __pyx_L7;
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1468
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1479
  *         elif empty_ns:
  *             ns = b''
  *         tag = <bytes>c_ns_end[1:taglen+1]             # <<<<<<<<<<<<<<
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  *         raise ValueError, u"Empty tag name"
  */
-    __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_ns_end + 1, (__pyx_v_taglen + 1) - 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_ns_end + 1, (__pyx_v_taglen + 1) - 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1479; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_4)));
-    __Pyx_DECREF(__pyx_v_tag);
-    __pyx_v_tag = ((PyObject *)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_tag, ((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     goto __pyx_L4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1469
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1480
  *             ns = b''
  *         tag = <bytes>c_ns_end[1:taglen+1]
  *     elif python.PyBytes_GET_SIZE(tag) == 0:             # <<<<<<<<<<<<<<
@@ -26210,20 +26340,20 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   __pyx_t_3 = ((PyBytes_GET_SIZE(__pyx_v_tag) == 0) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1470
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1481
  *         tag = <bytes>c_ns_end[1:taglen+1]
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  *         raise ValueError, u"Empty tag name"             # <<<<<<<<<<<<<<
  *     return ns, tag
  * 
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_36), 0, 0);
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_39), 0, 0);
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1471
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1482
  *     elif python.PyBytes_GET_SIZE(tag) == 0:
  *         raise ValueError, u"Empty tag name"
  *     return ns, tag             # <<<<<<<<<<<<<<
@@ -26231,7 +26361,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
  * cdef inline int _pyXmlNameIsValid(name_utf8):
  */
   __Pyx_XDECREF(((PyObject *)__pyx_r));
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_ns));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_ns));
@@ -26257,7 +26387,7 @@ static PyObject *__pyx_f_4lxml_5etree___getNsTag(PyObject *__pyx_v_tag, int __py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1473
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1484
  *     return ns, tag
  * 
  * cdef inline int _pyXmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -26270,7 +26400,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyXmlNameIsValid(PyObject *__pyx_
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_pyXmlNameIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1474
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1485
  * 
  * cdef inline int _pyXmlNameIsValid(name_utf8):
  *     return _xmlNameIsValid(_xcstr(name_utf8))             # <<<<<<<<<<<<<<
@@ -26286,7 +26416,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyXmlNameIsValid(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1476
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1487
  *     return _xmlNameIsValid(_xcstr(name_utf8))
  * 
  * cdef inline int _pyHtmlNameIsValid(name_utf8):             # <<<<<<<<<<<<<<
@@ -26299,7 +26429,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyHtmlNameIsValid(PyObject *__pyx
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_pyHtmlNameIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1477
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1488
  * 
  * cdef inline int _pyHtmlNameIsValid(name_utf8):
  *     return _htmlNameIsValid(_xcstr(name_utf8))             # <<<<<<<<<<<<<<
@@ -26315,7 +26445,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__pyHtmlNameIsValid(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1479
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1490
  *     return _htmlNameIsValid(_xcstr(name_utf8))
  * 
  * cdef inline int _xmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -26328,7 +26458,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__xmlNameIsValid(const xmlChar *__p
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_xmlNameIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1480
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1491
  * 
  * cdef inline int _xmlNameIsValid(const_xmlChar* c_name):
  *     return tree.xmlValidateNCName(c_name, 0) == 0             # <<<<<<<<<<<<<<
@@ -26344,7 +26474,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__xmlNameIsValid(const xmlChar *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1482
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1493
  *     return tree.xmlValidateNCName(c_name, 0) == 0
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -26360,7 +26490,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_htmlNameIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1483
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1494
  * 
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):
  *     if c_name is NULL or c_name[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -26376,7 +26506,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1484
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1495
  * cdef int _htmlNameIsValid(const_xmlChar* c_name):
  *     if c_name is NULL or c_name[0] == c'\0':
  *         return 0             # <<<<<<<<<<<<<<
@@ -26389,7 +26519,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1485
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1496
  *     if c_name is NULL or c_name[0] == c'\0':
  *         return 0
  *     while c_name[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -26400,7 +26530,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
     __pyx_t_3 = (((__pyx_v_c_name[0]) != '\x00') != 0);
     if (!__pyx_t_3) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1486
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1497
  *         return 0
  *     while c_name[0] != c'\0':
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':             # <<<<<<<<<<<<<<
@@ -26421,7 +26551,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
       case '<':
       case '>':
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1487
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1498
  *     while c_name[0] != c'\0':
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':
  *             return 0             # <<<<<<<<<<<<<<
@@ -26433,7 +26563,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
       break;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1488
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1499
  *         if c_name[0] in b'&<>/"\'\t\n\x0B\x0C\r ':
  *             return 0
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -26443,7 +26573,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
     __pyx_v_c_name = (__pyx_v_c_name + 1);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1489
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1500
  *             return 0
  *         c_name += 1
  *     return 1             # <<<<<<<<<<<<<<
@@ -26459,7 +26589,7 @@ static int __pyx_f_4lxml_5etree__htmlNameIsValid(const xmlChar *__pyx_v_c_name)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1491
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1502
  *     return 1
  * 
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):             # <<<<<<<<<<<<<<
@@ -26476,7 +26606,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("_characterReferenceIsValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1493
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1504
  * cdef bint _characterReferenceIsValid(const_xmlChar* c_name):
  *     cdef bint is_hex
  *     if c_name[0] == c'x':             # <<<<<<<<<<<<<<
@@ -26486,7 +26616,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   __pyx_t_1 = (((__pyx_v_c_name[0]) == 'x') != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1494
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1505
  *     cdef bint is_hex
  *     if c_name[0] == c'x':
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -26495,7 +26625,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
  */
     __pyx_v_c_name = (__pyx_v_c_name + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1495
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1506
  *     if c_name[0] == c'x':
  *         c_name += 1
  *         is_hex = 1             # <<<<<<<<<<<<<<
@@ -26507,7 +26637,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1497
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1508
  *         is_hex = 1
  *     else:
  *         is_hex = 0             # <<<<<<<<<<<<<<
@@ -26518,7 +26648,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1498
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1509
  *     else:
  *         is_hex = 0
  *     if c_name[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -26528,7 +26658,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   __pyx_t_1 = (((__pyx_v_c_name[0]) == '\x00') != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1499
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1510
  *         is_hex = 0
  *     if c_name[0] == c'\0':
  *         return 0             # <<<<<<<<<<<<<<
@@ -26541,7 +26671,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1500
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1511
  *     if c_name[0] == c'\0':
  *         return 0
  *     while c_name[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -26552,7 +26682,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     __pyx_t_1 = (((__pyx_v_c_name[0]) != '\x00') != 0);
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1501
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1512
  *         return 0
  *     while c_name[0] != c'\0':
  *         if c_name[0] < c'0' or c_name[0] > c'9':             # <<<<<<<<<<<<<<
@@ -26568,7 +26698,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     }
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1502
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1513
  *     while c_name[0] != c'\0':
  *         if c_name[0] < c'0' or c_name[0] > c'9':
  *             if not is_hex:             # <<<<<<<<<<<<<<
@@ -26578,7 +26708,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
       __pyx_t_3 = ((!(__pyx_v_is_hex != 0)) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1503
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1514
  *         if c_name[0] < c'0' or c_name[0] > c'9':
  *             if not is_hex:
  *                 return 0             # <<<<<<<<<<<<<<
@@ -26591,7 +26721,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
       }
       __pyx_L8:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1504
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1515
  *             if not is_hex:
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):             # <<<<<<<<<<<<<<
@@ -26605,7 +26735,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
       __pyx_t_1 = ((!(__pyx_t_3 != 0)) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1505
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1516
  *                 return 0
  *             if not (c'a' <= c_name[0] <= c'f'):
  *                 if not (c'A' <= c_name[0] <= c'F'):             # <<<<<<<<<<<<<<
@@ -26619,7 +26749,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
         __pyx_t_3 = ((!(__pyx_t_1 != 0)) != 0);
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1506
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1517
  *             if not (c'a' <= c_name[0] <= c'f'):
  *                 if not (c'A' <= c_name[0] <= c'F'):
  *                     return 0             # <<<<<<<<<<<<<<
@@ -26638,7 +26768,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1507
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1518
  *                 if not (c'A' <= c_name[0] <= c'F'):
  *                     return 0
  *         c_name += 1             # <<<<<<<<<<<<<<
@@ -26648,7 +26778,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
     __pyx_v_c_name = (__pyx_v_c_name + 1);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1508
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1519
  *                     return 0
  *         c_name += 1
  *     return 1             # <<<<<<<<<<<<<<
@@ -26664,7 +26794,7 @@ static int __pyx_f_4lxml_5etree__characterReferenceIsValid(const xmlChar *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1510
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1521
  *     return 1
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -26683,7 +26813,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_tagValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1511
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1522
  * 
  * cdef int _tagValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -26693,7 +26823,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1513
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1524
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError("Invalid tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -26702,29 +26832,29 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
  */
     if (unlikely(__pyx_v_tag_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_37), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_40), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1514
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1525
  *         raise ValueError("Invalid tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0             # <<<<<<<<<<<<<<
@@ -26746,7 +26876,7 @@ static int __pyx_f_4lxml_5etree__tagValidOrRaise(PyObject *__pyx_v_tag_utf) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1516
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1527
  *     return 0
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -26765,7 +26895,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_htmlTagValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1517
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1528
  * 
  * cdef int _htmlTagValidOrRaise(tag_utf) except -1:
  *     if not _pyHtmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -26775,7 +26905,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyHtmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1519
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1530
  *     if not _pyHtmlNameIsValid(tag_utf):
  *         raise ValueError("Invalid HTML tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -26784,29 +26914,29 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
  */
     if (unlikely(__pyx_v_tag_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_38), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_41), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1520
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1531
  *         raise ValueError("Invalid HTML tag name %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0             # <<<<<<<<<<<<<<
@@ -26828,7 +26958,7 @@ static int __pyx_f_4lxml_5etree__htmlTagValidOrRaise(PyObject *__pyx_v_tag_utf)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1522
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1533
  *     return 0
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:             # <<<<<<<<<<<<<<
@@ -26847,7 +26977,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_attributeValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1523
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1534
  * 
  * cdef int _attributeValidOrRaise(name_utf) except -1:
  *     if not _pyXmlNameIsValid(name_utf):             # <<<<<<<<<<<<<<
@@ -26857,7 +26987,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_name_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1525
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1536
  *     if not _pyXmlNameIsValid(name_utf):
  *         raise ValueError("Invalid attribute name %r" %
  *                          (<bytes>name_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -26866,29 +26996,29 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
  */
     if (unlikely(__pyx_v_name_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_name_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_name_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_39), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_42), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1526
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1537
  *         raise ValueError("Invalid attribute name %r" %
  *                          (<bytes>name_utf).decode('utf8'))
  *     return 0             # <<<<<<<<<<<<<<
@@ -26910,7 +27040,7 @@ static int __pyx_f_4lxml_5etree__attributeValidOrRaise(PyObject *__pyx_v_name_ut
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1528
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1539
  *     return 0
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:             # <<<<<<<<<<<<<<
@@ -26929,7 +27059,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_prefixValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1529
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1540
  * 
  * cdef int _prefixValidOrRaise(tag_utf) except -1:
  *     if not _pyXmlNameIsValid(tag_utf):             # <<<<<<<<<<<<<<
@@ -26939,7 +27069,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   __pyx_t_1 = ((!(__pyx_f_4lxml_5etree__pyXmlNameIsValid(__pyx_v_tag_utf) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1531
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1542
  *     if not _pyXmlNameIsValid(tag_utf):
  *         raise ValueError("Invalid namespace prefix %r" %
  *                          (<bytes>tag_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -26948,29 +27078,29 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
  */
     if (unlikely(__pyx_v_tag_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_40), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_43), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1532
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1543
  *         raise ValueError("Invalid namespace prefix %r" %
  *                          (<bytes>tag_utf).decode('utf8'))
  *     return 0             # <<<<<<<<<<<<<<
@@ -26992,7 +27122,7 @@ static int __pyx_f_4lxml_5etree__prefixValidOrRaise(PyObject *__pyx_v_tag_utf) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1534
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1545
  *     return 0
  * 
  * cdef int _uriValidOrRaise(uri_utf) except -1:             # <<<<<<<<<<<<<<
@@ -27012,7 +27142,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_uriValidOrRaise", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1535
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1546
  * 
  * cdef int _uriValidOrRaise(uri_utf) except -1:
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))             # <<<<<<<<<<<<<<
@@ -27021,7 +27151,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  */
   __pyx_v_c_uri = xmlParseURI(PyBytes_AS_STRING(__pyx_v_uri_utf));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1536
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1547
  * cdef int _uriValidOrRaise(uri_utf) except -1:
  *     cdef uri.xmlURI* c_uri = uri.xmlParseURI(_cstr(uri_utf))
  *     if c_uri is NULL:             # <<<<<<<<<<<<<<
@@ -27031,7 +27161,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   __pyx_t_1 = ((__pyx_v_c_uri == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1538
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1549
  *     if c_uri is NULL:
  *         raise ValueError("Invalid namespace URI %r" %
  *                          (<bytes>uri_utf).decode('utf8'))             # <<<<<<<<<<<<<<
@@ -27040,29 +27170,29 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  */
     if (unlikely(__pyx_v_uri_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_uri_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_uri_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_41), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_44), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_t_3));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
-    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1539
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1550
  *         raise ValueError("Invalid namespace URI %r" %
  *                          (<bytes>uri_utf).decode('utf8'))
  *     uri.xmlFreeURI(c_uri)             # <<<<<<<<<<<<<<
@@ -27071,7 +27201,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
  */
   xmlFreeURI(__pyx_v_c_uri);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1540
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1551
  *                          (<bytes>uri_utf).decode('utf8'))
  *     uri.xmlFreeURI(c_uri)
  *     return 0             # <<<<<<<<<<<<<<
@@ -27093,7 +27223,7 @@ static int __pyx_f_4lxml_5etree__uriValidOrRaise(PyObject *__pyx_v_uri_utf) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1542
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1553
  *     return 0
  * 
  * cdef inline object _namespacedName(xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -27110,7 +27240,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__namespacedName(xmlNode *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_namespacedName", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1543
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1554
  * 
  * cdef inline object _namespacedName(xmlNode* c_node):
  *     return _namespacedNameFromNsName(_getNs(c_node), c_node.name)             # <<<<<<<<<<<<<<
@@ -27118,7 +27248,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__namespacedName(xmlNode *__p
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(_getNs(__pyx_v_c_node), __pyx_v_c_node->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(_getNs(__pyx_v_c_node), __pyx_v_c_node->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -27136,7 +27266,7 @@ static CYTHON_INLINE PyObject *__pyx_f_4lxml_5etree__namespacedName(xmlNode *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1545
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1556
  *     return _namespacedNameFromNsName(_getNs(c_node), c_node.name)
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):             # <<<<<<<<<<<<<<
@@ -27156,7 +27286,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_namespacedNameFromNsName", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1546
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1557
  * 
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  *     if href is NULL:             # <<<<<<<<<<<<<<
@@ -27166,7 +27296,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   __pyx_t_1 = ((__pyx_v_href == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1547
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1558
  * cdef object _namespacedNameFromNsName(const_xmlChar* href, const_xmlChar* name):
  *     if href is NULL:
  *         return funicode(name)             # <<<<<<<<<<<<<<
@@ -27174,7 +27304,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -27182,7 +27312,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1548
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1559
  *     if href is NULL:
  *         return funicode(name)
  *     elif python.LXML_UNICODE_STRINGS and python.PY_VERSION_HEX >= 0x02060000:             # <<<<<<<<<<<<<<
@@ -27197,7 +27327,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1549
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1560
  *         return funicode(name)
  *     elif python.LXML_UNICODE_STRINGS and python.PY_VERSION_HEX >= 0x02060000:
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)             # <<<<<<<<<<<<<<
@@ -27205,7 +27335,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = ((PyObject *)PyUnicode_FromFormat(__pyx_k_42, __pyx_v_href, __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)PyUnicode_FromFormat(__pyx_k_45, __pyx_v_href, __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -27214,19 +27344,19 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1551
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1562
  *         return python.PyUnicode_FromFormat("{%s}%s", href, name)
  *     else:
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)             # <<<<<<<<<<<<<<
  *         if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)):
  *             return (<bytes>s).decode('utf8')
  */
-    __pyx_t_2 = ((PyObject *)PyBytes_FromFormat(__pyx_k_42, __pyx_v_href, __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)PyBytes_FromFormat(__pyx_k_45, __pyx_v_href, __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_s = ((PyObject*)__pyx_t_2);
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1552
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1563
  *     else:
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  *         if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)):             # <<<<<<<<<<<<<<
@@ -27241,7 +27371,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
     }
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1553
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1564
  *         s = python.PyBytes_FromFormat("{%s}%s", href, name)
  *         if python.LXML_UNICODE_STRINGS or isutf8(_xcstr(s)):
  *             return (<bytes>s).decode('utf8')             # <<<<<<<<<<<<<<
@@ -27251,9 +27381,9 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
       __Pyx_XDECREF(__pyx_r);
       if (unlikely(((PyObject *)__pyx_v_s) == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_s)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_s)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_2));
       __pyx_r = ((PyObject *)__pyx_t_2);
       __pyx_t_2 = 0;
@@ -27262,7 +27392,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1555
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1566
  *             return (<bytes>s).decode('utf8')
  *         else:
  *             return s             # <<<<<<<<<<<<<<
@@ -27291,7 +27421,7 @@ static PyObject *__pyx_f_4lxml_5etree__namespacedNameFromNsName(const xmlChar *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1557
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1568
  *             return s
  * 
  * cdef _getFilenameForFile(source):             # <<<<<<<<<<<<<<
@@ -27314,7 +27444,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
   CYTHON_UNUSED int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_getFilenameForFile", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1563
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1574
  *     """
  *     # urllib2 provides a geturl() method
  *     try:             # <<<<<<<<<<<<<<
@@ -27328,7 +27458,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1564
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1575
  *     # urllib2 provides a geturl() method
  *     try:
  *         return source.geturl()             # <<<<<<<<<<<<<<
@@ -27336,9 +27466,9 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *         pass
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__geturl); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__geturl); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __pyx_r = __pyx_t_5;
@@ -27359,7 +27489,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1565
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1576
  *     try:
  *         return source.geturl()
  *     except:             # <<<<<<<<<<<<<<
@@ -27378,7 +27508,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __pyx_L10_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1568
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1579
  *         pass
  *     # file instances have a name attribute
  *     try:             # <<<<<<<<<<<<<<
@@ -27392,19 +27522,19 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_1);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1569
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1580
  *     # file instances have a name attribute
  *     try:
  *         filename = source.name             # <<<<<<<<<<<<<<
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  */
-      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1569; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_v_filename = __pyx_t_5;
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1570
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1581
  *     try:
  *         filename = source.name
  *         if _isString(filename):             # <<<<<<<<<<<<<<
@@ -27414,7 +27544,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
       __pyx_t_6 = (_isString(__pyx_v_filename) != 0);
       if (__pyx_t_6) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1571
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1582
  *         filename = source.name
  *         if _isString(filename):
  *             return os_path_abspath(filename)             # <<<<<<<<<<<<<<
@@ -27422,12 +27552,12 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *         pass
  */
         __Pyx_XDECREF(__pyx_r);
-        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1571; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1582; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_filename);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_filename);
         __Pyx_GIVEREF(__pyx_v_filename);
-        __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1571; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
+        __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1582; __pyx_clineno = __LINE__; goto __pyx_L11_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
         __pyx_r = __pyx_t_4;
@@ -27451,7 +27581,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1572
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1583
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  *     except:             # <<<<<<<<<<<<<<
@@ -27470,7 +27600,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __pyx_L18_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1575
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1586
  *         pass
  *     # gzip file instances have a filename attribute (before Py3k)
  *     try:             # <<<<<<<<<<<<<<
@@ -27484,20 +27614,19 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1576
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1587
  *     # gzip file instances have a filename attribute (before Py3k)
  *     try:
  *         filename = source.filename             # <<<<<<<<<<<<<<
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__filename); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_source, __pyx_n_s__filename); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_XDECREF(__pyx_v_filename);
-      __pyx_v_filename = __pyx_t_4;
+      __Pyx_XDECREF_SET(__pyx_v_filename, __pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1577
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1588
  *     try:
  *         filename = source.filename
  *         if _isString(filename):             # <<<<<<<<<<<<<<
@@ -27507,7 +27636,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
       __pyx_t_6 = (_isString(__pyx_v_filename) != 0);
       if (__pyx_t_6) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1578
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1589
  *         filename = source.filename
  *         if _isString(filename):
  *             return os_path_abspath(filename)             # <<<<<<<<<<<<<<
@@ -27515,12 +27644,12 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
  *         pass
  */
         __Pyx_XDECREF(__pyx_r);
-        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1578; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+        __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_INCREF(__pyx_v_filename);
         PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_filename);
         __Pyx_GIVEREF(__pyx_v_filename);
-        __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1578; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
+        __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree_os_path_abspath, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1589; __pyx_clineno = __LINE__; goto __pyx_L20_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
         __pyx_r = __pyx_t_5;
@@ -27544,7 +27673,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1579
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1590
  *         if _isString(filename):
  *             return os_path_abspath(filename)
  *     except:             # <<<<<<<<<<<<<<
@@ -27563,7 +27692,7 @@ static PyObject *__pyx_f_4lxml_5etree__getFilenameForFile(PyObject *__pyx_v_sour
     __pyx_L27_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1582
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1593
  *         pass
  *     # can't determine filename
  *     return None             # <<<<<<<<<<<<<<
@@ -27810,11 +27939,11 @@ static PyObject *__pyx_f_4lxml_5etree_9_LogEntry__setError(struct __pyx_obj_4lxm
  *         else:
  *             size = cstring_h.strlen(error.message)
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_43));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_43));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_46));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_46));
     __Pyx_GOTREF(__pyx_v_self->message);
     __Pyx_DECREF(__pyx_v_self->message);
-    __pyx_v_self->message = ((PyObject *)__pyx_kp_u_43);
+    __pyx_v_self->message = ((PyObject *)__pyx_kp_u_46);
     goto __pyx_L3;
   }
   /*else*/ {
@@ -27965,11 +28094,11 @@ static PyObject *__pyx_f_4lxml_5etree_9_LogEntry__setError(struct __pyx_obj_4lxm
  *         if error.file is NULL:
  *             self.filename = u'<string>'
  */
-            __Pyx_INCREF(((PyObject *)__pyx_kp_u_44));
-            __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_44));
+            __Pyx_INCREF(((PyObject *)__pyx_kp_u_47));
+            __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_47));
             __Pyx_GOTREF(__pyx_v_self->message);
             __Pyx_DECREF(__pyx_v_self->message);
-            __pyx_v_self->message = ((PyObject *)__pyx_kp_u_44);
+            __pyx_v_self->message = ((PyObject *)__pyx_kp_u_47);
             __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
             __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
             __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
@@ -28026,11 +28155,11 @@ static PyObject *__pyx_f_4lxml_5etree_9_LogEntry__setError(struct __pyx_obj_4lxm
  *         else:
  *             self.filename = _decodeFilename(<const_xmlChar*>error.file)
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_45));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_45));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_48));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_48));
     __Pyx_GOTREF(__pyx_v_self->filename);
     __Pyx_DECREF(__pyx_v_self->filename);
-    __pyx_v_self->filename = ((PyObject *)__pyx_kp_u_45);
+    __pyx_v_self->filename = ((PyObject *)__pyx_kp_u_48);
     goto __pyx_L25;
   }
   /*else*/ {
@@ -28249,7 +28378,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_LogEntry___repr__(struct __pyx_obj_4lxm
   __pyx_t_3 = 0;
   __pyx_t_4 = 0;
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_46), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_49), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   __pyx_r = ((PyObject *)__pyx_t_5);
@@ -29727,8 +29856,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
  *         column = self._first_error.column
  */
     __Pyx_INCREF(__pyx_v_default_message);
-    __Pyx_DECREF(__pyx_v_message);
-    __pyx_v_message = __pyx_v_default_message;
+    __Pyx_DECREF_SET(__pyx_v_message, __pyx_v_default_message);
   }
   __pyx_L4:;
 
@@ -29794,11 +29922,10 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
       __Pyx_GIVEREF(__pyx_t_4);
       __pyx_t_3 = 0;
       __pyx_t_4 = 0;
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_47), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_50), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-      __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_4);
+      __Pyx_DECREF_SET(__pyx_v_message, ((PyObject *)__pyx_t_4));
       __pyx_t_4 = 0;
       goto __pyx_L6;
     }
@@ -29821,11 +29948,10 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(struc
       PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4);
       __Pyx_GIVEREF(__pyx_t_4);
       __pyx_t_4 = 0;
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_48), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_51), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-      __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_4);
+      __Pyx_DECREF_SET(__pyx_v_message, ((PyObject *)__pyx_t_4));
       __pyx_t_4 = 0;
     }
     __pyx_L6:;
@@ -30036,11 +30162,10 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
       __Pyx_GIVEREF(__pyx_t_4);
       __pyx_t_3 = 0;
       __pyx_t_4 = 0;
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_47), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_50), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_4);
+      __Pyx_DECREF_SET(__pyx_v_message, ((PyObject *)__pyx_t_4));
       __pyx_t_4 = 0;
       goto __pyx_L6;
     }
@@ -30063,11 +30188,10 @@ static PyObject *__pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(str
       PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4);
       __Pyx_GIVEREF(__pyx_t_4);
       __pyx_t_4 = 0;
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_48), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_51), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_4);
+      __Pyx_DECREF_SET(__pyx_v_message, ((PyObject *)__pyx_t_4));
       __pyx_t_4 = 0;
     }
     __pyx_L6:;
@@ -30258,8 +30382,7 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
  */
       __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_entries, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_first_error);
-      __pyx_v_first_error = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_first_error, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L4;
     }
@@ -30285,8 +30408,7 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog___init__(struct __pyx_obj_4lxml
  */
       __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_entries, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_last_error);
-      __pyx_v_last_error = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_last_error, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L5;
     }
@@ -30595,8 +30717,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_6__repr__(struct __pyx_ob
     #else
     __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    __Pyx_XDECREF(__pyx_v_entry);
-    __pyx_v_entry = __pyx_t_3;
+    __Pyx_XDECREF_SET(__pyx_v_entry, __pyx_t_3);
     __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":238
@@ -30621,7 +30742,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_6__repr__(struct __pyx_ob
  *     def __getitem__(self, index):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_49, ((PyObject *)__pyx_v_l))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_52, ((PyObject *)__pyx_v_l))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -30810,8 +30931,7 @@ static int __pyx_pf_4lxml_5etree_13_ListErrorLog_12__contains__(struct __pyx_obj
     #else
     __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    __Pyx_XDECREF(__pyx_v_entry);
-    __pyx_v_entry = __pyx_t_3;
+    __Pyx_XDECREF_SET(__pyx_v_entry, __pyx_t_3);
     __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":249
@@ -30999,8 +31119,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_16filter_domains(struct _
     __Pyx_INCREF(__pyx_v_domains);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_domains);
     __Pyx_GIVEREF(__pyx_v_domains);
-    __Pyx_DECREF(__pyx_v_domains);
-    __pyx_v_domains = ((PyObject *)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_domains, ((PyObject *)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
@@ -31026,8 +31145,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_16filter_domains(struct _
     __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__LogEntry))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_entry));
-    __pyx_v_entry = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_4);
+    __Pyx_XDECREF_SET(__pyx_v_entry, ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_4));
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":267
@@ -31171,8 +31289,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_18filter_types(struct __p
     __Pyx_INCREF(__pyx_v_types);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_types);
     __Pyx_GIVEREF(__pyx_v_types);
-    __Pyx_DECREF(__pyx_v_types);
-    __pyx_v_types = ((PyObject *)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_types, ((PyObject *)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
@@ -31198,8 +31315,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_18filter_types(struct __p
     __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__LogEntry))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_entry));
-    __pyx_v_entry = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_4);
+    __Pyx_XDECREF_SET(__pyx_v_entry, ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_4));
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":282
@@ -31343,8 +31459,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_20filter_levels(struct __
     __Pyx_INCREF(__pyx_v_levels);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_levels);
     __Pyx_GIVEREF(__pyx_v_levels);
-    __Pyx_DECREF(__pyx_v_levels);
-    __pyx_v_levels = ((PyObject *)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_levels, ((PyObject *)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
@@ -31370,8 +31485,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_20filter_levels(struct __
     __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__LogEntry))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_entry));
-    __pyx_v_entry = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_4);
+    __Pyx_XDECREF_SET(__pyx_v_entry, ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_4));
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":297
@@ -31512,8 +31626,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13_ListErrorLog_22filter_from_level(struc
     __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__LogEntry))))) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_entry));
-    __pyx_v_entry = ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_3);
+    __Pyx_XDECREF_SET(__pyx_v_entry, ((struct __pyx_obj_4lxml_5etree__LogEntry *)__pyx_t_3));
     __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":309
@@ -33476,8 +33589,7 @@ static int __pyx_pf_4lxml_5etree_10PyErrorLog___init__(struct __pyx_obj_4lxml_5e
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-      __Pyx_DECREF(__pyx_v_logger);
-      __pyx_v_logger = __pyx_t_1;
+      __Pyx_DECREF_SET(__pyx_v_logger, __pyx_t_1);
       __pyx_t_1 = 0;
       goto __pyx_L4;
     }
@@ -33495,8 +33607,7 @@ static int __pyx_pf_4lxml_5etree_10PyErrorLog___init__(struct __pyx_obj_4lxml_5e
       __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __Pyx_DECREF(__pyx_v_logger);
-      __pyx_v_logger = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_logger, __pyx_t_2);
       __pyx_t_2 = 0;
     }
     __pyx_L4:;
@@ -34117,7 +34228,7 @@ static struct __pyx_obj_4lxml_5etree__BaseErrorLog *__pyx_f_4lxml_5etree__getGlo
  *         return log
  * 
  */
-      __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_50), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+      __pyx_t_9 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_53), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_9);
       __pyx_v_log = ((struct __pyx_obj_4lxml_5etree__RotatingErrorLog *)__pyx_t_9);
@@ -34233,9 +34344,8 @@ static PyObject *__pyx_f_4lxml_5etree__setGlobalErrorLog(struct __pyx_obj_4lxml_
  */
     __Pyx_INCREF(((PyObject *)__pyx_v_log));
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG));
-    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG));
+    __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG, __pyx_v_log);
     __Pyx_GIVEREF(((PyObject *)__pyx_v_log));
-    __pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG = __pyx_v_log;
     goto __pyx_L3;
   }
   /*else*/ {
@@ -34590,7 +34700,7 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         c_error.file = cvarargs.va_charptr(args)
  *         if c_error.file and \
  */
-  __pyx_t_3 = (strstr(__pyx_v_msg, __pyx_k_51) != 0);
+  __pyx_t_3 = (strstr(__pyx_v_msg, __pyx_k_54) != 0);
   if (__pyx_t_3) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":575
@@ -34618,7 +34728,7 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *                             'string://__STRING__XSLT', 23) == 0:
  *             c_error.file = '<xslt>'
  */
-      __pyx_t_3 = ((strncmp(__pyx_v_c_error.file, __pyx_k_52, 23) == 0) != 0);
+      __pyx_t_3 = ((strncmp(__pyx_v_c_error.file, __pyx_k_55, 23) == 0) != 0);
       __pyx_t_1 = __pyx_t_3;
     } else {
       __pyx_t_1 = (__pyx_v_c_error.file != 0);
@@ -34632,7 +34742,7 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *     else:
  *         c_error.file = NULL
  */
-      __pyx_v_c_error.file = __pyx_k_53;
+      __pyx_v_c_error.file = __pyx_k_56;
       goto __pyx_L6;
     }
     __pyx_L6:;
@@ -34658,7 +34768,7 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         c_error.line = cvarargs.va_int(args)
  *     else:
  */
-  __pyx_t_1 = (strstr(__pyx_v_msg, __pyx_k_54) != 0);
+  __pyx_t_1 = (strstr(__pyx_v_msg, __pyx_k_57) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":583
@@ -34691,7 +34801,7 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         c_element = cvarargs.va_charptr(args)
  *     else:
  */
-  __pyx_t_1 = (strstr(__pyx_v_msg, __pyx_k_55) != 0);
+  __pyx_t_1 = (strstr(__pyx_v_msg, __pyx_k_58) != 0);
   if (__pyx_t_1) {
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":587
@@ -34886,7 +34996,7 @@ static void __pyx_f_4lxml_5etree__receiveXSLTError(void *__pyx_v_c_log_handler,
  *         c_error.message = c_message
  * 
  */
-    sprintf(__pyx_v_c_message, __pyx_k_56, __pyx_v_c_text, __pyx_v_c_element);
+    sprintf(__pyx_v_c_message, __pyx_k_59, __pyx_v_c_text, __pyx_v_c_element);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":613
  *             (text_size + 12 + element_size + 1) * sizeof(char))
@@ -35015,7 +35125,7 @@ static void __pyx_f_4lxml_5etree___initErrorConstants(void) {
  */
   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_58), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_61), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s__findall); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -35178,11 +35288,9 @@ static void __pyx_f_4lxml_5etree___initErrorConstants(void) {
       {__pyx_filename = __pyx_f[1]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_cls);
-    __pyx_v_cls = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_cls, __pyx_t_4);
     __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_v_constant_tuple);
-    __pyx_v_constant_tuple = __pyx_t_3;
+    __Pyx_XDECREF_SET(__pyx_v_constant_tuple, __pyx_t_3);
     __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":638
@@ -35194,8 +35302,7 @@ static void __pyx_f_4lxml_5etree___initErrorConstants(void) {
  */
     __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-    __Pyx_XDECREF(((PyObject *)__pyx_v_reverse_dict));
-    __pyx_v_reverse_dict = ((PyObject*)__pyx_t_5);
+    __Pyx_XDECREF_SET(__pyx_v_reverse_dict, ((PyObject*)__pyx_t_5));
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":639
@@ -35260,8 +35367,7 @@ static void __pyx_f_4lxml_5etree___initErrorConstants(void) {
         }
         __Pyx_GOTREF(__pyx_t_3);
       }
-      __Pyx_XDECREF(__pyx_v_constants);
-      __pyx_v_constants = __pyx_t_3;
+      __Pyx_XDECREF_SET(__pyx_v_constants, __pyx_t_3);
       __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":643
@@ -35365,11 +35471,9 @@ static void __pyx_f_4lxml_5etree___initErrorConstants(void) {
           {__pyx_filename = __pyx_f[1]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L12_unpacking_done:;
         }
-        __Pyx_XDECREF(__pyx_v_name);
-        __pyx_v_name = __pyx_t_2;
+        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_2);
         __pyx_t_2 = 0;
-        __Pyx_XDECREF(__pyx_v_value);
-        __pyx_v_value = __pyx_t_12;
+        __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_12);
         __pyx_t_12 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":644
@@ -35387,8 +35491,7 @@ static void __pyx_f_4lxml_5etree___initErrorConstants(void) {
         __pyx_t_12 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_12);
         __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-        __Pyx_DECREF(__pyx_v_value);
-        __pyx_v_value = __pyx_t_12;
+        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_12);
         __pyx_t_12 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":645
@@ -35424,24 +35527,20 @@ static void __pyx_f_4lxml_5etree___initErrorConstants(void) {
  */
   __Pyx_INCREF(Py_None);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_LEVELS, Py_None);
   __Pyx_GIVEREF(Py_None);
-  __pyx_v_4lxml_5etree___ERROR_LEVELS = Py_None;
   __Pyx_INCREF(Py_None);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_DOMAINS, Py_None);
   __Pyx_GIVEREF(Py_None);
-  __pyx_v_4lxml_5etree___ERROR_DOMAINS = Py_None;
   __Pyx_INCREF(Py_None);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES, Py_None);
   __Pyx_GIVEREF(Py_None);
-  __pyx_v_4lxml_5etree___PARSER_ERROR_TYPES = Py_None;
   __Pyx_INCREF(Py_None);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES, Py_None);
   __Pyx_GIVEREF(Py_None);
-  __pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES = Py_None;
 
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -35474,7 +35573,7 @@ static void __pyx_pw_4lxml_5etree_9_Document_1__dealloc__(PyObject *__pyx_v_self
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":326
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":323
  *     cdef _BaseParser _parser
  * 
  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
@@ -35486,7 +35585,7 @@ static void __pyx_pf_4lxml_5etree_9_Document___dealloc__(struct LxmlDocument *__
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__dealloc__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":330
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":327
  *         # to clean the whole thing up, as all nodes have a reference to
  *         # the document
  *         tree.xmlFreeDoc(self._c_doc)             # <<<<<<<<<<<<<<
@@ -35498,7 +35597,7 @@ static void __pyx_pf_4lxml_5etree_9_Document___dealloc__(struct LxmlDocument *__
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":333
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":330
  * 
  *     @cython.final
  *     cdef getroot(self):             # <<<<<<<<<<<<<<
@@ -35517,7 +35616,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getroot(struct LxmlDocument *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getroot", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":336
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":333
  *         # return an element proxy for the document root
  *         cdef xmlNode* c_node
  *         c_node = tree.xmlDocGetRootElement(self._c_doc)             # <<<<<<<<<<<<<<
@@ -35526,7 +35625,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getroot(struct LxmlDocument *__
  */
   __pyx_v_c_node = xmlDocGetRootElement(__pyx_v_self->_c_doc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":337
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":334
  *         cdef xmlNode* c_node
  *         c_node = tree.xmlDocGetRootElement(self._c_doc)
  *         if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -35536,7 +35635,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getroot(struct LxmlDocument *__
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":338
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":335
  *         c_node = tree.xmlDocGetRootElement(self._c_doc)
  *         if c_node is NULL:
  *             return None             # <<<<<<<<<<<<<<
@@ -35551,7 +35650,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getroot(struct LxmlDocument *__
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":339
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":336
  *         if c_node is NULL:
  *             return None
  *         return _elementFactory(self, c_node)             # <<<<<<<<<<<<<<
@@ -35559,7 +35658,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getroot(struct LxmlDocument *__
  *     @cython.final
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_self, __pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_self, __pyx_v_c_node)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -35577,7 +35676,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getroot(struct LxmlDocument *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":342
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":339
  * 
  *     @cython.final
  *     cdef bint hasdoctype(self):             # <<<<<<<<<<<<<<
@@ -35593,7 +35692,7 @@ static int __pyx_f_4lxml_5etree_9_Document_hasdoctype(struct LxmlDocument *__pyx
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("hasdoctype", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":344
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":341
  *     cdef bint hasdoctype(self):
  *         # DOCTYPE gets parsed into internal subset (xmlDTD*)
  *         return self._c_doc is not NULL and self._c_doc.intSubset is not NULL             # <<<<<<<<<<<<<<
@@ -35616,7 +35715,7 @@ static int __pyx_f_4lxml_5etree_9_Document_hasdoctype(struct LxmlDocument *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":347
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":344
  * 
  *     @cython.final
  *     cdef getdoctype(self):             # <<<<<<<<<<<<<<
@@ -35642,7 +35741,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getdoctype", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":351
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":348
  *         cdef tree.xmlDtd* c_dtd
  *         cdef xmlNode* c_root_node
  *         public_id = None             # <<<<<<<<<<<<<<
@@ -35652,7 +35751,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   __Pyx_INCREF(Py_None);
   __pyx_v_public_id = Py_None;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":352
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":349
  *         cdef xmlNode* c_root_node
  *         public_id = None
  *         sys_url   = None             # <<<<<<<<<<<<<<
@@ -35662,7 +35761,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   __Pyx_INCREF(Py_None);
   __pyx_v_sys_url = Py_None;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":353
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":350
  *         public_id = None
  *         sys_url   = None
  *         c_dtd = self._c_doc.intSubset             # <<<<<<<<<<<<<<
@@ -35672,7 +35771,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   __pyx_t_1 = __pyx_v_self->_c_doc->intSubset;
   __pyx_v_c_dtd = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":354
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":351
  *         sys_url   = None
  *         c_dtd = self._c_doc.intSubset
  *         if c_dtd is not NULL:             # <<<<<<<<<<<<<<
@@ -35682,7 +35781,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   __pyx_t_2 = ((__pyx_v_c_dtd != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":355
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":352
  *         c_dtd = self._c_doc.intSubset
  *         if c_dtd is not NULL:
  *             if c_dtd.ExternalID is not NULL:             # <<<<<<<<<<<<<<
@@ -35692,23 +35791,22 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
     __pyx_t_2 = ((__pyx_v_c_dtd->ExternalID != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":356
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":353
  *         if c_dtd is not NULL:
  *             if c_dtd.ExternalID is not NULL:
  *                 public_id = funicode(c_dtd.ExternalID)             # <<<<<<<<<<<<<<
  *             if c_dtd.SystemID is not NULL:
  *                 sys_url = funicode(c_dtd.SystemID)
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_dtd->ExternalID); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 356; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_dtd->ExternalID); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_public_id);
-      __pyx_v_public_id = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_public_id, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":357
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":354
  *             if c_dtd.ExternalID is not NULL:
  *                 public_id = funicode(c_dtd.ExternalID)
  *             if c_dtd.SystemID is not NULL:             # <<<<<<<<<<<<<<
@@ -35718,17 +35816,16 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
     __pyx_t_2 = ((__pyx_v_c_dtd->SystemID != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":358
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":355
  *                 public_id = funicode(c_dtd.ExternalID)
  *             if c_dtd.SystemID is not NULL:
  *                 sys_url = funicode(c_dtd.SystemID)             # <<<<<<<<<<<<<<
  *         c_dtd = self._c_doc.extSubset
  *         if c_dtd is not NULL:
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_dtd->SystemID); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_dtd->SystemID); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_sys_url);
-      __pyx_v_sys_url = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_sys_url, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L5;
     }
@@ -35737,7 +35834,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":359
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":356
  *             if c_dtd.SystemID is not NULL:
  *                 sys_url = funicode(c_dtd.SystemID)
  *         c_dtd = self._c_doc.extSubset             # <<<<<<<<<<<<<<
@@ -35747,7 +35844,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   __pyx_t_1 = __pyx_v_self->_c_doc->extSubset;
   __pyx_v_c_dtd = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":360
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":357
  *                 sys_url = funicode(c_dtd.SystemID)
  *         c_dtd = self._c_doc.extSubset
  *         if c_dtd is not NULL:             # <<<<<<<<<<<<<<
@@ -35757,14 +35854,14 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   __pyx_t_2 = ((__pyx_v_c_dtd != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":361
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":358
  *         c_dtd = self._c_doc.extSubset
  *         if c_dtd is not NULL:
  *             if not public_id and c_dtd.ExternalID is not NULL:             # <<<<<<<<<<<<<<
  *                 public_id = funicode(c_dtd.ExternalID)
  *             if not sys_url and c_dtd.SystemID is not NULL:
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_public_id); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_public_id); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = ((!__pyx_t_2) != 0);
     if (__pyx_t_4) {
       __pyx_t_2 = ((__pyx_v_c_dtd->ExternalID != NULL) != 0);
@@ -35774,30 +35871,29 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
     }
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":362
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":359
  *         if c_dtd is not NULL:
  *             if not public_id and c_dtd.ExternalID is not NULL:
  *                 public_id = funicode(c_dtd.ExternalID)             # <<<<<<<<<<<<<<
  *             if not sys_url and c_dtd.SystemID is not NULL:
  *                 sys_url = funicode(c_dtd.SystemID)
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_dtd->ExternalID); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_dtd->ExternalID); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_public_id);
-      __pyx_v_public_id = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_public_id, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L7;
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":363
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":360
  *             if not public_id and c_dtd.ExternalID is not NULL:
  *                 public_id = funicode(c_dtd.ExternalID)
  *             if not sys_url and c_dtd.SystemID is not NULL:             # <<<<<<<<<<<<<<
  *                 sys_url = funicode(c_dtd.SystemID)
  *         c_root_node = tree.xmlDocGetRootElement(self._c_doc)
  */
-    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_sys_url); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_sys_url); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = ((!__pyx_t_5) != 0);
     if (__pyx_t_4) {
       __pyx_t_5 = ((__pyx_v_c_dtd->SystemID != NULL) != 0);
@@ -35807,17 +35903,16 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
     }
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":364
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":361
  *                 public_id = funicode(c_dtd.ExternalID)
  *             if not sys_url and c_dtd.SystemID is not NULL:
  *                 sys_url = funicode(c_dtd.SystemID)             # <<<<<<<<<<<<<<
  *         c_root_node = tree.xmlDocGetRootElement(self._c_doc)
  *         if c_root_node is NULL:
  */
-      __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_dtd->SystemID); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_dtd->SystemID); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_sys_url);
-      __pyx_v_sys_url = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_sys_url, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L8;
     }
@@ -35826,7 +35921,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":365
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":362
  *             if not sys_url and c_dtd.SystemID is not NULL:
  *                 sys_url = funicode(c_dtd.SystemID)
  *         c_root_node = tree.xmlDocGetRootElement(self._c_doc)             # <<<<<<<<<<<<<<
@@ -35835,7 +35930,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  */
   __pyx_v_c_root_node = xmlDocGetRootElement(__pyx_v_self->_c_doc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":366
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":363
  *                 sys_url = funicode(c_dtd.SystemID)
  *         c_root_node = tree.xmlDocGetRootElement(self._c_doc)
  *         if c_root_node is NULL:             # <<<<<<<<<<<<<<
@@ -35845,7 +35940,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   __pyx_t_2 = ((__pyx_v_c_root_node == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":367
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":364
  *         c_root_node = tree.xmlDocGetRootElement(self._c_doc)
  *         if c_root_node is NULL:
  *             root_name = None             # <<<<<<<<<<<<<<
@@ -35858,21 +35953,21 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":369
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":366
  *             root_name = None
  *         else:
  *             root_name = funicode(c_root_node.name)             # <<<<<<<<<<<<<<
  *         return (root_name, public_id, sys_url)
  * 
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_root_node->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_root_node->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_root_name = __pyx_t_3;
     __pyx_t_3 = 0;
   }
   __pyx_L9:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":370
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":367
  *         else:
  *             root_name = funicode(c_root_node.name)
  *         return (root_name, public_id, sys_url)             # <<<<<<<<<<<<<<
@@ -35880,7 +35975,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
  *     @cython.final
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_root_name);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_root_name);
@@ -35910,7 +36005,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getdoctype(struct LxmlDocument
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":373
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":370
  * 
  *     @cython.final
  *     cdef getxmlinfo(self):             # <<<<<<<<<<<<<<
@@ -35932,7 +36027,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getxmlinfo", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":375
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":372
  *     cdef getxmlinfo(self):
  *         # return XML version and encoding (or None if not known)
  *         cdef xmlDoc* c_doc = self._c_doc             # <<<<<<<<<<<<<<
@@ -35942,7 +36037,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
   __pyx_t_1 = __pyx_v_self->_c_doc;
   __pyx_v_c_doc = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":376
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":373
  *         # return XML version and encoding (or None if not known)
  *         cdef xmlDoc* c_doc = self._c_doc
  *         if c_doc.version is NULL:             # <<<<<<<<<<<<<<
@@ -35952,7 +36047,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
   __pyx_t_2 = ((__pyx_v_c_doc->version == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":377
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":374
  *         cdef xmlDoc* c_doc = self._c_doc
  *         if c_doc.version is NULL:
  *             version = None             # <<<<<<<<<<<<<<
@@ -35965,21 +36060,21 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":379
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":376
  *             version = None
  *         else:
  *             version = funicode(c_doc.version)             # <<<<<<<<<<<<<<
  *         if c_doc.encoding is NULL:
  *             encoding = None
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_doc->version); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_doc->version); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_version = __pyx_t_3;
     __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":380
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":377
  *         else:
  *             version = funicode(c_doc.version)
  *         if c_doc.encoding is NULL:             # <<<<<<<<<<<<<<
@@ -35989,7 +36084,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
   __pyx_t_2 = ((__pyx_v_c_doc->encoding == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":381
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":378
  *             version = funicode(c_doc.version)
  *         if c_doc.encoding is NULL:
  *             encoding = None             # <<<<<<<<<<<<<<
@@ -36002,21 +36097,21 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":383
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":380
  *             encoding = None
  *         else:
  *             encoding = funicode(c_doc.encoding)             # <<<<<<<<<<<<<<
  *         return (version, encoding)
  * 
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_doc->encoding); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_doc->encoding); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_encoding = __pyx_t_3;
     __pyx_t_3 = 0;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":384
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":381
  *         else:
  *             encoding = funicode(c_doc.encoding)
  *         return (version, encoding)             # <<<<<<<<<<<<<<
@@ -36024,7 +36119,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
  *     @cython.final
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_version);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_version);
@@ -36050,7 +36145,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_getxmlinfo(struct LxmlDocument
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":387
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":384
  * 
  *     @cython.final
  *     cdef isstandalone(self):             # <<<<<<<<<<<<<<
@@ -36068,7 +36163,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_isstandalone(struct LxmlDocumen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("isstandalone", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":390
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":387
  *         # returns True for "standalone=true",
  *         # False for "standalone=false", None if not provided
  *         if self._c_doc.standalone == -1:             # <<<<<<<<<<<<<<
@@ -36078,7 +36173,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_isstandalone(struct LxmlDocumen
   __pyx_t_1 = ((__pyx_v_self->_c_doc->standalone == -1) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":391
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":388
  *         # False for "standalone=false", None if not provided
  *         if self._c_doc.standalone == -1:
  *             return None             # <<<<<<<<<<<<<<
@@ -36093,7 +36188,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_isstandalone(struct LxmlDocumen
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":393
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":390
  *             return None
  *         else:
  *             return <bint>(self._c_doc.standalone == 1)             # <<<<<<<<<<<<<<
@@ -36101,7 +36196,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_isstandalone(struct LxmlDocumen
  *     @cython.final
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __Pyx_PyBool_FromLong(((int)(__pyx_v_self->_c_doc->standalone == 1))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyBool_FromLong(((int)(__pyx_v_self->_c_doc->standalone == 1))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -36121,7 +36216,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_isstandalone(struct LxmlDocumen
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":396
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":393
  * 
  *     @cython.final
  *     cdef bytes buildNewPrefix(self):             # <<<<<<<<<<<<<<
@@ -36142,7 +36237,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("buildNewPrefix", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":399
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":396
  *         # get a new unique prefix ("nsX") for this document
  *         cdef bytes ns
  *         if self._ns_counter < len(_PREFIX_CACHE):             # <<<<<<<<<<<<<<
@@ -36153,14 +36248,14 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
   __Pyx_INCREF(__pyx_t_1);
   if (unlikely(__pyx_t_1 == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_GET_SIZE(__pyx_t_1); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_3 = ((__pyx_v_self->_ns_counter < __pyx_t_2) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":400
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":397
  *         cdef bytes ns
  *         if self._ns_counter < len(_PREFIX_CACHE):
  *             ns = _PREFIX_CACHE[self._ns_counter]             # <<<<<<<<<<<<<<
@@ -36169,32 +36264,32 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
  */
     if (unlikely(((PyObject *)__pyx_v_4lxml_5etree__PREFIX_CACHE) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_4lxml_5etree__PREFIX_CACHE), __pyx_v_self->_ns_counter, sizeof(int), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_4lxml_5etree__PREFIX_CACHE), __pyx_v_self->_ns_counter, sizeof(int), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_ns = ((PyObject*)__pyx_t_1);
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":402
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":399
  *             ns = _PREFIX_CACHE[self._ns_counter]
  *         else:
  *             ns = python.PyBytes_FromFormat("ns%d", self._ns_counter)             # <<<<<<<<<<<<<<
  *         if self._prefix_tail is not None:
  *             ns += self._prefix_tail
  */
-    __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_59, __pyx_v_self->_ns_counter)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_62, __pyx_v_self->_ns_counter)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_ns = ((PyObject*)__pyx_t_1);
     __pyx_t_1 = 0;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":403
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":400
  *         else:
  *             ns = python.PyBytes_FromFormat("ns%d", self._ns_counter)
  *         if self._prefix_tail is not None:             # <<<<<<<<<<<<<<
@@ -36205,23 +36300,22 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
   __pyx_t_4 = (__pyx_t_3 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":404
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":401
  *             ns = python.PyBytes_FromFormat("ns%d", self._ns_counter)
  *         if self._prefix_tail is not None:
  *             ns += self._prefix_tail             # <<<<<<<<<<<<<<
  *         self._ns_counter += 1
  *         if self._ns_counter < 0:
  */
-    __pyx_t_1 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_ns), ((PyObject *)__pyx_v_self->_prefix_tail)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_ns), ((PyObject *)__pyx_v_self->_prefix_tail)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-    __Pyx_DECREF(((PyObject *)__pyx_v_ns));
-    __pyx_v_ns = ((PyObject*)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_ns, ((PyObject*)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":405
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":402
  *         if self._prefix_tail is not None:
  *             ns += self._prefix_tail
  *         self._ns_counter += 1             # <<<<<<<<<<<<<<
@@ -36230,7 +36324,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
  */
   __pyx_v_self->_ns_counter = (__pyx_v_self->_ns_counter + 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":406
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":403
  *             ns += self._prefix_tail
  *         self._ns_counter += 1
  *         if self._ns_counter < 0:             # <<<<<<<<<<<<<<
@@ -36240,7 +36334,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
   __pyx_t_4 = ((__pyx_v_self->_ns_counter < 0) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":408
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":405
  *         if self._ns_counter < 0:
  *             # overflow!
  *             self._ns_counter = 0             # <<<<<<<<<<<<<<
@@ -36249,7 +36343,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
  */
     __pyx_v_self->_ns_counter = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":409
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":406
  *             # overflow!
  *             self._ns_counter = 0
  *             if self._prefix_tail is None:             # <<<<<<<<<<<<<<
@@ -36260,7 +36354,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
     __pyx_t_3 = (__pyx_t_4 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":410
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":407
  *             self._ns_counter = 0
  *             if self._prefix_tail is None:
  *                 self._prefix_tail = b"A"             # <<<<<<<<<<<<<<
@@ -36276,14 +36370,14 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":412
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":409
  *                 self._prefix_tail = b"A"
  *             else:
  *                 self._prefix_tail += b"A"             # <<<<<<<<<<<<<<
  *         return ns
  * 
  */
-      __pyx_t_1 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_self->_prefix_tail), ((PyObject *)__pyx_n_b__A)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_self->_prefix_tail), ((PyObject *)__pyx_n_b__A)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
       __Pyx_GOTREF(__pyx_v_self->_prefix_tail);
@@ -36296,7 +36390,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":413
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":410
  *             else:
  *                 self._prefix_tail += b"A"
  *         return ns             # <<<<<<<<<<<<<<
@@ -36321,7 +36415,7 @@ static PyObject *__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(struct LxmlDocum
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":416
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":413
  * 
  *     @cython.final
  *     cdef xmlNs* _findOrBuildNodeNs(self, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -36345,7 +36439,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_findOrBuildNodeNs", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":425
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":422
  *         cdef xmlNs* c_doc_ns
  *         cdef python.PyObject* dict_result
  *         if c_node.type != tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -36355,7 +36449,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
   __pyx_t_1 = ((__pyx_v_c_node->type != XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":426
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":423
  *         cdef python.PyObject* dict_result
  *         if c_node.type != tree.XML_ELEMENT_NODE:
  *             assert c_node.type == tree.XML_ELEMENT_NODE, \             # <<<<<<<<<<<<<<
@@ -36365,18 +36459,18 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
     #ifndef CYTHON_WITHOUT_ASSERTIONS
     if (unlikely(!((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0))) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":428
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":425
  *             assert c_node.type == tree.XML_ELEMENT_NODE, \
  *                 u"invalid node type %d, expected %d" % (
  *                 c_node.type, tree.XML_ELEMENT_NODE)             # <<<<<<<<<<<<<<
  *         # look for existing ns declaration
  *         c_ns = _searchNsByHref(c_node, c_href, is_attribute)
  */
-      __pyx_t_2 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_3 = PyInt_FromLong(XML_ELEMENT_NODE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(XML_ELEMENT_NODE); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
       __Pyx_GIVEREF(__pyx_t_2);
@@ -36384,19 +36478,19 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
       __Pyx_GIVEREF(__pyx_t_3);
       __pyx_t_2 = 0;
       __pyx_t_3 = 0;
-      __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_60), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_63), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_3));
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_3));
       __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #endif
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":430
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":427
  *                 c_node.type, tree.XML_ELEMENT_NODE)
  *         # look for existing ns declaration
  *         c_ns = _searchNsByHref(c_node, c_href, is_attribute)             # <<<<<<<<<<<<<<
@@ -36405,7 +36499,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  */
   __pyx_v_c_ns = __pyx_f_4lxml_5etree__searchNsByHref(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_is_attribute);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":431
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":428
  *         # look for existing ns declaration
  *         c_ns = _searchNsByHref(c_node, c_href, is_attribute)
  *         if c_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -36415,7 +36509,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
   __pyx_t_1 = ((__pyx_v_c_ns != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":432
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":429
  *         c_ns = _searchNsByHref(c_node, c_href, is_attribute)
  *         if c_ns is not NULL:
  *             if is_attribute and c_ns.prefix is NULL:             # <<<<<<<<<<<<<<
@@ -36433,7 +36527,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":437
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":434
  *                 pass
  *             else:
  *                 return c_ns             # <<<<<<<<<<<<<<
@@ -36448,7 +36542,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":440
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":437
  * 
  *         # none found => determine a suitable new prefix
  *         if c_prefix is NULL:             # <<<<<<<<<<<<<<
@@ -36458,7 +36552,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
   __pyx_t_5 = ((__pyx_v_c_prefix == NULL) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":442
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":439
  *         if c_prefix is NULL:
  *             dict_result = python.PyDict_GetItem(
  *                 _DEFAULT_NAMESPACE_PREFIXES, <unsigned char*>c_href)             # <<<<<<<<<<<<<<
@@ -36467,13 +36561,13 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  */
     __pyx_t_3 = ((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES);
     __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_4 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_href)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_href)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __pyx_v_dict_result = PyDict_GetItem(__pyx_t_3, ((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":443
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":440
  *             dict_result = python.PyDict_GetItem(
  *                 _DEFAULT_NAMESPACE_PREFIXES, <unsigned char*>c_href)
  *             if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -36483,7 +36577,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
     __pyx_t_5 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":444
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":441
  *                 _DEFAULT_NAMESPACE_PREFIXES, <unsigned char*>c_href)
  *             if dict_result is not NULL:
  *                 prefix = <object>dict_result             # <<<<<<<<<<<<<<
@@ -36496,21 +36590,21 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":446
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":443
  *                 prefix = <object>dict_result
  *             else:
  *                 prefix = self.buildNewPrefix()             # <<<<<<<<<<<<<<
  *             c_prefix = _xcstr(prefix)
  * 
  */
-      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(__pyx_v_self)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(__pyx_v_self)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_v_prefix = __pyx_t_4;
       __pyx_t_4 = 0;
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":447
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":444
  *             else:
  *                 prefix = self.buildNewPrefix()
  *             c_prefix = _xcstr(prefix)             # <<<<<<<<<<<<<<
@@ -36522,7 +36616,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":450
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":447
  * 
  *         # make sure the prefix is not in use already
  *         while tree.xmlSearchNs(self._c_doc, c_node, c_prefix) is not NULL:             # <<<<<<<<<<<<<<
@@ -36533,20 +36627,19 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
     __pyx_t_5 = ((xmlSearchNs(__pyx_v_self->_c_doc, __pyx_v_c_node, __pyx_v_c_prefix) != NULL) != 0);
     if (!__pyx_t_5) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":451
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":448
  *         # make sure the prefix is not in use already
  *         while tree.xmlSearchNs(self._c_doc, c_node, c_prefix) is not NULL:
  *             prefix = self.buildNewPrefix()             # <<<<<<<<<<<<<<
  *             c_prefix = _xcstr(prefix)
  * 
  */
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(__pyx_v_self)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_9_Document_buildNewPrefix(__pyx_v_self)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_XDECREF(__pyx_v_prefix);
-    __pyx_v_prefix = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":452
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":449
  *         while tree.xmlSearchNs(self._c_doc, c_node, c_prefix) is not NULL:
  *             prefix = self.buildNewPrefix()
  *             c_prefix = _xcstr(prefix)             # <<<<<<<<<<<<<<
@@ -36556,7 +36649,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
     __pyx_v_c_prefix = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_prefix);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":455
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":452
  * 
  *         # declare the namespace and return it
  *         c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)             # <<<<<<<<<<<<<<
@@ -36565,7 +36658,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
  */
   __pyx_v_c_ns = xmlNewNs(__pyx_v_c_node, __pyx_v_c_href, __pyx_v_c_prefix);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":456
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":453
  *         # declare the namespace and return it
  *         c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)
  *         if c_ns is NULL:             # <<<<<<<<<<<<<<
@@ -36575,19 +36668,19 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
   __pyx_t_5 = ((__pyx_v_c_ns == NULL) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":457
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":454
  *         c_ns = tree.xmlNewNs(c_node, c_href, c_prefix)
  *         if c_ns is NULL:
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  *         return c_ns
  * 
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L10;
   }
   __pyx_L10:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":458
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":455
  *         if c_ns is NULL:
  *             raise MemoryError()
  *         return c_ns             # <<<<<<<<<<<<<<
@@ -36611,7 +36704,7 @@ static xmlNs *__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(struct LxmlDocu
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":461
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":458
  * 
  *     @cython.final
  *     cdef int _setNodeNs(self, xmlNode* c_node, const_xmlChar* c_href) except -1:             # <<<<<<<<<<<<<<
@@ -36629,17 +36722,17 @@ static int __pyx_f_4lxml_5etree_9_Document__setNodeNs(struct LxmlDocument *__pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_setNodeNs", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":463
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":460
  *     cdef int _setNodeNs(self, xmlNode* c_node, const_xmlChar* c_href) except -1:
  *         u"Lookup namespace structure and set it for the node."
  *         c_ns = self._findOrBuildNodeNs(c_node, c_href, NULL, 0)             # <<<<<<<<<<<<<<
  *         tree.xmlSetNs(c_node, c_ns)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_self, __pyx_v_c_node, __pyx_v_c_href, NULL, 0); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs(__pyx_v_self, __pyx_v_c_node, __pyx_v_c_href, NULL, 0); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_ns = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":464
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":461
  *         u"Lookup namespace structure and set it for the node."
  *         c_ns = self._findOrBuildNodeNs(c_node, c_href, NULL, 0)
  *         tree.xmlSetNs(c_node, c_ns)             # <<<<<<<<<<<<<<
@@ -36658,7 +36751,7 @@ static int __pyx_f_4lxml_5etree_9_Document__setNodeNs(struct LxmlDocument *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":466
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":463
  *         tree.xmlSetNs(c_node, c_ns)
  * 
  * cdef tuple __initPrefixCache():             # <<<<<<<<<<<<<<
@@ -36678,7 +36771,7 @@ static PyObject *__pyx_f_4lxml_5etree___initPrefixCache(void) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__initPrefixCache", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":468
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":465
  * cdef tuple __initPrefixCache():
  *     cdef int i
  *     return tuple([ python.PyBytes_FromFormat("ns%d", i)             # <<<<<<<<<<<<<<
@@ -36686,16 +36779,16 @@ static PyObject *__pyx_f_4lxml_5etree___initPrefixCache(void) {
  * 
  */
   __Pyx_XDECREF(((PyObject *)__pyx_r));
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   for (__pyx_t_2 = 0; __pyx_t_2 < 30; __pyx_t_2+=1) {
     __pyx_v_i = __pyx_t_2;
-    __pyx_t_3 = ((PyObject *)PyBytes_FromFormat(__pyx_k_59, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)PyBytes_FromFormat(__pyx_k_62, __pyx_v_i)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   }
-  __pyx_t_3 = ((PyObject *)PyList_AsTuple(((PyObject*)__pyx_t_1))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)PyList_AsTuple(((PyObject*)__pyx_t_1))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_r = ((PyObject*)__pyx_t_3);
@@ -36715,7 +36808,7 @@ static PyObject *__pyx_f_4lxml_5etree___initPrefixCache(void) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":474
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":471
  * _PREFIX_CACHE = __initPrefixCache()
  * 
  * cdef _Document _documentFactory(xmlDoc* c_doc, _BaseParser parser):             # <<<<<<<<<<<<<<
@@ -36736,20 +36829,20 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentFactory(xmlDoc *__pyx_
   __Pyx_RefNannySetupContext("_documentFactory", 0);
   __Pyx_INCREF((PyObject *)__pyx_v_parser);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":476
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":473
  * cdef _Document _documentFactory(xmlDoc* c_doc, _BaseParser parser):
  *     cdef _Document result
  *     result = _Document.__new__(_Document)             # <<<<<<<<<<<<<<
  *     result._c_doc = c_doc
  *     result._ns_counter = 0
  */
-  __pyx_t_1 = __pyx_tp_new_4lxml_5etree__Document(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Document)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_tp_new_4lxml_5etree__Document(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Document)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Document)))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Document)))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 473; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_result = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":477
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":474
  *     cdef _Document result
  *     result = _Document.__new__(_Document)
  *     result._c_doc = c_doc             # <<<<<<<<<<<<<<
@@ -36758,7 +36851,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentFactory(xmlDoc *__pyx_
  */
   __pyx_v_result->_c_doc = __pyx_v_c_doc;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":478
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":475
  *     result = _Document.__new__(_Document)
  *     result._c_doc = c_doc
  *     result._ns_counter = 0             # <<<<<<<<<<<<<<
@@ -36767,7 +36860,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentFactory(xmlDoc *__pyx_
  */
   __pyx_v_result->_ns_counter = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":479
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":476
  *     result._c_doc = c_doc
  *     result._ns_counter = 0
  *     result._prefix_tail = None             # <<<<<<<<<<<<<<
@@ -36780,7 +36873,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentFactory(xmlDoc *__pyx_
   __Pyx_DECREF(((PyObject *)__pyx_v_result->_prefix_tail));
   __pyx_v_result->_prefix_tail = ((PyObject*)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":480
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":477
  *     result._ns_counter = 0
  *     result._prefix_tail = None
  *     if parser is None:             # <<<<<<<<<<<<<<
@@ -36791,23 +36884,22 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentFactory(xmlDoc *__pyx_
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":481
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":478
  *     result._prefix_tail = None
  *     if parser is None:
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()             # <<<<<<<<<<<<<<
  *     result._parser = parser
  *     return result
  */
-    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":482
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":479
  *     if parser is None:
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  *     result._parser = parser             # <<<<<<<<<<<<<<
@@ -36820,7 +36912,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__documentFactory(xmlDoc *__pyx_
   __Pyx_DECREF(((PyObject *)__pyx_v_result->_parser));
   __pyx_v_result->_parser = __pyx_v_parser;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":483
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":480
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  *     result._parser = parser
  *     return result             # <<<<<<<<<<<<<<
@@ -36874,7 +36966,7 @@ static int __pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(PyObject *__pyx_v_self, PyO
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -36885,7 +36977,7 @@ static int __pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(PyObject *__pyx_v_self, PyO
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.DocInfo.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -36896,7 +36988,7 @@ static int __pyx_pw_4lxml_5etree_7DocInfo_1__cinit__(PyObject *__pyx_v_self, PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":489
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":486
  *     u"Document information provided by parser and DTD."
  *     cdef _Document _doc
  *     def __cinit__(self, tree):             # <<<<<<<<<<<<<<
@@ -36925,14 +37017,14 @@ static int __pyx_pf_4lxml_5etree_7DocInfo___cinit__(struct __pyx_obj_4lxml_5etre
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":491
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":488
  *     def __cinit__(self, tree):
  *         u"Create a DocInfo object for an ElementTree object or root Element."
  *         self._doc = _documentOrRaise(tree)             # <<<<<<<<<<<<<<
  *         root_name, public_id, system_url = self._doc.getdoctype()
  *         if not root_name and (public_id or system_url):
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 488; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->_doc);
@@ -36940,14 +37032,14 @@ static int __pyx_pf_4lxml_5etree_7DocInfo___cinit__(struct __pyx_obj_4lxml_5etre
   __pyx_v_self->_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":492
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":489
  *         u"Create a DocInfo object for an ElementTree object or root Element."
  *         self._doc = _documentOrRaise(tree)
  *         root_name, public_id, system_url = self._doc.getdoctype()             # <<<<<<<<<<<<<<
  *         if not root_name and (public_id or system_url):
  *             raise ValueError, u"Could not find root node"
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -36959,7 +37051,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo___cinit__(struct __pyx_obj_4lxml_5etre
     if (unlikely(size != 3)) {
       if (size > 3) __Pyx_RaiseTooManyValuesError(3);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -36975,18 +37067,18 @@ static int __pyx_pf_4lxml_5etree_7DocInfo___cinit__(struct __pyx_obj_4lxml_5etre
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_4);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
@@ -36996,7 +37088,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo___cinit__(struct __pyx_obj_4lxml_5etre
     __Pyx_GOTREF(__pyx_t_3);
     index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = NULL;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L4_unpacking_done;
@@ -37004,7 +37096,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo___cinit__(struct __pyx_obj_4lxml_5etre
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_6 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_root_name = __pyx_t_2;
@@ -37014,19 +37106,19 @@ static int __pyx_pf_4lxml_5etree_7DocInfo___cinit__(struct __pyx_obj_4lxml_5etre
   __pyx_v_system_url = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":493
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":490
  *         self._doc = _documentOrRaise(tree)
  *         root_name, public_id, system_url = self._doc.getdoctype()
  *         if not root_name and (public_id or system_url):             # <<<<<<<<<<<<<<
  *             raise ValueError, u"Could not find root node"
  * 
  */
-  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_root_name); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_root_name); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_8 = (!__pyx_t_7);
   if (__pyx_t_8) {
-    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_public_id); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_public_id); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!__pyx_t_7) {
-      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 490; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_10 = __pyx_t_9;
     } else {
       __pyx_t_10 = __pyx_t_7;
@@ -37037,15 +37129,15 @@ static int __pyx_pf_4lxml_5etree_7DocInfo___cinit__(struct __pyx_obj_4lxml_5etre
   }
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":494
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":491
  *         root_name, public_id, system_url = self._doc.getdoctype()
  *         if not root_name and (public_id or system_url):
  *             raise ValueError, u"Could not find root node"             # <<<<<<<<<<<<<<
  * 
  *     property root_name:
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_61), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_64), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 491; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
   }
   __pyx_L5:;
@@ -37079,7 +37171,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_9root_name_1__get__(PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":498
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":495
  *     property root_name:
  *         u"Returns the name of the root node as defined by the DOCTYPE."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -37104,14 +37196,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9root_name___get__(struct __pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":499
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":496
  *         u"Returns the name of the root node as defined by the DOCTYPE."
  *         def __get__(self):
  *             root_name, public_id, system_url = self._doc.getdoctype()             # <<<<<<<<<<<<<<
  *             return root_name
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -37123,7 +37215,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9root_name___get__(struct __pyx_
     if (unlikely(size != 3)) {
       if (size > 3) __Pyx_RaiseTooManyValuesError(3);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -37139,18 +37231,18 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9root_name___get__(struct __pyx_
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_4);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
@@ -37160,7 +37252,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9root_name___get__(struct __pyx_
     __Pyx_GOTREF(__pyx_t_3);
     index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = NULL;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L4_unpacking_done;
@@ -37168,7 +37260,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9root_name___get__(struct __pyx_
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_6 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_root_name = __pyx_t_2;
@@ -37178,7 +37270,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9root_name___get__(struct __pyx_
   __pyx_v_system_url = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":500
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":497
  *         def __get__(self):
  *             root_name, public_id, system_url = self._doc.getdoctype()
  *             return root_name             # <<<<<<<<<<<<<<
@@ -37220,7 +37312,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_9public_id_1__get__(PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":504
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":501
  *     property public_id:
  *         u"Returns the public ID of the DOCTYPE."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -37245,14 +37337,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9public_id___get__(struct __pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":505
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":502
  *         u"Returns the public ID of the DOCTYPE."
  *         def __get__(self):
  *             root_name, public_id, system_url = self._doc.getdoctype()             # <<<<<<<<<<<<<<
  *             return public_id
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -37264,7 +37356,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9public_id___get__(struct __pyx_
     if (unlikely(size != 3)) {
       if (size > 3) __Pyx_RaiseTooManyValuesError(3);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -37280,18 +37372,18 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9public_id___get__(struct __pyx_
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_4);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
@@ -37301,7 +37393,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9public_id___get__(struct __pyx_
     __Pyx_GOTREF(__pyx_t_3);
     index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = NULL;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L4_unpacking_done;
@@ -37309,7 +37401,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9public_id___get__(struct __pyx_
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_6 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_root_name = __pyx_t_2;
@@ -37319,7 +37411,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_9public_id___get__(struct __pyx_
   __pyx_v_system_url = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":506
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":503
  *         def __get__(self):
  *             root_name, public_id, system_url = self._doc.getdoctype()
  *             return public_id             # <<<<<<<<<<<<<<
@@ -37361,7 +37453,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_10system_url_1__get__(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":510
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":507
  *     property system_url:
  *         u"Returns the system ID of the DOCTYPE."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -37386,14 +37478,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_10system_url___get__(struct __py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":511
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":508
  *         u"Returns the system ID of the DOCTYPE."
  *         def __get__(self):
  *             root_name, public_id, system_url = self._doc.getdoctype()             # <<<<<<<<<<<<<<
  *             return system_url
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -37405,7 +37497,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_10system_url___get__(struct __py
     if (unlikely(size != 3)) {
       if (size > 3) __Pyx_RaiseTooManyValuesError(3);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -37421,18 +37513,18 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_10system_url___get__(struct __py
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_4);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
@@ -37442,7 +37534,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_10system_url___get__(struct __py
     __Pyx_GOTREF(__pyx_t_3);
     index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = NULL;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L4_unpacking_done;
@@ -37450,7 +37542,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_10system_url___get__(struct __py
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_6 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_root_name = __pyx_t_2;
@@ -37460,7 +37552,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_10system_url___get__(struct __py
   __pyx_v_system_url = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":512
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":509
  *         def __get__(self):
  *             root_name, public_id, system_url = self._doc.getdoctype()
  *             return system_url             # <<<<<<<<<<<<<<
@@ -37502,7 +37594,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_11xml_version_1__get__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":516
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":513
  *     property xml_version:
  *         u"Returns the XML version as declared by the document."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -37525,14 +37617,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11xml_version___get__(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":517
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":514
  *         u"Returns the XML version as declared by the document."
  *         def __get__(self):
  *             xml_version, encoding = self._doc.getxmlinfo()             # <<<<<<<<<<<<<<
  *             return xml_version
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getxmlinfo(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getxmlinfo(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -37544,7 +37636,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11xml_version___get__(struct __p
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -37557,16 +37649,16 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11xml_version___get__(struct __p
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
@@ -37574,7 +37666,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11xml_version___get__(struct __p
     __Pyx_GOTREF(__pyx_t_2);
     index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_3);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = NULL;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L4_unpacking_done;
@@ -37582,7 +37674,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11xml_version___get__(struct __p
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_t_5 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_xml_version = __pyx_t_2;
@@ -37590,7 +37682,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11xml_version___get__(struct __p
   __pyx_v_encoding = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":518
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":515
  *         def __get__(self):
  *             xml_version, encoding = self._doc.getxmlinfo()
  *             return xml_version             # <<<<<<<<<<<<<<
@@ -37630,7 +37722,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_8encoding_1__get__(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":522
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":519
  *     property encoding:
  *         u"Returns the encoding name as declared by the document."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -37653,14 +37745,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_8encoding___get__(struct __pyx_o
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":523
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":520
  *         u"Returns the encoding name as declared by the document."
  *         def __get__(self):
  *             xml_version, encoding = self._doc.getxmlinfo()             # <<<<<<<<<<<<<<
  *             return encoding
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getxmlinfo(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getxmlinfo(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -37672,7 +37764,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_8encoding___get__(struct __pyx_o
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -37685,16 +37777,16 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_8encoding___get__(struct __pyx_o
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
@@ -37702,7 +37794,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_8encoding___get__(struct __pyx_o
     __Pyx_GOTREF(__pyx_t_2);
     index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_3);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = NULL;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L4_unpacking_done;
@@ -37710,7 +37802,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_8encoding___get__(struct __pyx_o
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_t_5 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_xml_version = __pyx_t_2;
@@ -37718,7 +37810,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_8encoding___get__(struct __pyx_o
   __pyx_v_encoding = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":524
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":521
  *         def __get__(self):
  *             xml_version, encoding = self._doc.getxmlinfo()
  *             return encoding             # <<<<<<<<<<<<<<
@@ -37758,7 +37850,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_10standalone_1__get__(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":534
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":531
  *         ``standalone`` flag was set to ``'yes'`` or not.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -37775,7 +37867,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_10standalone___get__(struct __py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":535
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":532
  *         """
  *         def __get__(self):
  *             return self._doc.isstandalone()             # <<<<<<<<<<<<<<
@@ -37783,7 +37875,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_10standalone___get__(struct __py
  *     property URL:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_isstandalone(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_isstandalone(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -37812,7 +37904,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_3URL_1__get__(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":539
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":536
  *     property URL:
  *         u"The source URL of the document (or None if unknown)."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -37830,7 +37922,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_3URL___get__(struct __pyx_obj_4l
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":540
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":537
  *         u"The source URL of the document (or None if unknown)."
  *         def __get__(self):
  *             if self._doc._c_doc.URL is NULL:             # <<<<<<<<<<<<<<
@@ -37840,7 +37932,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_3URL___get__(struct __pyx_obj_4l
   __pyx_t_1 = ((__pyx_v_self->_doc->_c_doc->URL == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":541
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":538
  *         def __get__(self):
  *             if self._doc._c_doc.URL is NULL:
  *                 return None             # <<<<<<<<<<<<<<
@@ -37855,7 +37947,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_3URL___get__(struct __pyx_obj_4l
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":542
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":539
  *             if self._doc._c_doc.URL is NULL:
  *                 return None
  *             return _decodeFilename(self._doc._c_doc.URL)             # <<<<<<<<<<<<<<
@@ -37863,7 +37955,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_3URL___get__(struct __pyx_obj_4l
  *             url = _encodeFilename(url)
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_self->_doc->_c_doc->URL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_self->_doc->_c_doc->URL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -37892,7 +37984,7 @@ static int __pyx_pw_4lxml_5etree_7DocInfo_3URL_3__set__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":543
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":540
  *                 return None
  *             return _decodeFilename(self._doc._c_doc.URL)
  *         def __set__(self, url):             # <<<<<<<<<<<<<<
@@ -37914,20 +38006,19 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
   __Pyx_RefNannySetupContext("__set__", 0);
   __Pyx_INCREF(__pyx_v_url);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":544
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":541
  *             return _decodeFilename(self._doc._c_doc.URL)
  *         def __set__(self, url):
  *             url = _encodeFilename(url)             # <<<<<<<<<<<<<<
  *             c_oldurl = self._doc._c_doc.URL
  *             if url is None:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_url);
-  __pyx_v_url = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_url, __pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":545
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":542
  *         def __set__(self, url):
  *             url = _encodeFilename(url)
  *             c_oldurl = self._doc._c_doc.URL             # <<<<<<<<<<<<<<
@@ -37937,7 +38028,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
   __pyx_t_2 = __pyx_v_self->_doc->_c_doc->URL;
   __pyx_v_c_oldurl = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":546
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":543
  *             url = _encodeFilename(url)
  *             c_oldurl = self._doc._c_doc.URL
  *             if url is None:             # <<<<<<<<<<<<<<
@@ -37948,7 +38039,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
   __pyx_t_4 = (__pyx_t_3 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":547
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":544
  *             c_oldurl = self._doc._c_doc.URL
  *             if url is None:
  *                 self._doc._c_doc.URL = NULL             # <<<<<<<<<<<<<<
@@ -37960,7 +38051,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":549
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":546
  *                 self._doc._c_doc.URL = NULL
  *             else:
  *                 self._doc._c_doc.URL = tree.xmlStrdup(_xcstr(url))             # <<<<<<<<<<<<<<
@@ -37971,7 +38062,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":550
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":547
  *             else:
  *                 self._doc._c_doc.URL = tree.xmlStrdup(_xcstr(url))
  *             if c_oldurl is not NULL:             # <<<<<<<<<<<<<<
@@ -37981,7 +38072,7 @@ static int __pyx_pf_4lxml_5etree_7DocInfo_3URL_2__set__(struct __pyx_obj_4lxml_5
   __pyx_t_4 = ((__pyx_v_c_oldurl != NULL) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":551
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":548
  *                 self._doc._c_doc.URL = tree.xmlStrdup(_xcstr(url))
  *             if c_oldurl is not NULL:
  *                 tree.xmlFree(<void*>c_oldurl)             # <<<<<<<<<<<<<<
@@ -38016,7 +38107,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_7doctype_1__get__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":555
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":552
  *     property doctype:
  *         u"Returns a DOCTYPE declaration string for the document."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -38042,14 +38133,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":556
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":553
  *         u"Returns a DOCTYPE declaration string for the document."
  *         def __get__(self):
  *             root_name, public_id, system_url = self._doc.getdoctype()             # <<<<<<<<<<<<<<
  *             if public_id:
  *                 if system_url:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getdoctype(__pyx_v_self->_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -38061,7 +38152,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
     if (unlikely(size != 3)) {
       if (size > 3) __Pyx_RaiseTooManyValuesError(3);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -38077,18 +38168,18 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_4);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
@@ -38098,7 +38189,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
     __Pyx_GOTREF(__pyx_t_3);
     index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = NULL;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L4_unpacking_done;
@@ -38106,7 +38197,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_6 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_root_name = __pyx_t_2;
@@ -38116,27 +38207,27 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
   __pyx_v_system_url = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":557
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":554
  *         def __get__(self):
  *             root_name, public_id, system_url = self._doc.getdoctype()
  *             if public_id:             # <<<<<<<<<<<<<<
  *                 if system_url:
  *                     return u'<!DOCTYPE %s PUBLIC "%s" "%s">' % (
  */
-  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_public_id); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_public_id); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":558
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":555
  *             root_name, public_id, system_url = self._doc.getdoctype()
  *             if public_id:
  *                 if system_url:             # <<<<<<<<<<<<<<
  *                     return u'<!DOCTYPE %s PUBLIC "%s" "%s">' % (
  *                         root_name, public_id, system_url)
  */
-    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":559
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":556
  *             if public_id:
  *                 if system_url:
  *                     return u'<!DOCTYPE %s PUBLIC "%s" "%s">' % (             # <<<<<<<<<<<<<<
@@ -38145,14 +38236,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
  */
       __Pyx_XDECREF(__pyx_r);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":560
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":557
  *                 if system_url:
  *                     return u'<!DOCTYPE %s PUBLIC "%s" "%s">' % (
  *                         root_name, public_id, system_url)             # <<<<<<<<<<<<<<
  *                 else:
  *                     return u'<!DOCTYPE %s PUBLIC "%s">' % (
  */
-      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 557; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_INCREF(__pyx_v_root_name);
       PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_root_name);
@@ -38163,7 +38254,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
       __Pyx_INCREF(__pyx_v_system_url);
       PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_system_url);
       __Pyx_GIVEREF(__pyx_v_system_url);
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_62), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_65), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
       __pyx_r = ((PyObject *)__pyx_t_4);
@@ -38173,7 +38264,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":562
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":559
  *                         root_name, public_id, system_url)
  *                 else:
  *                     return u'<!DOCTYPE %s PUBLIC "%s">' % (             # <<<<<<<<<<<<<<
@@ -38182,14 +38273,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
  */
       __Pyx_XDECREF(__pyx_r);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":563
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":560
  *                 else:
  *                     return u'<!DOCTYPE %s PUBLIC "%s">' % (
  *                         root_name, public_id)             # <<<<<<<<<<<<<<
  *             elif system_url:
  *                 return u'<!DOCTYPE %s SYSTEM "%s">' % (
  */
-      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_root_name);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_root_name);
@@ -38197,7 +38288,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
       __Pyx_INCREF(__pyx_v_public_id);
       PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_public_id);
       __Pyx_GIVEREF(__pyx_v_public_id);
-      __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_63), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_66), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __pyx_r = ((PyObject *)__pyx_t_1);
@@ -38208,17 +38299,17 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
     goto __pyx_L5;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":564
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":561
  *                     return u'<!DOCTYPE %s PUBLIC "%s">' % (
  *                         root_name, public_id)
  *             elif system_url:             # <<<<<<<<<<<<<<
  *                 return u'<!DOCTYPE %s SYSTEM "%s">' % (
  *                     root_name, system_url)
  */
-  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_system_url); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":565
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":562
  *                         root_name, public_id)
  *             elif system_url:
  *                 return u'<!DOCTYPE %s SYSTEM "%s">' % (             # <<<<<<<<<<<<<<
@@ -38227,14 +38318,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
  */
     __Pyx_XDECREF(__pyx_r);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":566
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":563
  *             elif system_url:
  *                 return u'<!DOCTYPE %s SYSTEM "%s">' % (
  *                     root_name, system_url)             # <<<<<<<<<<<<<<
  *             elif self._doc.hasdoctype():
  *                 return u'<!DOCTYPE %s>' % root_name
  */
-    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(__pyx_v_root_name);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_root_name);
@@ -38242,7 +38333,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
     __Pyx_INCREF(__pyx_v_system_url);
     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_system_url);
     __Pyx_GIVEREF(__pyx_v_system_url);
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_64), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_67), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
     __pyx_r = ((PyObject *)__pyx_t_4);
@@ -38251,7 +38342,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
     goto __pyx_L5;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":567
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":564
  *                 return u'<!DOCTYPE %s SYSTEM "%s">' % (
  *                     root_name, system_url)
  *             elif self._doc.hasdoctype():             # <<<<<<<<<<<<<<
@@ -38261,7 +38352,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
   __pyx_t_7 = (__pyx_f_4lxml_5etree_9_Document_hasdoctype(__pyx_v_self->_doc) != 0);
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":568
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":565
  *                     root_name, system_url)
  *             elif self._doc.hasdoctype():
  *                 return u'<!DOCTYPE %s>' % root_name             # <<<<<<<<<<<<<<
@@ -38269,7 +38360,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
  *                 return u""
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_65), __pyx_v_root_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_68), __pyx_v_root_name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __pyx_r = ((PyObject *)__pyx_t_4);
     __pyx_t_4 = 0;
@@ -38278,7 +38369,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_7doctype___get__(struct __pyx_ob
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":570
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":567
  *                 return u'<!DOCTYPE %s>' % root_name
  *             else:
  *                 return u""             # <<<<<<<<<<<<<<
@@ -38322,7 +38413,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_11internalDTD_1__get__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":574
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":571
  *     property internalDTD:
  *         u"Returns a DTD validator based on the internal subset of the document."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -38339,7 +38430,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11internalDTD___get__(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":575
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":572
  *         u"Returns a DTD validator based on the internal subset of the document."
  *         def __get__(self):
  *             return _dtdFactory(self._doc._c_doc.intSubset)             # <<<<<<<<<<<<<<
@@ -38347,7 +38438,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11internalDTD___get__(struct __p
  *     property externalDTD:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__dtdFactory(__pyx_v_self->_doc->_c_doc->intSubset)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__dtdFactory(__pyx_v_self->_doc->_c_doc->intSubset)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -38376,7 +38467,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7DocInfo_11externalDTD_1__get__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":579
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":576
  *     property externalDTD:
  *         u"Returns a DTD validator based on the external subset of the document."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -38393,7 +38484,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11externalDTD___get__(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":580
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":577
  *         u"Returns a DTD validator based on the external subset of the document."
  *         def __get__(self):
  *             return _dtdFactory(self._doc._c_doc.extSubset)             # <<<<<<<<<<<<<<
@@ -38401,7 +38492,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7DocInfo_11externalDTD___get__(struct __p
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__dtdFactory(__pyx_v_self->_doc->_c_doc->extSubset)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__dtdFactory(__pyx_v_self->_doc->_c_doc->extSubset)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -38431,7 +38522,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_1_init(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":596
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":593
  *     cdef object _tag
  * 
  *     def _init(self):             # <<<<<<<<<<<<<<
@@ -38459,7 +38550,7 @@ static void __pyx_pw_4lxml_5etree_8_Element_3__dealloc__(PyObject *__pyx_v_self)
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":603
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":600
  *         """
  * 
  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
@@ -38476,7 +38567,7 @@ static void __pyx_pf_4lxml_5etree_8_Element_2__dealloc__(struct LxmlElement *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__dealloc__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":606
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":603
  *         #print "trying to free node:", <int>self._c_node
  *         #displayNode(self._c_node, 0)
  *         if self._c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -38486,16 +38577,16 @@ static void __pyx_pf_4lxml_5etree_8_Element_2__dealloc__(struct LxmlElement *__p
   __pyx_t_1 = ((__pyx_v_self->_c_node != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":607
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":604
  *         #displayNode(self._c_node, 0)
  *         if self._c_node is not NULL:
  *             _unregisterProxy(self)             # <<<<<<<<<<<<<<
  *             attemptDeallocation(self._c_node)
  *         _releaseProxy(self)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree__unregisterProxy(__pyx_v_self); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__unregisterProxy(__pyx_v_self); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":608
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":605
  *         if self._c_node is not NULL:
  *             _unregisterProxy(self)
  *             attemptDeallocation(self._c_node)             # <<<<<<<<<<<<<<
@@ -38507,7 +38598,7 @@ static void __pyx_pf_4lxml_5etree_8_Element_2__dealloc__(struct LxmlElement *__p
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":609
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":606
  *             _unregisterProxy(self)
  *             attemptDeallocation(self._c_node)
  *         _releaseProxy(self)             # <<<<<<<<<<<<<<
@@ -38538,7 +38629,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_5__setitem__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":613
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":610
  *     # MANIPULATORS
  * 
  *     def __setitem__(self, x, value):             # <<<<<<<<<<<<<<
@@ -38568,7 +38659,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__setitem__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":618
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":615
  *         Replaces the given subelement index or slice.
  *         """
  *         cdef xmlNode* c_node = NULL             # <<<<<<<<<<<<<<
@@ -38577,7 +38668,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  */
   __pyx_v_c_node = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":623
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":620
  *         cdef _Element element
  *         cdef bint left_to_right
  *         cdef Py_ssize_t slicelength = 0, step = 0             # <<<<<<<<<<<<<<
@@ -38587,16 +38678,16 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
   __pyx_v_slicelength = 0;
   __pyx_v_step = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":624
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":621
  *         cdef bint left_to_right
  *         cdef Py_ssize_t slicelength = 0, step = 0
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         if value is None:
  *             raise ValueError, u"cannot assign None"
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":625
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":622
  *         cdef Py_ssize_t slicelength = 0, step = 0
  *         _assertValidNode(self)
  *         if value is None:             # <<<<<<<<<<<<<<
@@ -38607,20 +38698,20 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":626
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":623
  *         _assertValidNode(self)
  *         if value is None:
  *             raise ValueError, u"cannot assign None"             # <<<<<<<<<<<<<<
  *         if python.PySlice_Check(x):
  *             # slice assignment
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_66), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_69), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":627
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":624
  *         if value is None:
  *             raise ValueError, u"cannot assign None"
  *         if python.PySlice_Check(x):             # <<<<<<<<<<<<<<
@@ -38630,16 +38721,16 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
   __pyx_t_3 = (PySlice_Check(__pyx_v_x) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":629
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":626
  *         if python.PySlice_Check(x):
  *             # slice assignment
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)             # <<<<<<<<<<<<<<
  *             if step > 0:
  *                 left_to_right = 1
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__findChildSlice(((PyObject*)__pyx_v_x), __pyx_v_self->_c_node, (&__pyx_v_c_node), (&__pyx_v_step), (&__pyx_v_slicelength)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__findChildSlice(((PyObject*)__pyx_v_x), __pyx_v_self->_c_node, (&__pyx_v_c_node), (&__pyx_v_step), (&__pyx_v_slicelength)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 626; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":630
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":627
  *             # slice assignment
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
  *             if step > 0:             # <<<<<<<<<<<<<<
@@ -38649,7 +38740,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
     __pyx_t_3 = ((__pyx_v_step > 0) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":631
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":628
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
  *             if step > 0:
  *                 left_to_right = 1             # <<<<<<<<<<<<<<
@@ -38661,7 +38752,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":633
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":630
  *                 left_to_right = 1
  *             else:
  *                 left_to_right = 0             # <<<<<<<<<<<<<<
@@ -38670,7 +38761,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  */
       __pyx_v_left_to_right = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":634
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":631
  *             else:
  *                 left_to_right = 0
  *                 step = -step             # <<<<<<<<<<<<<<
@@ -38681,16 +38772,16 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":635
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":632
  *                 left_to_right = 0
  *                 step = -step
  *             _replaceSlice(self, c_node, slicelength, step, left_to_right, value)             # <<<<<<<<<<<<<<
  *             return
  *         else:
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__replaceSlice(__pyx_v_self, __pyx_v_c_node, __pyx_v_slicelength, __pyx_v_step, __pyx_v_left_to_right, __pyx_v_value); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__replaceSlice(__pyx_v_self, __pyx_v_c_node, __pyx_v_slicelength, __pyx_v_step, __pyx_v_left_to_right, __pyx_v_value); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":636
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":633
  *                 step = -step
  *             _replaceSlice(self, c_node, slicelength, step, left_to_right, value)
  *             return             # <<<<<<<<<<<<<<
@@ -38703,37 +38794,37 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":639
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":636
  *         else:
  *             # otherwise: normal item assignment
  *             element = value             # <<<<<<<<<<<<<<
  *             _assertValidNode(element)
  *             c_node = _findChild(self._c_node, x)
  */
-    if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_v_value) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_value, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_INCREF(__pyx_v_value);
     __pyx_v_element = ((struct LxmlElement *)__pyx_v_value);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":640
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":637
  *             # otherwise: normal item assignment
  *             element = value
  *             _assertValidNode(element)             # <<<<<<<<<<<<<<
  *             c_node = _findChild(self._c_node, x)
  *             if c_node is NULL:
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":641
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":638
  *             element = value
  *             _assertValidNode(element)
  *             c_node = _findChild(self._c_node, x)             # <<<<<<<<<<<<<<
  *             if c_node is NULL:
  *                 raise IndexError, u"list index out of range"
  */
-    __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_x); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_x); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_node = __pyx_f_4lxml_5etree__findChild(__pyx_v_self->_c_node, __pyx_t_4);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":642
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":639
  *             _assertValidNode(element)
  *             c_node = _findChild(self._c_node, x)
  *             if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -38743,20 +38834,20 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
     __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":643
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":640
  *             c_node = _findChild(self._c_node, x)
  *             if c_node is NULL:
  *                 raise IndexError, u"list index out of range"             # <<<<<<<<<<<<<<
  *             c_source_doc = element._c_node.doc
  *             c_next = element._c_node.next
  */
-      __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_67), 0, 0);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_70), 0, 0);
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":644
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":641
  *             if c_node is NULL:
  *                 raise IndexError, u"list index out of range"
  *             c_source_doc = element._c_node.doc             # <<<<<<<<<<<<<<
@@ -38766,7 +38857,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
     __pyx_t_5 = __pyx_v_element->_c_node->doc;
     __pyx_v_c_source_doc = __pyx_t_5;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":645
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":642
  *                 raise IndexError, u"list index out of range"
  *             c_source_doc = element._c_node.doc
  *             c_next = element._c_node.next             # <<<<<<<<<<<<<<
@@ -38776,7 +38867,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
     __pyx_t_6 = __pyx_v_element->_c_node->next;
     __pyx_v_c_next = __pyx_t_6;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":646
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":643
  *             c_source_doc = element._c_node.doc
  *             c_next = element._c_node.next
  *             _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -38785,7 +38876,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  */
     __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->next);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":647
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":644
  *             c_next = element._c_node.next
  *             _removeText(c_node.next)
  *             tree.xmlReplaceNode(c_node, element._c_node)             # <<<<<<<<<<<<<<
@@ -38794,7 +38885,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  */
     xmlReplaceNode(__pyx_v_c_node, __pyx_v_element->_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":648
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":645
  *             _removeText(c_node.next)
  *             tree.xmlReplaceNode(c_node, element._c_node)
  *             _moveTail(c_next, element._c_node)             # <<<<<<<<<<<<<<
@@ -38803,7 +38894,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  */
     __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_element->_c_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":649
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":646
  *             tree.xmlReplaceNode(c_node, element._c_node)
  *             _moveTail(c_next, element._c_node)
  *             moveNodeToDocument(self._doc, c_source_doc, element._c_node)             # <<<<<<<<<<<<<<
@@ -38812,10 +38903,10 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  */
     __pyx_t_7 = ((PyObject *)__pyx_v_self->_doc);
     __Pyx_INCREF(__pyx_t_7);
-    __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":650
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":647
  *             _moveTail(c_next, element._c_node)
  *             moveNodeToDocument(self._doc, c_source_doc, element._c_node)
  *             if not attemptDeallocation(c_node):             # <<<<<<<<<<<<<<
@@ -38825,7 +38916,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
     __pyx_t_3 = ((!(__pyx_f_4lxml_5etree_attemptDeallocation(__pyx_v_c_node) != 0)) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":651
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":648
  *             moveNodeToDocument(self._doc, c_source_doc, element._c_node)
  *             if not attemptDeallocation(c_node):
  *                 moveNodeToDocument(self._doc, c_node.doc, c_node)             # <<<<<<<<<<<<<<
@@ -38834,7 +38925,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4__setitem__(struct LxmlElement *__py
  */
       __pyx_t_7 = ((PyObject *)__pyx_v_self->_doc);
       __Pyx_INCREF(__pyx_t_7);
-      __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_node->doc, __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_7), __pyx_v_c_node->doc, __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       goto __pyx_L7;
     }
@@ -38869,7 +38960,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_7__delitem__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":653
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":650
  *                 moveNodeToDocument(self._doc, c_node.doc, c_node)
  * 
  *     def __delitem__(self, x):             # <<<<<<<<<<<<<<
@@ -38894,7 +38985,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__delitem__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":658
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":655
  *         Deletes the given subelement or a slice.
  *         """
  *         cdef xmlNode* c_node = NULL             # <<<<<<<<<<<<<<
@@ -38903,7 +38994,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  */
   __pyx_v_c_node = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":660
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":657
  *         cdef xmlNode* c_node = NULL
  *         cdef xmlNode* c_next
  *         cdef Py_ssize_t step = 0, slicelength = 0             # <<<<<<<<<<<<<<
@@ -38913,16 +39004,16 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
   __pyx_v_step = 0;
   __pyx_v_slicelength = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":661
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":658
  *         cdef xmlNode* c_next
  *         cdef Py_ssize_t step = 0, slicelength = 0
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         if python.PySlice_Check(x):
  *             # slice deletion
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":662
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":659
  *         cdef Py_ssize_t step = 0, slicelength = 0
  *         _assertValidNode(self)
  *         if python.PySlice_Check(x):             # <<<<<<<<<<<<<<
@@ -38932,7 +39023,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
   __pyx_t_2 = (PySlice_Check(__pyx_v_x) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":664
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":661
  *         if python.PySlice_Check(x):
  *             # slice deletion
  *             if _isFullSlice(<slice>x):             # <<<<<<<<<<<<<<
@@ -38942,7 +39033,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
     __pyx_t_2 = (__pyx_f_4lxml_5etree__isFullSlice(((PyObject*)__pyx_v_x)) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":665
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":662
  *             # slice deletion
  *             if _isFullSlice(<slice>x):
  *                 c_node = self._c_node.children             # <<<<<<<<<<<<<<
@@ -38952,7 +39043,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
       __pyx_t_3 = __pyx_v_self->_c_node->children;
       __pyx_v_c_node = __pyx_t_3;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":666
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":663
  *             if _isFullSlice(<slice>x):
  *                 c_node = self._c_node.children
  *                 if c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -38962,7 +39053,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
       __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":667
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":664
  *                 c_node = self._c_node.children
  *                 if c_node is not NULL:
  *                     if not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -38972,7 +39063,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
         __pyx_t_2 = ((!(_isElement(__pyx_v_c_node) != 0)) != 0);
         if (__pyx_t_2) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":668
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":665
  *                 if c_node is not NULL:
  *                     if not _isElement(c_node):
  *                         c_node = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -38984,7 +39075,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
         }
         __pyx_L6:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":669
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":666
  *                     if not _isElement(c_node):
  *                         c_node = _nextElement(c_node)
  *                     while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -38995,7 +39086,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
           __pyx_t_2 = ((__pyx_v_c_node != NULL) != 0);
           if (!__pyx_t_2) break;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":670
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":667
  *                         c_node = _nextElement(c_node)
  *                     while c_node is not NULL:
  *                         c_next = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -39004,7 +39095,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  */
           __pyx_v_c_next = __pyx_f_4lxml_5etree__nextElement(__pyx_v_c_node);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":671
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":668
  *                     while c_node is not NULL:
  *                         c_next = _nextElement(c_node)
  *                         _removeNode(self._doc, c_node)             # <<<<<<<<<<<<<<
@@ -39013,10 +39104,10 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  */
           __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
           __Pyx_INCREF(__pyx_t_4);
-          __pyx_t_1 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":672
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":669
  *                         c_next = _nextElement(c_node)
  *                         _removeNode(self._doc, c_node)
  *                         c_node = c_next             # <<<<<<<<<<<<<<
@@ -39032,16 +39123,16 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":674
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":671
  *                         c_node = c_next
  *             else:
  *                 _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)             # <<<<<<<<<<<<<<
  *                 _deleteSlice(self._doc, c_node, slicelength, step)
  *         else:
  */
-      __pyx_t_1 = __pyx_f_4lxml_5etree__findChildSlice(((PyObject*)__pyx_v_x), __pyx_v_self->_c_node, (&__pyx_v_c_node), (&__pyx_v_step), (&__pyx_v_slicelength)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __pyx_f_4lxml_5etree__findChildSlice(((PyObject*)__pyx_v_x), __pyx_v_self->_c_node, (&__pyx_v_c_node), (&__pyx_v_step), (&__pyx_v_slicelength)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 671; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":675
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":672
  *             else:
  *                 _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
  *                 _deleteSlice(self._doc, c_node, slicelength, step)             # <<<<<<<<<<<<<<
@@ -39050,7 +39141,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  */
       __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
       __Pyx_INCREF(__pyx_t_4);
-      __pyx_t_1 = __pyx_f_4lxml_5etree__deleteSlice(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node, __pyx_v_slicelength, __pyx_v_step); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __pyx_f_4lxml_5etree__deleteSlice(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node, __pyx_v_slicelength, __pyx_v_step); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 672; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     }
     __pyx_L4:;
@@ -39058,17 +39149,17 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":678
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":675
  *         else:
  *             # item deletion
  *             c_node = _findChild(self._c_node, x)             # <<<<<<<<<<<<<<
  *             if c_node is NULL:
  *                 raise IndexError, u"index out of range: %d" % x
  */
-    __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_x); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_v_x); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_node = __pyx_f_4lxml_5etree__findChild(__pyx_v_self->_c_node, __pyx_t_5);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":679
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":676
  *             # item deletion
  *             c_node = _findChild(self._c_node, x)
  *             if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -39078,23 +39169,23 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
     __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":680
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":677
  *             c_node = _findChild(self._c_node, x)
  *             if c_node is NULL:
  *                 raise IndexError, u"index out of range: %d" % x             # <<<<<<<<<<<<<<
  *             _removeText(c_node.next)
  *             _removeNode(self._doc, c_node)
  */
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_68), __pyx_v_x); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_71), __pyx_v_x); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_t_4), 0, 0);
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L9;
     }
     __pyx_L9:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":681
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":678
  *             if c_node is NULL:
  *                 raise IndexError, u"index out of range: %d" % x
  *             _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -39103,7 +39194,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  */
     __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->next);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":682
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":679
  *                 raise IndexError, u"index out of range: %d" % x
  *             _removeText(c_node.next)
  *             _removeNode(self._doc, c_node)             # <<<<<<<<<<<<<<
@@ -39112,7 +39203,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_6__delitem__(struct LxmlElement *__py
  */
     __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
     __Pyx_INCREF(__pyx_t_4);
-    __pyx_t_1 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   }
   __pyx_L3:;
@@ -39140,7 +39231,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_9__deepcopy__(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":684
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":681
  *             _removeNode(self._doc, c_node)
  * 
  *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
@@ -39158,7 +39249,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_8__deepcopy__(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__deepcopy__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":686
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":683
  *     def __deepcopy__(self, memo):
  *         u"__deepcopy__(self, memo)"
  *         return self.__copy__()             # <<<<<<<<<<<<<<
@@ -39166,9 +39257,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_8__deepcopy__(struct LxmlElemen
  *     def __copy__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -39200,7 +39291,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_11__copy__(PyObject *__pyx_v_se
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":688
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":685
  *         return self.__copy__()
  * 
  *     def __copy__(self):             # <<<<<<<<<<<<<<
@@ -39228,26 +39319,26 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__copy__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":693
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":690
  *         cdef xmlNode* c_node
  *         cdef _Document new_doc
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         c_doc = _copyDocRoot(self._doc._c_doc, self._c_node) # recursive
  *         new_doc = _documentFactory(c_doc, self._doc._parser)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":694
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":691
  *         cdef _Document new_doc
  *         _assertValidNode(self)
  *         c_doc = _copyDocRoot(self._doc._c_doc, self._c_node) # recursive             # <<<<<<<<<<<<<<
  *         new_doc = _documentFactory(c_doc, self._doc._parser)
  *         root = new_doc.getroot()
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDocRoot(__pyx_v_self->_doc->_c_doc, __pyx_v_self->_c_node); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDocRoot(__pyx_v_self->_doc->_c_doc, __pyx_v_self->_c_node); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":695
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":692
  *         _assertValidNode(self)
  *         c_doc = _copyDocRoot(self._doc._c_doc, self._c_node) # recursive
  *         new_doc = _documentFactory(c_doc, self._doc._parser)             # <<<<<<<<<<<<<<
@@ -39256,25 +39347,25 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
  */
   __pyx_t_3 = ((PyObject *)__pyx_v_self->_doc->_parser);
   __Pyx_INCREF(__pyx_t_3);
-  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_v_new_doc = ((struct LxmlDocument *)__pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":696
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":693
  *         c_doc = _copyDocRoot(self._doc._c_doc, self._c_node) # recursive
  *         new_doc = _documentFactory(c_doc, self._doc._parser)
  *         root = new_doc.getroot()             # <<<<<<<<<<<<<<
  *         if root is not None:
  *             return root
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_new_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_new_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __pyx_v_root = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":697
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":694
  *         new_doc = _documentFactory(c_doc, self._doc._parser)
  *         root = new_doc.getroot()
  *         if root is not None:             # <<<<<<<<<<<<<<
@@ -39285,7 +39376,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
   __pyx_t_6 = (__pyx_t_5 != 0);
   if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":698
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":695
  *         root = new_doc.getroot()
  *         if root is not None:
  *             return root             # <<<<<<<<<<<<<<
@@ -39300,7 +39391,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":700
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":697
  *             return root
  *         # Comment/PI
  *         c_node = c_doc.children             # <<<<<<<<<<<<<<
@@ -39310,7 +39401,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
   __pyx_t_7 = __pyx_v_c_doc->children;
   __pyx_v_c_node = __pyx_t_7;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":701
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":698
  *         # Comment/PI
  *         c_node = c_doc.children
  *         while c_node is not NULL and c_node.type != self._c_node.type:             # <<<<<<<<<<<<<<
@@ -39327,7 +39418,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
     }
     if (!__pyx_t_8) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":702
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":699
  *         c_node = c_doc.children
  *         while c_node is not NULL and c_node.type != self._c_node.type:
  *             c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -39338,7 +39429,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
     __pyx_v_c_node = __pyx_t_7;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":703
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":700
  *         while c_node is not NULL and c_node.type != self._c_node.type:
  *             c_node = c_node.next
  *         if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -39348,7 +39439,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
   __pyx_t_8 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_8) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":704
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":701
  *             c_node = c_node.next
  *         if c_node is NULL:
  *             return None             # <<<<<<<<<<<<<<
@@ -39363,7 +39454,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":705
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":702
  *         if c_node is NULL:
  *             return None
  *         return _elementFactory(new_doc, c_node)             # <<<<<<<<<<<<<<
@@ -39371,7 +39462,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10__copy__(struct LxmlElement *
  *     def set(self, key, value):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_new_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_new_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __pyx_r = __pyx_t_4;
   __pyx_t_4 = 0;
@@ -39424,11 +39515,11 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_13set(PyObject *__pyx_v_self, P
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -39441,7 +39532,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_13set(PyObject *__pyx_v_self, P
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.set", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -39452,7 +39543,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_13set(PyObject *__pyx_v_self, P
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":707
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":704
  *         return _elementFactory(new_doc, c_node)
  * 
  *     def set(self, key, value):             # <<<<<<<<<<<<<<
@@ -39469,23 +39560,23 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_12set(struct LxmlElement *__pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("set", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":712
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":709
  *         Sets an element attribute.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         _setAttributeValue(self, key, value)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":713
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":710
  *         """
  *         _assertValidNode(self)
  *         _setAttributeValue(self, key, value)             # <<<<<<<<<<<<<<
  * 
  *     def append(self, _Element element not None):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__setAttributeValue(__pyx_v_self, __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__setAttributeValue(__pyx_v_self, __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -39508,7 +39599,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_15append(PyObject *__pyx_v_self
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("append (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_8_Element_14append(((struct LxmlElement *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_element));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -39518,7 +39609,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_15append(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":715
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":712
  *         _setAttributeValue(self, key, value)
  * 
  *     def append(self, _Element element not None):             # <<<<<<<<<<<<<<
@@ -39535,32 +39626,32 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_14append(struct LxmlElement *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("append", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":720
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":717
  *         Adds a subelement to the end of this element.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         _assertValidNode(element)
  *         _appendChild(self, element)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":721
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":718
  *         """
  *         _assertValidNode(self)
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         _appendChild(self, element)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":722
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":719
  *         _assertValidNode(self)
  *         _assertValidNode(element)
  *         _appendChild(self, element)             # <<<<<<<<<<<<<<
  * 
  *     def addnext(self, _Element element not None):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -39583,7 +39674,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_17addnext(PyObject *__pyx_v_sel
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("addnext (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_8_Element_16addnext(((struct LxmlElement *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_element));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -39593,7 +39684,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_17addnext(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":724
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":721
  *         _appendChild(self, element)
  * 
  *     def addnext(self, _Element element not None):             # <<<<<<<<<<<<<<
@@ -39613,25 +39704,25 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("addnext", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":734
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":731
  *         discarded when adding at the root level.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         _assertValidNode(element)
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":735
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":732
  *         """
  *         _assertValidNode(self)
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):
  *             if element._c_node.type != tree.XML_PI_NODE:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":736
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":733
  *         _assertValidNode(self)
  *         _assertValidNode(element)
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):             # <<<<<<<<<<<<<<
@@ -39647,7 +39738,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":737
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":734
  *         _assertValidNode(element)
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):
  *             if element._c_node.type != tree.XML_PI_NODE:             # <<<<<<<<<<<<<<
@@ -39657,7 +39748,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
     __pyx_t_4 = ((__pyx_v_element->_c_node->type != XML_PI_NODE) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":738
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":735
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):
  *             if element._c_node.type != tree.XML_PI_NODE:
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:             # <<<<<<<<<<<<<<
@@ -39667,15 +39758,15 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
       __pyx_t_4 = ((__pyx_v_element->_c_node->type != XML_COMMENT_NODE) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":739
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":736
  *             if element._c_node.type != tree.XML_PI_NODE:
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"             # <<<<<<<<<<<<<<
  *             element.tail = None
  *         _appendSibling(self, element)
  */
-        __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_69), 0, 0);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_72), 0, 0);
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L5;
       }
       __pyx_L5:;
@@ -39683,26 +39774,26 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_16addnext(struct LxmlElement *_
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":740
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":737
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"
  *             element.tail = None             # <<<<<<<<<<<<<<
  *         _appendSibling(self, element)
  * 
  */
-    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":741
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":738
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"
  *             element.tail = None
  *         _appendSibling(self, element)             # <<<<<<<<<<<<<<
  * 
  *     def addprevious(self, _Element element not None):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__appendSibling(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__appendSibling(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 738; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -39725,7 +39816,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_19addprevious(PyObject *__pyx_v
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("addprevious (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_8_Element_18addprevious(((struct LxmlElement *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_element));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -39735,7 +39826,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_19addprevious(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":743
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":740
  *         _appendSibling(self, element)
  * 
  *     def addprevious(self, _Element element not None):             # <<<<<<<<<<<<<<
@@ -39755,25 +39846,25 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_18addprevious(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("addprevious", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":753
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":750
  *         automatically discarded when adding at the root level.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         _assertValidNode(element)
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":754
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":751
  *         """
  *         _assertValidNode(self)
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):
  *             if element._c_node.type != tree.XML_PI_NODE:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":755
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":752
  *         _assertValidNode(self)
  *         _assertValidNode(element)
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):             # <<<<<<<<<<<<<<
@@ -39789,7 +39880,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_18addprevious(struct LxmlElemen
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":756
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":753
  *         _assertValidNode(element)
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):
  *             if element._c_node.type != tree.XML_PI_NODE:             # <<<<<<<<<<<<<<
@@ -39799,7 +39890,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_18addprevious(struct LxmlElemen
     __pyx_t_4 = ((__pyx_v_element->_c_node->type != XML_PI_NODE) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":757
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":754
  *         if self._c_node.parent != NULL and not _isElement(self._c_node.parent):
  *             if element._c_node.type != tree.XML_PI_NODE:
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:             # <<<<<<<<<<<<<<
@@ -39809,15 +39900,15 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_18addprevious(struct LxmlElemen
       __pyx_t_4 = ((__pyx_v_element->_c_node->type != XML_COMMENT_NODE) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":758
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":755
  *             if element._c_node.type != tree.XML_PI_NODE:
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"             # <<<<<<<<<<<<<<
  *             element.tail = None
  *         _prependSibling(self, element)
  */
-        __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_69), 0, 0);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_72), 0, 0);
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L5;
       }
       __pyx_L5:;
@@ -39825,26 +39916,26 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_18addprevious(struct LxmlElemen
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":759
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":756
  *                 if element._c_node.type != tree.XML_COMMENT_NODE:
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"
  *             element.tail = None             # <<<<<<<<<<<<<<
  *         _prependSibling(self, element)
  * 
  */
-    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail, Py_None) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":760
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":757
  *                     raise TypeError, u"Only processing instructions and comments can be siblings of the root element"
  *             element.tail = None
  *         _prependSibling(self, element)             # <<<<<<<<<<<<<<
  * 
  *     def extend(self, elements):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__prependSibling(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__prependSibling(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -39869,7 +39960,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_21extend(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":762
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":759
  *         _prependSibling(self, element)
  * 
  *     def extend(self, elements):             # <<<<<<<<<<<<<<
@@ -39893,16 +39984,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_20extend(struct LxmlElement *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("extend", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":768
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":765
  *         """
  *         cdef _Element element
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         for element in elements:
  *             if element is None:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":769
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":766
  *         cdef _Element element
  *         _assertValidNode(self)
  *         for element in elements:             # <<<<<<<<<<<<<<
@@ -39913,7 +40004,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_20extend(struct LxmlElement *__
     __pyx_t_2 = __pyx_v_elements; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
     __pyx_t_4 = NULL;
   } else {
-    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_elements); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
   }
@@ -39921,34 +40012,33 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_20extend(struct LxmlElement *__
     if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_2)) {
       if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_2)) {
       if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_5 = __pyx_t_4(__pyx_t_2);
       if (unlikely(!__pyx_t_5)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
       __Pyx_GOTREF(__pyx_t_5);
     }
-    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_element));
-    __pyx_v_element = ((struct LxmlElement *)__pyx_t_5);
+    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_5));
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":770
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":767
  *         _assertValidNode(self)
  *         for element in elements:
  *             if element is None:             # <<<<<<<<<<<<<<
@@ -39959,7 +40049,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_20extend(struct LxmlElement *__
     __pyx_t_7 = (__pyx_t_6 != 0);
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":771
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":768
  *         for element in elements:
  *             if element is None:
  *                 raise TypeError, u"Node must not be None"             # <<<<<<<<<<<<<<
@@ -39967,28 +40057,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_20extend(struct LxmlElement *__
  *             _appendChild(self, element)
  */
       __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_28), 0, 0);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":772
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":769
  *             if element is None:
  *                 raise TypeError, u"Node must not be None"
  *             _assertValidNode(element)             # <<<<<<<<<<<<<<
  *             _appendChild(self, element)
  * 
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":773
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":770
  *                 raise TypeError, u"Node must not be None"
  *             _assertValidNode(element)
  *             _appendChild(self, element)             # <<<<<<<<<<<<<<
  * 
  *     def clear(self):
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
@@ -40018,7 +40108,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_23clear(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":775
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":772
  *             _appendChild(self, element)
  * 
  *     def clear(self):             # <<<<<<<<<<<<<<
@@ -40043,16 +40133,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("clear", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":785
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":782
  *         cdef xmlNode* c_node
  *         cdef xmlNode* c_node_next
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         c_node = self._c_node
  *         # remove self.text and self.tail
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":786
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":783
  *         cdef xmlNode* c_node_next
  *         _assertValidNode(self)
  *         c_node = self._c_node             # <<<<<<<<<<<<<<
@@ -40062,7 +40152,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
   __pyx_t_2 = __pyx_v_self->_c_node;
   __pyx_v_c_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":788
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":785
  *         c_node = self._c_node
  *         # remove self.text and self.tail
  *         _removeText(c_node.children)             # <<<<<<<<<<<<<<
@@ -40071,7 +40161,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  */
   __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->children);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":789
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":786
  *         # remove self.text and self.tail
  *         _removeText(c_node.children)
  *         _removeText(c_node.next)             # <<<<<<<<<<<<<<
@@ -40080,7 +40170,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  */
   __pyx_f_4lxml_5etree__removeText(__pyx_v_c_node->next);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":791
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":788
  *         _removeText(c_node.next)
  *         # remove all attributes
  *         c_attr = c_node.properties             # <<<<<<<<<<<<<<
@@ -40090,7 +40180,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
   __pyx_t_3 = __pyx_v_c_node->properties;
   __pyx_v_c_attr = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":792
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":789
  *         # remove all attributes
  *         c_attr = c_node.properties
  *         while c_attr is not NULL:             # <<<<<<<<<<<<<<
@@ -40101,7 +40191,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
     __pyx_t_4 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_4) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":793
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":790
  *         c_attr = c_node.properties
  *         while c_attr is not NULL:
  *             c_attr_next = c_attr.next             # <<<<<<<<<<<<<<
@@ -40111,7 +40201,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
     __pyx_t_3 = __pyx_v_c_attr->next;
     __pyx_v_c_attr_next = __pyx_t_3;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":794
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":791
  *         while c_attr is not NULL:
  *             c_attr_next = c_attr.next
  *             tree.xmlRemoveProp(c_attr)             # <<<<<<<<<<<<<<
@@ -40120,7 +40210,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  */
     xmlRemoveProp(__pyx_v_c_attr);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":795
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":792
  *             c_attr_next = c_attr.next
  *             tree.xmlRemoveProp(c_attr)
  *             c_attr = c_attr_next             # <<<<<<<<<<<<<<
@@ -40130,7 +40220,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
     __pyx_v_c_attr = __pyx_v_c_attr_next;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":797
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":794
  *             c_attr = c_attr_next
  *         # remove all subelements
  *         c_node = c_node.children             # <<<<<<<<<<<<<<
@@ -40140,7 +40230,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
   __pyx_t_2 = __pyx_v_c_node->children;
   __pyx_v_c_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":798
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":795
  *         # remove all subelements
  *         c_node = c_node.children
  *         if c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -40150,7 +40240,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
   __pyx_t_4 = ((__pyx_v_c_node != NULL) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":799
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":796
  *         c_node = c_node.children
  *         if c_node is not NULL:
  *             if not _isElement(c_node):             # <<<<<<<<<<<<<<
@@ -40160,7 +40250,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
     __pyx_t_4 = ((!(_isElement(__pyx_v_c_node) != 0)) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":800
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":797
  *         if c_node is not NULL:
  *             if not _isElement(c_node):
  *                 c_node = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -40172,7 +40262,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":801
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":798
  *             if not _isElement(c_node):
  *                 c_node = _nextElement(c_node)
  *             while c_node is not NULL:             # <<<<<<<<<<<<<<
@@ -40183,7 +40273,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
       __pyx_t_4 = ((__pyx_v_c_node != NULL) != 0);
       if (!__pyx_t_4) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":802
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":799
  *                 c_node = _nextElement(c_node)
  *             while c_node is not NULL:
  *                 c_node_next = _nextElement(c_node)             # <<<<<<<<<<<<<<
@@ -40192,7 +40282,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  */
       __pyx_v_c_node_next = __pyx_f_4lxml_5etree__nextElement(__pyx_v_c_node);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":803
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":800
  *             while c_node is not NULL:
  *                 c_node_next = _nextElement(c_node)
  *                 _removeNode(self._doc, c_node)             # <<<<<<<<<<<<<<
@@ -40201,10 +40291,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_22clear(struct LxmlElement *__p
  */
       __pyx_t_5 = ((PyObject *)__pyx_v_self->_doc);
       __Pyx_INCREF(__pyx_t_5);
-      __pyx_t_1 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __pyx_f_4lxml_5etree__removeNode(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":804
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":801
  *                 c_node_next = _nextElement(c_node)
  *                 _removeNode(self._doc, c_node)
  *                 c_node = c_node_next             # <<<<<<<<<<<<<<
@@ -40261,11 +40351,11 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_25insert(PyObject *__pyx_v_self
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__element)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -40278,13 +40368,13 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_25insert(PyObject *__pyx_v_self
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_8_Element_24insert(((struct LxmlElement *)__pyx_v_self), __pyx_v_index, __pyx_v_element);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -40294,7 +40384,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_25insert(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":806
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":803
  *                 c_node = c_node_next
  * 
  *     def insert(self, index, _Element element not None):             # <<<<<<<<<<<<<<
@@ -40319,35 +40409,35 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("insert", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":814
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":811
  *         cdef xmlNode* c_next
  *         cdef xmlDoc* c_source_doc
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         _assertValidNode(element)
  *         c_node = _findChild(self._c_node, index)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":815
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":812
  *         cdef xmlDoc* c_source_doc
  *         _assertValidNode(self)
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         c_node = _findChild(self._c_node, index)
  *         if c_node is NULL:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":816
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":813
  *         _assertValidNode(self)
  *         _assertValidNode(element)
  *         c_node = _findChild(self._c_node, index)             # <<<<<<<<<<<<<<
  *         if c_node is NULL:
  *             _appendChild(self, element)
  */
-  __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyIndex_AsSsize_t(__pyx_v_index); if (unlikely((__pyx_t_2 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_node = __pyx_f_4lxml_5etree__findChild(__pyx_v_self->_c_node, __pyx_t_2);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":817
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":814
  *         _assertValidNode(element)
  *         c_node = _findChild(self._c_node, index)
  *         if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -40357,16 +40447,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
   __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":818
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":815
  *         c_node = _findChild(self._c_node, index)
  *         if c_node is NULL:
  *             _appendChild(self, element)             # <<<<<<<<<<<<<<
  *             return
  *         c_source_doc = c_node.doc
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(__pyx_v_self, __pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":819
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":816
  *         if c_node is NULL:
  *             _appendChild(self, element)
  *             return             # <<<<<<<<<<<<<<
@@ -40380,7 +40470,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":820
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":817
  *             _appendChild(self, element)
  *             return
  *         c_source_doc = c_node.doc             # <<<<<<<<<<<<<<
@@ -40390,7 +40480,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
   __pyx_t_4 = __pyx_v_c_node->doc;
   __pyx_v_c_source_doc = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":821
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":818
  *             return
  *         c_source_doc = c_node.doc
  *         c_next = element._c_node.next             # <<<<<<<<<<<<<<
@@ -40400,7 +40490,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
   __pyx_t_5 = __pyx_v_element->_c_node->next;
   __pyx_v_c_next = __pyx_t_5;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":822
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":819
  *         c_source_doc = c_node.doc
  *         c_next = element._c_node.next
  *         tree.xmlAddPrevSibling(c_node, element._c_node)             # <<<<<<<<<<<<<<
@@ -40409,7 +40499,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
  */
   xmlAddPrevSibling(__pyx_v_c_node, __pyx_v_element->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":823
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":820
  *         c_next = element._c_node.next
  *         tree.xmlAddPrevSibling(c_node, element._c_node)
  *         _moveTail(c_next, element._c_node)             # <<<<<<<<<<<<<<
@@ -40418,7 +40508,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_element->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":824
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":821
  *         tree.xmlAddPrevSibling(c_node, element._c_node)
  *         _moveTail(c_next, element._c_node)
  *         moveNodeToDocument(self._doc, c_source_doc, element._c_node)             # <<<<<<<<<<<<<<
@@ -40427,7 +40517,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_24insert(struct LxmlElement *__
  */
   __pyx_t_6 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_6);
-  __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_source_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -40452,7 +40542,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_27remove(PyObject *__pyx_v_self
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("remove (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_8_Element_26remove(((struct LxmlElement *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_element));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -40462,7 +40552,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_27remove(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":826
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":823
  *         moveNodeToDocument(self._doc, c_source_doc, element._c_node)
  * 
  *     def remove(self, _Element element not None):             # <<<<<<<<<<<<<<
@@ -40484,25 +40574,25 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_26remove(struct LxmlElement *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("remove", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":835
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":832
  *         cdef xmlNode* c_node
  *         cdef xmlNode* c_next
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         _assertValidNode(element)
  *         c_node = element._c_node
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":836
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":833
  *         cdef xmlNode* c_next
  *         _assertValidNode(self)
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         c_node = element._c_node
  *         if c_node.parent is not self._c_node:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":837
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":834
  *         _assertValidNode(self)
  *         _assertValidNode(element)
  *         c_node = element._c_node             # <<<<<<<<<<<<<<
@@ -40512,7 +40602,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_26remove(struct LxmlElement *__
   __pyx_t_2 = __pyx_v_element->_c_node;
   __pyx_v_c_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":838
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":835
  *         _assertValidNode(element)
  *         c_node = element._c_node
  *         if c_node.parent is not self._c_node:             # <<<<<<<<<<<<<<
@@ -40522,20 +40612,20 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_26remove(struct LxmlElement *__
   __pyx_t_3 = ((__pyx_v_c_node->parent != __pyx_v_self->_c_node) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":839
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":836
  *         c_node = element._c_node
  *         if c_node.parent is not self._c_node:
  *             raise ValueError, u"Element is not a child of this node."             # <<<<<<<<<<<<<<
  *         c_next = element._c_node.next
  *         tree.xmlUnlinkNode(c_node)
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_70), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_73), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":840
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":837
  *         if c_node.parent is not self._c_node:
  *             raise ValueError, u"Element is not a child of this node."
  *         c_next = element._c_node.next             # <<<<<<<<<<<<<<
@@ -40545,7 +40635,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_26remove(struct LxmlElement *__
   __pyx_t_2 = __pyx_v_element->_c_node->next;
   __pyx_v_c_next = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":841
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":838
  *             raise ValueError, u"Element is not a child of this node."
  *         c_next = element._c_node.next
  *         tree.xmlUnlinkNode(c_node)             # <<<<<<<<<<<<<<
@@ -40554,7 +40644,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_26remove(struct LxmlElement *__
  */
   xmlUnlinkNode(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":842
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":839
  *         c_next = element._c_node.next
  *         tree.xmlUnlinkNode(c_node)
  *         _moveTail(c_next, c_node)             # <<<<<<<<<<<<<<
@@ -40563,7 +40653,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_26remove(struct LxmlElement *__
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_next, __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":844
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":841
  *         _moveTail(c_next, c_node)
  *         # fix namespace declarations
  *         moveNodeToDocument(self._doc, c_node.doc, c_node)             # <<<<<<<<<<<<<<
@@ -40572,7 +40662,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_26remove(struct LxmlElement *__
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node->doc, __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_4), __pyx_v_c_node->doc, __pyx_v_c_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -40619,11 +40709,11 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_29replace(PyObject *__pyx_v_sel
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__new_element)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("replace", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("replace", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "replace") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "replace") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -40636,14 +40726,14 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_29replace(PyObject *__pyx_v_sel
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("replace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("replace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.replace", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_old_element), __pyx_ptype_4lxml_5etree__Element, 0, "old_element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_new_element), __pyx_ptype_4lxml_5etree__Element, 0, "new_element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_old_element), __pyx_ptype_4lxml_5etree__Element, 0, "old_element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_new_element), __pyx_ptype_4lxml_5etree__Element, 0, "new_element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_8_Element_28replace(((struct LxmlElement *)__pyx_v_self), __pyx_v_old_element, __pyx_v_new_element);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -40653,7 +40743,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_29replace(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":846
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":843
  *         moveNodeToDocument(self._doc, c_node.doc, c_node)
  * 
  *     def replace(self, _Element old_element not None,             # <<<<<<<<<<<<<<
@@ -40679,34 +40769,34 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("replace", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":857
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":854
  *         cdef xmlNode* c_new_next
  *         cdef xmlDoc* c_source_doc
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         _assertValidNode(old_element)
  *         _assertValidNode(new_element)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 857; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":858
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":855
  *         cdef xmlDoc* c_source_doc
  *         _assertValidNode(self)
  *         _assertValidNode(old_element)             # <<<<<<<<<<<<<<
  *         _assertValidNode(new_element)
  *         c_old_node = old_element._c_node
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_old_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_old_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":859
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":856
  *         _assertValidNode(self)
  *         _assertValidNode(old_element)
  *         _assertValidNode(new_element)             # <<<<<<<<<<<<<<
  *         c_old_node = old_element._c_node
  *         if c_old_node.parent is not self._c_node:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_new_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_new_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":860
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":857
  *         _assertValidNode(old_element)
  *         _assertValidNode(new_element)
  *         c_old_node = old_element._c_node             # <<<<<<<<<<<<<<
@@ -40716,7 +40806,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
   __pyx_t_2 = __pyx_v_old_element->_c_node;
   __pyx_v_c_old_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":861
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":858
  *         _assertValidNode(new_element)
  *         c_old_node = old_element._c_node
  *         if c_old_node.parent is not self._c_node:             # <<<<<<<<<<<<<<
@@ -40726,20 +40816,20 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
   __pyx_t_3 = ((__pyx_v_c_old_node->parent != __pyx_v_self->_c_node) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":862
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":859
  *         c_old_node = old_element._c_node
  *         if c_old_node.parent is not self._c_node:
  *             raise ValueError, u"Element is not a child of this node."             # <<<<<<<<<<<<<<
  *         c_old_next = c_old_node.next
  *         c_new_node = new_element._c_node
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_70), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_73), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 859; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":863
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":860
  *         if c_old_node.parent is not self._c_node:
  *             raise ValueError, u"Element is not a child of this node."
  *         c_old_next = c_old_node.next             # <<<<<<<<<<<<<<
@@ -40749,7 +40839,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
   __pyx_t_2 = __pyx_v_c_old_node->next;
   __pyx_v_c_old_next = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":864
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":861
  *             raise ValueError, u"Element is not a child of this node."
  *         c_old_next = c_old_node.next
  *         c_new_node = new_element._c_node             # <<<<<<<<<<<<<<
@@ -40759,7 +40849,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
   __pyx_t_2 = __pyx_v_new_element->_c_node;
   __pyx_v_c_new_node = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":865
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":862
  *         c_old_next = c_old_node.next
  *         c_new_node = new_element._c_node
  *         c_new_next = c_new_node.next             # <<<<<<<<<<<<<<
@@ -40769,7 +40859,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
   __pyx_t_2 = __pyx_v_c_new_node->next;
   __pyx_v_c_new_next = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":866
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":863
  *         c_new_node = new_element._c_node
  *         c_new_next = c_new_node.next
  *         c_source_doc = c_new_node.doc             # <<<<<<<<<<<<<<
@@ -40779,7 +40869,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
   __pyx_t_4 = __pyx_v_c_new_node->doc;
   __pyx_v_c_source_doc = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":867
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":864
  *         c_new_next = c_new_node.next
  *         c_source_doc = c_new_node.doc
  *         tree.xmlReplaceNode(c_old_node, c_new_node)             # <<<<<<<<<<<<<<
@@ -40788,7 +40878,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
  */
   xmlReplaceNode(__pyx_v_c_old_node, __pyx_v_c_new_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":868
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":865
  *         c_source_doc = c_new_node.doc
  *         tree.xmlReplaceNode(c_old_node, c_new_node)
  *         _moveTail(c_new_next, c_new_node)             # <<<<<<<<<<<<<<
@@ -40797,7 +40887,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_new_next, __pyx_v_c_new_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":869
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":866
  *         tree.xmlReplaceNode(c_old_node, c_new_node)
  *         _moveTail(c_new_next, c_new_node)
  *         _moveTail(c_old_next, c_old_node)             # <<<<<<<<<<<<<<
@@ -40806,7 +40896,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
  */
   __pyx_f_4lxml_5etree__moveTail(__pyx_v_c_old_next, __pyx_v_c_old_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":870
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":867
  *         _moveTail(c_new_next, c_new_node)
  *         _moveTail(c_old_next, c_old_node)
  *         moveNodeToDocument(self._doc, c_source_doc, c_new_node)             # <<<<<<<<<<<<<<
@@ -40815,10 +40905,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
  */
   __pyx_t_5 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_5);
-  __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_source_doc, __pyx_v_c_new_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_source_doc, __pyx_v_c_new_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":872
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":869
  *         moveNodeToDocument(self._doc, c_source_doc, c_new_node)
  *         # fix namespace declarations
  *         moveNodeToDocument(self._doc, c_old_node.doc, c_old_node)             # <<<<<<<<<<<<<<
@@ -40827,7 +40917,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_28replace(struct LxmlElement *_
  */
   __pyx_t_5 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_5);
-  __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_old_node->doc, __pyx_v_c_old_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 872; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_moveNodeToDocument(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_old_node->doc, __pyx_v_c_old_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -40853,7 +40943,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_3tag_1__get__(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":878
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":875
  *         u"""Element tag
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -40873,7 +40963,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":879
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":876
  *         """
  *         def __get__(self):
  *             if self._tag is not None:             # <<<<<<<<<<<<<<
@@ -40884,7 +40974,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":880
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":877
  *         def __get__(self):
  *             if self._tag is not None:
  *                 return self._tag             # <<<<<<<<<<<<<<
@@ -40899,23 +40989,23 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":881
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":878
  *             if self._tag is not None:
  *                 return self._tag
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             self._tag = _namespacedName(self._c_node)
  *             return self._tag
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":882
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":879
  *                 return self._tag
  *             _assertValidNode(self)
  *             self._tag = _namespacedName(self._c_node)             # <<<<<<<<<<<<<<
  *             return self._tag
  * 
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedName(__pyx_v_self->_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__namespacedName(__pyx_v_self->_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
   __Pyx_GOTREF(__pyx_v_self->_tag);
@@ -40923,7 +41013,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_3tag___get__(struct LxmlElement
   __pyx_v_self->_tag = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":883
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":880
  *             _assertValidNode(self)
  *             self._tag = _namespacedName(self._c_node)
  *             return self._tag             # <<<<<<<<<<<<<<
@@ -40958,7 +41048,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_3tag_3__set__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":885
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":882
  *             return self._tag
  * 
  *         def __set__(self, value):             # <<<<<<<<<<<<<<
@@ -40985,23 +41075,23 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__set__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":887
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":884
  *         def __set__(self, value):
  *             cdef _BaseParser parser
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             ns, name = _getNsTag(value)
  *             parser = self._doc._parser
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":888
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":885
  *             cdef _BaseParser parser
  *             _assertValidNode(self)
  *             ns, name = _getNsTag(value)             # <<<<<<<<<<<<<<
  *             parser = self._doc._parser
  *             if parser is not None and parser._for_html:
  */
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   if (likely(PyTuple_CheckExact(__pyx_t_2))) {
     PyObject* sequence = __pyx_t_2;
@@ -41013,7 +41103,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
@@ -41021,18 +41111,18 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_4);
     #else
-    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     #endif
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   } else if (1) {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
@@ -41040,7 +41130,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
     __Pyx_GOTREF(__pyx_t_3);
     index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = NULL;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L4_unpacking_done;
@@ -41048,7 +41138,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_6 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_ns = __pyx_t_3;
@@ -41056,7 +41146,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
   __pyx_v_name = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":889
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":886
  *             _assertValidNode(self)
  *             ns, name = _getNsTag(value)
  *             parser = self._doc._parser             # <<<<<<<<<<<<<<
@@ -41068,7 +41158,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
   __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":890
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":887
  *             ns, name = _getNsTag(value)
  *             parser = self._doc._parser
  *             if parser is not None and parser._for_html:             # <<<<<<<<<<<<<<
@@ -41083,30 +41173,30 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
   }
   if (__pyx_t_8) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":891
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":888
  *             parser = self._doc._parser
  *             if parser is not None and parser._for_html:
  *                 _htmlTagValidOrRaise(name)             # <<<<<<<<<<<<<<
  *             else:
  *                 _tagValidOrRaise(name)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__htmlTagValidOrRaise(__pyx_v_name); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":893
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":890
  *                 _htmlTagValidOrRaise(name)
  *             else:
  *                 _tagValidOrRaise(name)             # <<<<<<<<<<<<<<
  *             self._tag = value
  *             tree.xmlNodeSetName(self._c_node, _xcstr(name))
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_name); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":894
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":891
  *             else:
  *                 _tagValidOrRaise(name)
  *             self._tag = value             # <<<<<<<<<<<<<<
@@ -41119,7 +41209,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
   __Pyx_DECREF(__pyx_v_self->_tag);
   __pyx_v_self->_tag = __pyx_v_value;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":895
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":892
  *                 _tagValidOrRaise(name)
  *             self._tag = value
  *             tree.xmlNodeSetName(self._c_node, _xcstr(name))             # <<<<<<<<<<<<<<
@@ -41128,7 +41218,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
  */
   xmlNodeSetName(__pyx_v_self->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_name));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":896
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":893
  *             self._tag = value
  *             tree.xmlNodeSetName(self._c_node, _xcstr(name))
  *             if ns is None:             # <<<<<<<<<<<<<<
@@ -41139,7 +41229,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
   __pyx_t_7 = (__pyx_t_8 != 0);
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":897
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":894
  *             tree.xmlNodeSetName(self._c_node, _xcstr(name))
  *             if ns is None:
  *                 self._c_node.ns = NULL             # <<<<<<<<<<<<<<
@@ -41151,14 +41241,14 @@ static int __pyx_pf_4lxml_5etree_8_Element_3tag_2__set__(struct LxmlElement *__p
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":899
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":896
  *                 self._c_node.ns = NULL
  *             else:
  *                 self._doc._setNodeNs(self._c_node, _xcstr(ns))             # <<<<<<<<<<<<<<
  * 
  *     property attrib:
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document__setNodeNs(__pyx_v_self->_doc, __pyx_v_self->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document__setNodeNs(__pyx_v_self->_doc, __pyx_v_self->_c_node, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_ns)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L6:;
 
@@ -41190,7 +41280,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_6attrib_1__get__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":905
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":902
  *         keys(), values() and items() to access element attributes.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -41209,16 +41299,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6attrib___get__(struct LxmlElem
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":906
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":903
  *         """
  *         def __get__(self):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             return _Attrib(self)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":907
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":904
  *         def __get__(self):
  *             _assertValidNode(self)
  *             return _Attrib(self)             # <<<<<<<<<<<<<<
@@ -41226,12 +41316,12 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6attrib___get__(struct LxmlElem
  *     property text:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Attrib)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__Attrib)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_3;
@@ -41262,7 +41352,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_4text_1__get__(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":913
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":910
  *         the value None, if there was no text.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -41280,16 +41370,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4text___get__(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":914
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":911
  *         """
  *         def __get__(self):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             return _collectText(self._c_node.children)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":915
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":912
  *         def __get__(self):
  *             _assertValidNode(self)
  *             return _collectText(self._c_node.children)             # <<<<<<<<<<<<<<
@@ -41297,7 +41387,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4text___get__(struct LxmlElemen
  *         def __set__(self, value):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__collectText(__pyx_v_self->_c_node->children); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__collectText(__pyx_v_self->_c_node->children); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -41326,7 +41416,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_4text_3__set__(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":917
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":914
  *             return _collectText(self._c_node.children)
  * 
  *         def __set__(self, value):             # <<<<<<<<<<<<<<
@@ -41348,16 +41438,16 @@ static int __pyx_pf_4lxml_5etree_8_Element_4text_2__set__(struct LxmlElement *__
   __Pyx_RefNannySetupContext("__set__", 0);
   __Pyx_INCREF(__pyx_v_value);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":918
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":915
  * 
  *         def __set__(self, value):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             if isinstance(value, QName):
  *                 value = _resolveQNameText(self, value).decode('utf8')
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":919
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":916
  *         def __set__(self, value):
  *             _assertValidNode(self)
  *             if isinstance(value, QName):             # <<<<<<<<<<<<<<
@@ -41368,37 +41458,36 @@ static int __pyx_pf_4lxml_5etree_8_Element_4text_2__set__(struct LxmlElement *__
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":920
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":917
  *             _assertValidNode(self)
  *             if isinstance(value, QName):
  *                 value = _resolveQNameText(self, value).decode('utf8')             # <<<<<<<<<<<<<<
  *             _setNodeText(self._c_node, value)
  * 
  */
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__resolveQNameText(__pyx_v_self, __pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__resolveQNameText(__pyx_v_self, __pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     if (unlikely(__pyx_t_4 == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_5 = ((PyObject *)__Pyx_decode_bytes(__pyx_t_4, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = ((PyObject *)__Pyx_decode_bytes(__pyx_t_4, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = ((PyObject *)__pyx_t_5);
+    __Pyx_DECREF_SET(__pyx_v_value, ((PyObject *)__pyx_t_5));
     __pyx_t_5 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":921
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":918
  *             if isinstance(value, QName):
  *                 value = _resolveQNameText(self, value).decode('utf8')
  *             _setNodeText(self._c_node, value)             # <<<<<<<<<<<<<<
  * 
  *         # using 'del el.text' is the wrong thing to do
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__setNodeText(__pyx_v_self->_c_node, __pyx_v_value); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__setNodeText(__pyx_v_self->_c_node, __pyx_v_value); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
   goto __pyx_L0;
@@ -41424,7 +41513,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_4tail_1__get__(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":932
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":929
  *         there was no text.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -41442,16 +41531,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4tail___get__(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":933
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":930
  *         """
  *         def __get__(self):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             return _collectText(self._c_node.next)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":934
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":931
  *         def __get__(self):
  *             _assertValidNode(self)
  *             return _collectText(self._c_node.next)             # <<<<<<<<<<<<<<
@@ -41459,7 +41548,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4tail___get__(struct LxmlElemen
  *         def __set__(self, value):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__collectText(__pyx_v_self->_c_node->next); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__collectText(__pyx_v_self->_c_node->next); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 931; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -41488,7 +41577,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_4tail_3__set__(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":936
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":933
  *             return _collectText(self._c_node.next)
  * 
  *         def __set__(self, value):             # <<<<<<<<<<<<<<
@@ -41505,23 +41594,23 @@ static int __pyx_pf_4lxml_5etree_8_Element_4tail_2__set__(struct LxmlElement *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__set__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":937
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":934
  * 
  *         def __set__(self, value):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             _setTailText(self._c_node, value)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":938
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":935
  *         def __set__(self, value):
  *             _assertValidNode(self)
  *             _setTailText(self._c_node, value)             # <<<<<<<<<<<<<<
  * 
  *         # using 'del el.tail' is the wrong thing to do
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__setTailText(__pyx_v_self->_c_node, __pyx_v_value); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__setTailText(__pyx_v_self->_c_node, __pyx_v_value); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
   goto __pyx_L0;
@@ -41544,7 +41633,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_6prefix_1__get__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":948
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":945
  *         u"""Namespace prefix or None.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -41562,7 +41651,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6prefix___get__(struct LxmlElem
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":949
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":946
  *         """
  *         def __get__(self):
  *             if self._c_node.ns is not NULL:             # <<<<<<<<<<<<<<
@@ -41572,7 +41661,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6prefix___get__(struct LxmlElem
   __pyx_t_1 = ((__pyx_v_self->_c_node->ns != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":950
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":947
  *         def __get__(self):
  *             if self._c_node.ns is not NULL:
  *                 if self._c_node.ns.prefix is not NULL:             # <<<<<<<<<<<<<<
@@ -41582,7 +41671,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6prefix___get__(struct LxmlElem
     __pyx_t_1 = ((__pyx_v_self->_c_node->ns->prefix != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":951
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":948
  *             if self._c_node.ns is not NULL:
  *                 if self._c_node.ns.prefix is not NULL:
  *                     return funicode(self._c_node.ns.prefix)             # <<<<<<<<<<<<<<
@@ -41590,7 +41679,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6prefix___get__(struct LxmlElem
  * 
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->ns->prefix); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->ns->prefix); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __pyx_r = __pyx_t_2;
       __pyx_t_2 = 0;
@@ -41602,7 +41691,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_6prefix___get__(struct LxmlElem
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":952
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":949
  *                 if self._c_node.ns.prefix is not NULL:
  *                     return funicode(self._c_node.ns.prefix)
  *             return None             # <<<<<<<<<<<<<<
@@ -41637,7 +41726,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_10sourceline_1__get__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":958
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":955
  *         u"""Original line number as found by the parser or None if unknown.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -41657,16 +41746,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10sourceline___get__(struct Lxm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":960
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":957
  *         def __get__(self):
  *             cdef long line
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             line = tree.xmlGetLineNo(self._c_node)
  *             if line > 0:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":961
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":958
  *             cdef long line
  *             _assertValidNode(self)
  *             line = tree.xmlGetLineNo(self._c_node)             # <<<<<<<<<<<<<<
@@ -41675,7 +41764,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10sourceline___get__(struct Lxm
  */
   __pyx_v_line = xmlGetLineNo(__pyx_v_self->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":962
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":959
  *             _assertValidNode(self)
  *             line = tree.xmlGetLineNo(self._c_node)
  *             if line > 0:             # <<<<<<<<<<<<<<
@@ -41685,7 +41774,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10sourceline___get__(struct Lxm
   __pyx_t_2 = ((__pyx_v_line > 0) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":963
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":960
  *             line = tree.xmlGetLineNo(self._c_node)
  *             if line > 0:
  *                 return line             # <<<<<<<<<<<<<<
@@ -41693,7 +41782,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10sourceline___get__(struct Lxm
  *                 return None
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -41702,7 +41791,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_10sourceline___get__(struct Lxm
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":965
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":962
  *                 return line
  *             else:
  *                 return None             # <<<<<<<<<<<<<<
@@ -41739,7 +41828,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_10sourceline_3__set__(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":967
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":964
  *                 return None
  * 
  *         def __set__(self, line):             # <<<<<<<<<<<<<<
@@ -41759,28 +41848,28 @@ static int __pyx_pf_4lxml_5etree_8_Element_10sourceline_2__set__(struct LxmlElem
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__set__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":968
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":965
  * 
  *         def __set__(self, line):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             if line < 0:
  *                 self._c_node.line = 0
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":969
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":966
  *         def __set__(self, line):
  *             _assertValidNode(self)
  *             if line < 0:             # <<<<<<<<<<<<<<
  *                 self._c_node.line = 0
  *             else:
  */
-  __pyx_t_2 = PyObject_RichCompare(__pyx_v_line, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_RichCompare(__pyx_v_line, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":970
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":967
  *             _assertValidNode(self)
  *             if line < 0:
  *                 self._c_node.line = 0             # <<<<<<<<<<<<<<
@@ -41792,14 +41881,14 @@ static int __pyx_pf_4lxml_5etree_8_Element_10sourceline_2__set__(struct LxmlElem
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":972
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":969
  *                 self._c_node.line = 0
  *             else:
  *                 self._c_node.line = line             # <<<<<<<<<<<<<<
  * 
  *     # not in ElementTree, read-only
  */
-    __pyx_t_4 = __Pyx_PyInt_AsUnsignedShort(__pyx_v_line); if (unlikely((__pyx_t_4 == (unsigned short)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyInt_AsUnsignedShort(__pyx_v_line); if (unlikely((__pyx_t_4 == (unsigned short)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_self->_c_node->line = __pyx_t_4;
   }
   __pyx_L3:;
@@ -41826,7 +41915,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_5nsmap_1__get__(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":982
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":979
  *         Note that changing the returned dict has no effect on the Element.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -41854,28 +41943,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":985
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":982
  *             cdef xmlNode* c_node
  *             cdef xmlNs* c_ns
  *             cdef dict nsmap = {}             # <<<<<<<<<<<<<<
  *             _assertValidNode(self)
  *             c_node = self._c_node
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_v_nsmap = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":986
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":983
  *             cdef xmlNs* c_ns
  *             cdef dict nsmap = {}
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             c_node = self._c_node
  *             while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":987
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":984
  *             cdef dict nsmap = {}
  *             _assertValidNode(self)
  *             c_node = self._c_node             # <<<<<<<<<<<<<<
@@ -41885,7 +41974,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
   __pyx_t_3 = __pyx_v_self->_c_node;
   __pyx_v_c_node = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":988
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":985
  *             _assertValidNode(self)
  *             c_node = self._c_node
  *             while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -41902,7 +41991,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
     }
     if (!__pyx_t_6) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":989
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":986
  *             c_node = self._c_node
  *             while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
  *                 c_ns = c_node.nsDef             # <<<<<<<<<<<<<<
@@ -41912,7 +42001,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
     __pyx_t_7 = __pyx_v_c_node->nsDef;
     __pyx_v_c_ns = __pyx_t_7;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":990
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":987
  *             while c_node is not NULL and c_node.type == tree.XML_ELEMENT_NODE:
  *                 c_ns = c_node.nsDef
  *                 while c_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -41923,7 +42012,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
       __pyx_t_6 = ((__pyx_v_c_ns != NULL) != 0);
       if (!__pyx_t_6) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":991
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":988
  *                 c_ns = c_node.nsDef
  *                 while c_ns is not NULL:
  *                     prefix = None if c_ns.prefix is NULL else funicode(c_ns.prefix)             # <<<<<<<<<<<<<<
@@ -41934,27 +42023,26 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
         __Pyx_INCREF(Py_None);
         __pyx_t_1 = Py_None;
       } else {
-        __pyx_t_8 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_ns->prefix); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 991; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_ns->prefix); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 988; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
         __pyx_t_1 = __pyx_t_8;
         __pyx_t_8 = 0;
       }
-      __Pyx_XDECREF(__pyx_v_prefix);
-      __pyx_v_prefix = __pyx_t_1;
+      __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_1);
       __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":992
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":989
  *                 while c_ns is not NULL:
  *                     prefix = None if c_ns.prefix is NULL else funicode(c_ns.prefix)
  *                     if prefix not in nsmap:             # <<<<<<<<<<<<<<
  *                         nsmap[prefix] = None if c_ns.href is NULL else funicode(c_ns.href)
  *                     c_ns = c_ns.next
  */
-      __pyx_t_6 = (__Pyx_PyDict_Contains(__pyx_v_prefix, ((PyObject *)__pyx_v_nsmap), Py_NE)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = (__Pyx_PyDict_Contains(__pyx_v_prefix, ((PyObject *)__pyx_v_nsmap), Py_NE)); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_4 = (__pyx_t_6 != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":993
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":990
  *                     prefix = None if c_ns.prefix is NULL else funicode(c_ns.prefix)
  *                     if prefix not in nsmap:
  *                         nsmap[prefix] = None if c_ns.href is NULL else funicode(c_ns.href)             # <<<<<<<<<<<<<<
@@ -41965,18 +42053,18 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
           __Pyx_INCREF(Py_None);
           __pyx_t_1 = Py_None;
         } else {
-          __pyx_t_8 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_ns->href); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_ns->href); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_8);
           __pyx_t_1 = __pyx_t_8;
           __pyx_t_8 = 0;
         }
-        if (PyDict_SetItem(((PyObject *)__pyx_v_nsmap), __pyx_v_prefix, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (PyDict_SetItem(((PyObject *)__pyx_v_nsmap), __pyx_v_prefix, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         goto __pyx_L7;
       }
       __pyx_L7:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":994
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":991
  *                     if prefix not in nsmap:
  *                         nsmap[prefix] = None if c_ns.href is NULL else funicode(c_ns.href)
  *                     c_ns = c_ns.next             # <<<<<<<<<<<<<<
@@ -41987,7 +42075,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
       __pyx_v_c_ns = __pyx_t_7;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":995
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":992
  *                         nsmap[prefix] = None if c_ns.href is NULL else funicode(c_ns.href)
  *                     c_ns = c_ns.next
  *                 c_node = c_node.parent             # <<<<<<<<<<<<<<
@@ -41998,7 +42086,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_5nsmap___get__(struct LxmlEleme
     __pyx_v_c_node = __pyx_t_3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":996
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":993
  *                     c_ns = c_ns.next
  *                 c_node = c_node.parent
  *             return nsmap             # <<<<<<<<<<<<<<
@@ -42036,7 +42124,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_4base_1__get__(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1010
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1007
  *         Element, regardless of the document type (XML or HTML).
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -42057,16 +42145,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1011
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1008
  *         """
  *         def __get__(self):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             c_base = tree.xmlNodeGetBase(self._doc._c_doc, self._c_node)
  *             if c_base is NULL:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1012
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1009
  *         def __get__(self):
  *             _assertValidNode(self)
  *             c_base = tree.xmlNodeGetBase(self._doc._c_doc, self._c_node)             # <<<<<<<<<<<<<<
@@ -42075,7 +42163,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
  */
   __pyx_v_c_base = xmlNodeGetBase(__pyx_v_self->_doc->_c_doc, __pyx_v_self->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1013
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1010
  *             _assertValidNode(self)
  *             c_base = tree.xmlNodeGetBase(self._doc._c_doc, self._c_node)
  *             if c_base is NULL:             # <<<<<<<<<<<<<<
@@ -42085,7 +42173,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
   __pyx_t_2 = ((__pyx_v_c_base == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1014
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1011
  *             c_base = tree.xmlNodeGetBase(self._doc._c_doc, self._c_node)
  *             if c_base is NULL:
  *                 if self._doc._c_doc.URL is NULL:             # <<<<<<<<<<<<<<
@@ -42095,7 +42183,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
     __pyx_t_2 = ((__pyx_v_self->_doc->_c_doc->URL == NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1015
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1012
  *             if c_base is NULL:
  *                 if self._doc._c_doc.URL is NULL:
  *                     return None             # <<<<<<<<<<<<<<
@@ -42110,7 +42198,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1016
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1013
  *                 if self._doc._c_doc.URL is NULL:
  *                     return None
  *                 return _decodeFilename(self._doc._c_doc.URL)             # <<<<<<<<<<<<<<
@@ -42118,7 +42206,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
  *             tree.xmlFree(c_base)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_self->_doc->_c_doc->URL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_self->_doc->_c_doc->URL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -42127,19 +42215,19 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1017
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1014
  *                     return None
  *                 return _decodeFilename(self._doc._c_doc.URL)
  *             base = _decodeFilename(c_base)             # <<<<<<<<<<<<<<
  *             tree.xmlFree(c_base)
  *             return base
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_c_base); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_c_base); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_v_base = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1018
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1015
  *                 return _decodeFilename(self._doc._c_doc.URL)
  *             base = _decodeFilename(c_base)
  *             tree.xmlFree(c_base)             # <<<<<<<<<<<<<<
@@ -42148,7 +42236,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_4base___get__(struct LxmlElemen
  */
   xmlFree(__pyx_v_c_base);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1019
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1016
  *             base = _decodeFilename(c_base)
  *             tree.xmlFree(c_base)
  *             return base             # <<<<<<<<<<<<<<
@@ -42184,7 +42272,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_4base_3__set__(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1021
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1018
  *             return base
  * 
  *         def __set__(self, url):             # <<<<<<<<<<<<<<
@@ -42206,16 +42294,16 @@ static int __pyx_pf_4lxml_5etree_8_Element_4base_2__set__(struct LxmlElement *__
   __Pyx_RefNannySetupContext("__set__", 0);
   __Pyx_INCREF(__pyx_v_url);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1022
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1019
  * 
  *         def __set__(self, url):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             if url is None:
  *                 c_base = <const_xmlChar*>NULL
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1023
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1020
  *         def __set__(self, url):
  *             _assertValidNode(self)
  *             if url is None:             # <<<<<<<<<<<<<<
@@ -42226,7 +42314,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4base_2__set__(struct LxmlElement *__
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1024
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1021
  *             _assertValidNode(self)
  *             if url is None:
  *                 c_base = <const_xmlChar*>NULL             # <<<<<<<<<<<<<<
@@ -42238,20 +42326,19 @@ static int __pyx_pf_4lxml_5etree_8_Element_4base_2__set__(struct LxmlElement *__
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1026
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1023
  *                 c_base = <const_xmlChar*>NULL
  *             else:
  *                 url = _encodeFilename(url)             # <<<<<<<<<<<<<<
  *                 c_base = _xcstr(url)
  *             tree.xmlNodeSetBase(self._c_node, c_base)
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_url);
-    __pyx_v_url = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_url, __pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1027
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1024
  *             else:
  *                 url = _encodeFilename(url)
  *                 c_base = _xcstr(url)             # <<<<<<<<<<<<<<
@@ -42262,7 +42349,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_4base_2__set__(struct LxmlElement *__
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1028
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1025
  *                 url = _encodeFilename(url)
  *                 c_base = _xcstr(url)
  *             tree.xmlNodeSetBase(self._c_node, c_base)             # <<<<<<<<<<<<<<
@@ -42298,7 +42385,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_31__repr__(PyObject *__pyx_v_se
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1031
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1028
  * 
  *     # ACCESSORS
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -42317,7 +42404,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_30__repr__(struct LxmlElement *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1033
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1030
  *     def __repr__(self):
  *         u"__repr__(self)"
  *         return u"<Element %s at 0x%x>" % (self.tag, id(self))             # <<<<<<<<<<<<<<
@@ -42325,17 +42412,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_30__repr__(struct LxmlElement *
  *     def __getitem__(self, x):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-  __pyx_t_3 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
@@ -42343,7 +42430,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_30__repr__(struct LxmlElement *
   __Pyx_GIVEREF(__pyx_t_3);
   __pyx_t_1 = 0;
   __pyx_t_3 = 0;
-  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_71), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_74), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_r = ((PyObject *)__pyx_t_3);
@@ -42379,7 +42466,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_33__getitem__(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1035
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1032
  *         return u"<Element %s at 0x%x>" % (self.tag, id(self))
  * 
  *     def __getitem__(self, x):             # <<<<<<<<<<<<<<
@@ -42410,7 +42497,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__getitem__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1039
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1036
  *         slice.
  *         """
  *         cdef xmlNode* c_node = NULL             # <<<<<<<<<<<<<<
@@ -42419,7 +42506,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  */
   __pyx_v_c_node = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1040
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1037
  *         """
  *         cdef xmlNode* c_node = NULL
  *         cdef Py_ssize_t step = 0, slicelength = 0             # <<<<<<<<<<<<<<
@@ -42429,16 +42516,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
   __pyx_v_step = 0;
   __pyx_v_slicelength = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1044
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1041
  *         cdef _node_to_node_function next_element
  *         cdef list result
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         if python.PySlice_Check(x):
  *             # slicing
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1044; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1041; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1045
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1042
  *         cdef list result
  *         _assertValidNode(self)
  *         if python.PySlice_Check(x):             # <<<<<<<<<<<<<<
@@ -42448,7 +42535,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
   __pyx_t_2 = (PySlice_Check(__pyx_v_x) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1047
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1044
  *         if python.PySlice_Check(x):
  *             # slicing
  *             if _isFullSlice(<slice>x):             # <<<<<<<<<<<<<<
@@ -42458,7 +42545,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     __pyx_t_2 = (__pyx_f_4lxml_5etree__isFullSlice(((PyObject*)__pyx_v_x)) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1048
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1045
  *             # slicing
  *             if _isFullSlice(<slice>x):
  *                 return _collectChildren(self)             # <<<<<<<<<<<<<<
@@ -42466,7 +42553,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  *             if c_node is NULL:
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_3 = __pyx_f_4lxml_5etree__collectChildren(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree__collectChildren(__pyx_v_self); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_r = __pyx_t_3;
       __pyx_t_3 = 0;
@@ -42475,16 +42562,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1049
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1046
  *             if _isFullSlice(<slice>x):
  *                 return _collectChildren(self)
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)             # <<<<<<<<<<<<<<
  *             if c_node is NULL:
  *                 return []
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__findChildSlice(((PyObject*)__pyx_v_x), __pyx_v_self->_c_node, (&__pyx_v_c_node), (&__pyx_v_step), (&__pyx_v_slicelength)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__findChildSlice(((PyObject*)__pyx_v_x), __pyx_v_self->_c_node, (&__pyx_v_c_node), (&__pyx_v_step), (&__pyx_v_slicelength)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1050
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1047
  *                 return _collectChildren(self)
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
  *             if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -42494,7 +42581,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1051
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1048
  *             _findChildSlice(<slice>x, self._c_node, &c_node, &step, &slicelength)
  *             if c_node is NULL:
  *                 return []             # <<<<<<<<<<<<<<
@@ -42502,7 +42589,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  *                 next_element = _nextElement
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_r = ((PyObject *)__pyx_t_3);
       __pyx_t_3 = 0;
@@ -42511,7 +42598,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1052
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1049
  *             if c_node is NULL:
  *                 return []
  *             if step > 0:             # <<<<<<<<<<<<<<
@@ -42521,7 +42608,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     __pyx_t_2 = ((__pyx_v_step > 0) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1053
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1050
  *                 return []
  *             if step > 0:
  *                 next_element = _nextElement             # <<<<<<<<<<<<<<
@@ -42533,7 +42620,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1055
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1052
  *                 next_element = _nextElement
  *             else:
  *                 step = -step             # <<<<<<<<<<<<<<
@@ -42542,7 +42629,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  */
       __pyx_v_step = (-__pyx_v_step);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1056
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1053
  *             else:
  *                 step = -step
  *                 next_element = _previousElement             # <<<<<<<<<<<<<<
@@ -42553,19 +42640,19 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1057
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1054
  *                 step = -step
  *                 next_element = _previousElement
  *             result = []             # <<<<<<<<<<<<<<
  *             c = 0
  *             while c_node is not NULL and c < slicelength:
  */
-    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_result = ((PyObject*)__pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1058
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1055
  *                 next_element = _previousElement
  *             result = []
  *             c = 0             # <<<<<<<<<<<<<<
@@ -42574,7 +42661,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  */
     __pyx_v_c = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1059
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1056
  *             result = []
  *             c = 0
  *             while c_node is not NULL and c < slicelength:             # <<<<<<<<<<<<<<
@@ -42591,7 +42678,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
       }
       if (!__pyx_t_5) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1060
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1057
  *             c = 0
  *             while c_node is not NULL and c < slicelength:
  *                 result.append(_elementFactory(self._doc, c_node))             # <<<<<<<<<<<<<<
@@ -42600,13 +42687,13 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  */
       __pyx_t_3 = ((PyObject *)__pyx_v_self->_doc);
       __Pyx_INCREF(__pyx_t_3);
-      __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_3), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1060; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_result, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1061
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1058
  *             while c_node is not NULL and c < slicelength:
  *                 result.append(_elementFactory(self._doc, c_node))
  *                 c = c + 1             # <<<<<<<<<<<<<<
@@ -42615,7 +42702,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
  */
       __pyx_v_c = (__pyx_v_c + 1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1062
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1059
  *                 result.append(_elementFactory(self._doc, c_node))
  *                 c = c + 1
  *                 for i from 0 <= i < step:             # <<<<<<<<<<<<<<
@@ -42625,7 +42712,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
       __pyx_t_8 = __pyx_v_step;
       for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_8; __pyx_v_i++) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1063
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1060
  *                 c = c + 1
  *                 for i from 0 <= i < step:
  *                     c_node = next_element(c_node)             # <<<<<<<<<<<<<<
@@ -42636,7 +42723,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
       }
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1064
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1061
  *                 for i from 0 <= i < step:
  *                     c_node = next_element(c_node)
  *             return result             # <<<<<<<<<<<<<<
@@ -42651,17 +42738,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1067
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1064
  *         else:
  *             # indexing
  *             c_node = _findChild(self._c_node, x)             # <<<<<<<<<<<<<<
  *             if c_node is NULL:
  *                 raise IndexError, u"list index out of range"
  */
-    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_x); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_x); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1064; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_node = __pyx_f_4lxml_5etree__findChild(__pyx_v_self->_c_node, __pyx_t_8);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1068
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1065
  *             # indexing
  *             c_node = _findChild(self._c_node, x)
  *             if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -42671,20 +42758,20 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     __pyx_t_5 = ((__pyx_v_c_node == NULL) != 0);
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1069
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1066
  *             c_node = _findChild(self._c_node, x)
  *             if c_node is NULL:
  *                 raise IndexError, u"list index out of range"             # <<<<<<<<<<<<<<
  *             return _elementFactory(self._doc, c_node)
  * 
  */
-      __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_67), 0, 0);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_70), 0, 0);
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L11;
     }
     __pyx_L11:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1070
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1067
  *             if c_node is NULL:
  *                 raise IndexError, u"list index out of range"
  *             return _elementFactory(self._doc, c_node)             # <<<<<<<<<<<<<<
@@ -42694,7 +42781,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_32__getitem__(struct LxmlElemen
     __Pyx_XDECREF(__pyx_r);
     __pyx_t_6 = ((PyObject *)__pyx_v_self->_doc);
     __Pyx_INCREF(__pyx_t_6);
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_r = __pyx_t_3;
@@ -42732,7 +42819,7 @@ static Py_ssize_t __pyx_pw_4lxml_5etree_8_Element_35__len__(PyObject *__pyx_v_se
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1072
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1069
  *             return _elementFactory(self._doc, c_node)
  * 
  *     def __len__(self):             # <<<<<<<<<<<<<<
@@ -42749,16 +42836,16 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_8_Element_34__len__(struct LxmlElement *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__len__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1077
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1074
  *         Returns the number of subelements.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         return _countElements(self._c_node.children)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1078
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1075
  *         """
  *         _assertValidNode(self)
  *         return _countElements(self._c_node.children)             # <<<<<<<<<<<<<<
@@ -42789,7 +42876,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_37__nonzero__(PyObject *__pyx_v_self)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1080
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1077
  *         return _countElements(self._c_node.children)
  * 
  *     def __nonzero__(self):             # <<<<<<<<<<<<<<
@@ -42810,59 +42897,59 @@ static int __pyx_pf_4lxml_5etree_8_Element_36__nonzero__(struct LxmlElement *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__nonzero__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1082
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1079
  *     def __nonzero__(self):
  *         #u"__nonzero__(self)" # currently fails in Py3.1
  *         import warnings             # <<<<<<<<<<<<<<
  *         warnings.warn(
  *             u"The behavior of this method will change in future versions. "
  */
-  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_warnings = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1083
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1080
  *         #u"__nonzero__(self)" # currently fails in Py3.1
  *         import warnings
  *         warnings.warn(             # <<<<<<<<<<<<<<
  *             u"The behavior of this method will change in future versions. "
  *             u"Use specific 'len(elem)' or 'elem is not None' test instead.",
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s__warn); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s__warn); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1087
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1084
  *             u"Use specific 'len(elem)' or 'elem is not None' test instead.",
  *             FutureWarning
  *             )             # <<<<<<<<<<<<<<
  *         # emulate old behaviour
  *         _assertValidNode(self)
  */
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_72));
-  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_72));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_72));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_u_75));
+  PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_75));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_75));
   __Pyx_INCREF(__pyx_builtin_FutureWarning);
   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_builtin_FutureWarning);
   __Pyx_GIVEREF(__pyx_builtin_FutureWarning);
-  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1089
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1086
  *             )
  *         # emulate old behaviour
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         return _hasChild(self._c_node)
  * 
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1090
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1087
  *         # emulate old behaviour
  *         _assertValidNode(self)
  *         return _hasChild(self._c_node)             # <<<<<<<<<<<<<<
@@ -42901,7 +42988,7 @@ static int __pyx_pw_4lxml_5etree_8_Element_39__contains__(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1092
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1089
  *         return _hasChild(self._c_node)
  * 
  *     def __contains__(self, element):             # <<<<<<<<<<<<<<
@@ -42923,16 +43010,16 @@ static int __pyx_pf_4lxml_5etree_8_Element_38__contains__(struct LxmlElement *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__contains__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1095
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1092
  *         u"__contains__(self, element)"
  *         cdef xmlNode* c_node
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         if not isinstance(element, _Element):
  *             return 0
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1096
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1093
  *         cdef xmlNode* c_node
  *         _assertValidNode(self)
  *         if not isinstance(element, _Element):             # <<<<<<<<<<<<<<
@@ -42943,7 +43030,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_38__contains__(struct LxmlElement *__
   __pyx_t_3 = ((!(__pyx_t_2 != 0)) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1097
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1094
  *         _assertValidNode(self)
  *         if not isinstance(element, _Element):
  *             return 0             # <<<<<<<<<<<<<<
@@ -42956,7 +43043,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_38__contains__(struct LxmlElement *__
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1098
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1095
  *         if not isinstance(element, _Element):
  *             return 0
  *         c_node = (<_Element>element)._c_node             # <<<<<<<<<<<<<<
@@ -42966,7 +43053,7 @@ static int __pyx_pf_4lxml_5etree_8_Element_38__contains__(struct LxmlElement *__
   __pyx_t_4 = ((struct LxmlElement *)__pyx_v_element)->_c_node;
   __pyx_v_c_node = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1099
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1096
  *             return 0
  *         c_node = (<_Element>element)._c_node
  *         return c_node is not NULL and c_node.parent is self._c_node             # <<<<<<<<<<<<<<
@@ -43008,7 +43095,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_41__iter__(PyObject *__pyx_v_se
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1101
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1098
  *         return c_node is not NULL and c_node.parent is self._c_node
  * 
  *     def __iter__(self):             # <<<<<<<<<<<<<<
@@ -43026,7 +43113,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_40__iter__(struct LxmlElement *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__iter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1103
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1100
  *     def __iter__(self):
  *         u"__iter__(self)"
  *         return ElementChildIterator(self)             # <<<<<<<<<<<<<<
@@ -43034,12 +43121,12 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_40__iter__(struct LxmlElement *
  *     def __reversed__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementChildIterator)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementChildIterator)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -43071,7 +43158,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_43__reversed__(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1105
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1102
  *         return ElementChildIterator(self)
  * 
  *     def __reversed__(self):             # <<<<<<<<<<<<<<
@@ -43090,7 +43177,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_42__reversed__(struct LxmlEleme
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__reversed__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1107
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1104
  *     def __reversed__(self):
  *         u"__reversed__(self)"
  *         return ElementChildIterator(self, reversed=True)             # <<<<<<<<<<<<<<
@@ -43098,18 +43185,18 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_42__reversed__(struct LxmlEleme
  *     def index(self, _Element child not None, start=None, stop=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__reversed), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__reversed), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementChildIterator)), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementChildIterator)), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -43148,7 +43235,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_45index(PyObject *__pyx_v_self,
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__child,&__pyx_n_s__start,&__pyx_n_s__stop,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1109
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1106
  *         return ElementChildIterator(self, reversed=True)
  * 
  *     def index(self, _Element child not None, start=None, stop=None):             # <<<<<<<<<<<<<<
@@ -43184,7 +43271,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_45index(PyObject *__pyx_v_self,
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "index") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "index") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -43201,13 +43288,13 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_45index(PyObject *__pyx_v_self,
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("index", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("index", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.index", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_child), __pyx_ptype_4lxml_5etree__Element, 0, "child", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1109; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_child), __pyx_ptype_4lxml_5etree__Element, 0, "child", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_8_Element_44index(((struct LxmlElement *)__pyx_v_self), __pyx_v_child, __pyx_v_start, __pyx_v_stop);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -43240,25 +43327,25 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("index", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1120
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1117
  *         cdef xmlNode* c_child
  *         cdef xmlNode* c_start_node
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         _assertValidNode(child)
  *         c_child = child._c_node
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1121
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1118
  *         cdef xmlNode* c_start_node
  *         _assertValidNode(self)
  *         _assertValidNode(child)             # <<<<<<<<<<<<<<
  *         c_child = child._c_node
  *         if c_child.parent is not self._c_node:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_child); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_child); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1122
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1119
  *         _assertValidNode(self)
  *         _assertValidNode(child)
  *         c_child = child._c_node             # <<<<<<<<<<<<<<
@@ -43268,7 +43355,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   __pyx_t_2 = __pyx_v_child->_c_node;
   __pyx_v_c_child = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1123
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1120
  *         _assertValidNode(child)
  *         c_child = child._c_node
  *         if c_child.parent is not self._c_node:             # <<<<<<<<<<<<<<
@@ -43278,20 +43365,20 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   __pyx_t_3 = ((__pyx_v_c_child->parent != __pyx_v_self->_c_node) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1124
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1121
  *         c_child = child._c_node
  *         if c_child.parent is not self._c_node:
  *             raise ValueError, u"Element is not a child of this node."             # <<<<<<<<<<<<<<
  * 
  *         # handle the unbounded search straight away (normal case)
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_70), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_73), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1121; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1127
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1124
  * 
  *         # handle the unbounded search straight away (normal case)
  *         if stop is None and (start is None or start == 0):             # <<<<<<<<<<<<<<
@@ -43302,8 +43389,8 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   if (__pyx_t_3) {
     __pyx_t_4 = (__pyx_v_start == Py_None);
     if (!__pyx_t_4) {
-      __pyx_t_5 = PyObject_RichCompare(__pyx_v_start, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_RichCompare(__pyx_v_start, __pyx_int_0, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_t_7 = __pyx_t_6;
     } else {
@@ -43315,7 +43402,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1128
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1125
  *         # handle the unbounded search straight away (normal case)
  *         if stop is None and (start is None or start == 0):
  *             k = 0             # <<<<<<<<<<<<<<
@@ -43324,7 +43411,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  */
     __pyx_v_k = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1129
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1126
  *         if stop is None and (start is None or start == 0):
  *             k = 0
  *             c_child = c_child.prev             # <<<<<<<<<<<<<<
@@ -43334,7 +43421,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     __pyx_t_2 = __pyx_v_c_child->prev;
     __pyx_v_c_child = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1130
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1127
  *             k = 0
  *             c_child = c_child.prev
  *             while c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -43345,7 +43432,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_t_4 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_4) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1131
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1128
  *             c_child = c_child.prev
  *             while c_child is not NULL:
  *                 if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -43355,7 +43442,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_t_4 = (_isElement(__pyx_v_c_child) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1132
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1129
  *             while c_child is not NULL:
  *                 if _isElement(c_child):
  *                     k += 1             # <<<<<<<<<<<<<<
@@ -43367,7 +43454,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       }
       __pyx_L7:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1133
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1130
  *                 if _isElement(c_child):
  *                     k += 1
  *                 c_child = c_child.prev             # <<<<<<<<<<<<<<
@@ -43378,7 +43465,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_v_c_child = __pyx_t_2;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1134
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1131
  *                     k += 1
  *                 c_child = c_child.prev
  *             return k             # <<<<<<<<<<<<<<
@@ -43386,7 +43473,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *         # check indices
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_r = __pyx_t_5;
     __pyx_t_5 = 0;
@@ -43395,7 +43482,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1137
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1134
  * 
  *         # check indices
  *         if start is None:             # <<<<<<<<<<<<<<
@@ -43406,7 +43493,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   __pyx_t_3 = (__pyx_t_4 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1138
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1135
  *         # check indices
  *         if start is None:
  *             c_start = 0             # <<<<<<<<<<<<<<
@@ -43418,19 +43505,19 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1140
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1137
  *             c_start = 0
  *         else:
  *             c_start = start             # <<<<<<<<<<<<<<
  *         if stop is None:
  *             c_stop = 0
  */
-    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_start); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_start); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_start = __pyx_t_8;
   }
   __pyx_L8:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1141
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1138
  *         else:
  *             c_start = start
  *         if stop is None:             # <<<<<<<<<<<<<<
@@ -43441,7 +43528,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   __pyx_t_4 = (__pyx_t_3 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1142
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1139
  *             c_start = start
  *         if stop is None:
  *             c_stop = 0             # <<<<<<<<<<<<<<
@@ -43453,17 +43540,17 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1144
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1141
  *             c_stop = 0
  *         else:
  *             c_stop = stop             # <<<<<<<<<<<<<<
  *             if c_stop == 0 or \
  *                    c_start >= c_stop and (c_stop > 0 or c_start < 0):
  */
-    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_stop); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_PyIndex_AsSsize_t(__pyx_v_stop); if (unlikely((__pyx_t_8 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_stop = __pyx_t_8;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1145
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1142
  *         else:
  *             c_stop = stop
  *             if c_stop == 0 or \             # <<<<<<<<<<<<<<
@@ -43473,7 +43560,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     __pyx_t_4 = ((__pyx_v_c_stop == 0) != 0);
     if (!__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1146
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1143
  *             c_stop = stop
  *             if c_stop == 0 or \
  *                    c_start >= c_stop and (c_stop > 0 or c_start < 0):             # <<<<<<<<<<<<<<
@@ -43499,22 +43586,22 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     }
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1147
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1144
  *             if c_stop == 0 or \
  *                    c_start >= c_stop and (c_stop > 0 or c_start < 0):
  *                 raise ValueError, u"list.index(x): x not in slice"             # <<<<<<<<<<<<<<
  * 
  *         # for negative slice indices, check slice before searching index
  */
-      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_73), 0, 0);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_76), 0, 0);
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L10;
     }
     __pyx_L10:;
   }
   __pyx_L9:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1150
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1147
  * 
  *         # for negative slice indices, check slice before searching index
  *         if c_start < 0 or c_stop < 0:             # <<<<<<<<<<<<<<
@@ -43530,7 +43617,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1152
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1149
  *         if c_start < 0 or c_stop < 0:
  *             # start from right, at most up to leftmost(c_start, c_stop)
  *             if c_start < c_stop:             # <<<<<<<<<<<<<<
@@ -43540,7 +43627,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     __pyx_t_7 = ((__pyx_v_c_start < __pyx_v_c_stop) != 0);
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1153
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1150
  *             # start from right, at most up to leftmost(c_start, c_stop)
  *             if c_start < c_stop:
  *                 k = -c_start             # <<<<<<<<<<<<<<
@@ -43552,7 +43639,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1155
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1152
  *                 k = -c_start
  *             else:
  *                 k = -c_stop             # <<<<<<<<<<<<<<
@@ -43563,7 +43650,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     }
     __pyx_L12:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1156
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1153
  *             else:
  *                 k = -c_stop
  *             c_start_node = self._c_node.last             # <<<<<<<<<<<<<<
@@ -43573,7 +43660,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     __pyx_t_2 = __pyx_v_self->_c_node->last;
     __pyx_v_c_start_node = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1157
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1154
  *                 k = -c_stop
  *             c_start_node = self._c_node.last
  *             l = 1             # <<<<<<<<<<<<<<
@@ -43582,7 +43669,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  */
     __pyx_v_l = 1;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1158
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1155
  *             c_start_node = self._c_node.last
  *             l = 1
  *             while c_start_node != c_child and l < k:             # <<<<<<<<<<<<<<
@@ -43599,7 +43686,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       }
       if (!__pyx_t_4) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1159
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1156
  *             l = 1
  *             while c_start_node != c_child and l < k:
  *                 if _isElement(c_start_node):             # <<<<<<<<<<<<<<
@@ -43609,7 +43696,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_t_4 = (_isElement(__pyx_v_c_start_node) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1160
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1157
  *             while c_start_node != c_child and l < k:
  *                 if _isElement(c_start_node):
  *                     l += 1             # <<<<<<<<<<<<<<
@@ -43621,7 +43708,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       }
       __pyx_L15:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1161
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1158
  *                 if _isElement(c_start_node):
  *                     l += 1
  *                 c_start_node = c_start_node.prev             # <<<<<<<<<<<<<<
@@ -43632,7 +43719,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_v_c_start_node = __pyx_t_2;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1162
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1159
  *                     l += 1
  *                 c_start_node = c_start_node.prev
  *             if c_start_node == c_child:             # <<<<<<<<<<<<<<
@@ -43642,7 +43729,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     __pyx_t_4 = ((__pyx_v_c_start_node == __pyx_v_c_child) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1164
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1161
  *             if c_start_node == c_child:
  *                 # found! before slice end?
  *                 if c_stop < 0 and l <= -c_stop:             # <<<<<<<<<<<<<<
@@ -43658,22 +43745,22 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       }
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1165
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1162
  *                 # found! before slice end?
  *                 if c_stop < 0 and l <= -c_stop:
  *                     raise ValueError, u"list.index(x): x not in slice"             # <<<<<<<<<<<<<<
  *             elif c_start < 0:
  *                 raise ValueError, u"list.index(x): x not in slice"
  */
-        __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_73), 0, 0);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_76), 0, 0);
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L17;
       }
       __pyx_L17:;
       goto __pyx_L16;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1166
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1163
  *                 if c_stop < 0 and l <= -c_stop:
  *                     raise ValueError, u"list.index(x): x not in slice"
  *             elif c_start < 0:             # <<<<<<<<<<<<<<
@@ -43683,15 +43770,15 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     __pyx_t_3 = ((__pyx_v_c_start < 0) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1167
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1164
  *                     raise ValueError, u"list.index(x): x not in slice"
  *             elif c_start < 0:
  *                 raise ValueError, u"list.index(x): x not in slice"             # <<<<<<<<<<<<<<
  * 
  *         # now determine the index backwards from child
  */
-      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_73), 0, 0);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_76), 0, 0);
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L16;
     }
     __pyx_L16:;
@@ -43699,7 +43786,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   __pyx_L11:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1170
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1167
  * 
  *         # now determine the index backwards from child
  *         c_child = c_child.prev             # <<<<<<<<<<<<<<
@@ -43709,7 +43796,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   __pyx_t_2 = __pyx_v_c_child->prev;
   __pyx_v_c_child = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1171
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1168
  *         # now determine the index backwards from child
  *         c_child = c_child.prev
  *         k = 0             # <<<<<<<<<<<<<<
@@ -43718,7 +43805,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  */
   __pyx_v_k = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1172
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1169
  *         c_child = c_child.prev
  *         k = 0
  *         if c_stop > 0:             # <<<<<<<<<<<<<<
@@ -43728,7 +43815,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   __pyx_t_3 = ((__pyx_v_c_stop > 0) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1174
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1171
  *         if c_stop > 0:
  *             # we can optimize: stop after c_stop elements if not found
  *             while c_child != NULL and k < c_stop:             # <<<<<<<<<<<<<<
@@ -43745,7 +43832,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       }
       if (!__pyx_t_7) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1175
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1172
  *             # we can optimize: stop after c_stop elements if not found
  *             while c_child != NULL and k < c_stop:
  *                 if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -43755,7 +43842,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_t_7 = (_isElement(__pyx_v_c_child) != 0);
       if (__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1176
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1173
  *             while c_child != NULL and k < c_stop:
  *                 if _isElement(c_child):
  *                     k += 1             # <<<<<<<<<<<<<<
@@ -43767,7 +43854,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       }
       __pyx_L21:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1177
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1174
  *                 if _isElement(c_child):
  *                     k += 1
  *                 c_child = c_child.prev             # <<<<<<<<<<<<<<
@@ -43778,7 +43865,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_v_c_child = __pyx_t_2;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1178
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1175
  *                     k += 1
  *                 c_child = c_child.prev
  *             if k < c_stop:             # <<<<<<<<<<<<<<
@@ -43788,7 +43875,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     __pyx_t_7 = ((__pyx_v_k < __pyx_v_c_stop) != 0);
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1179
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1176
  *                 c_child = c_child.prev
  *             if k < c_stop:
  *                 return k             # <<<<<<<<<<<<<<
@@ -43796,7 +43883,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *             # traverse all
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_r = __pyx_t_5;
       __pyx_t_5 = 0;
@@ -43808,7 +43895,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1182
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1179
  *         else:
  *             # traverse all
  *             while c_child != NULL:             # <<<<<<<<<<<<<<
@@ -43819,7 +43906,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_t_7 = ((__pyx_v_c_child != NULL) != 0);
       if (!__pyx_t_7) break;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1183
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1180
  *             # traverse all
  *             while c_child != NULL:
  *                 if _isElement(c_child):             # <<<<<<<<<<<<<<
@@ -43829,7 +43916,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_t_7 = (_isElement(__pyx_v_c_child) != 0);
       if (__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1184
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1181
  *             while c_child != NULL:
  *                 if _isElement(c_child):
  *                     k = k + 1             # <<<<<<<<<<<<<<
@@ -43841,7 +43928,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       }
       __pyx_L25:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1185
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1182
  *                 if _isElement(c_child):
  *                     k = k + 1
  *                 c_child = c_child.prev             # <<<<<<<<<<<<<<
@@ -43852,7 +43939,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_v_c_child = __pyx_t_2;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1186
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1183
  *                     k = k + 1
  *                 c_child = c_child.prev
  *             if c_start > 0:             # <<<<<<<<<<<<<<
@@ -43862,7 +43949,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     __pyx_t_7 = ((__pyx_v_c_start > 0) != 0);
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1187
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1184
  *                 c_child = c_child.prev
  *             if c_start > 0:
  *                 if k >= c_start:             # <<<<<<<<<<<<<<
@@ -43872,7 +43959,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
       __pyx_t_7 = ((__pyx_v_k >= __pyx_v_c_start) != 0);
       if (__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1188
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1185
  *             if c_start > 0:
  *                 if k >= c_start:
  *                     return k             # <<<<<<<<<<<<<<
@@ -43880,7 +43967,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *                 return k
  */
         __Pyx_XDECREF(__pyx_r);
-        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __pyx_r = __pyx_t_5;
         __pyx_t_5 = 0;
@@ -43892,7 +43979,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1190
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1187
  *                     return k
  *             else:
  *                 return k             # <<<<<<<<<<<<<<
@@ -43900,7 +43987,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
  *             raise ValueError, u"list.index(x): x not in slice"
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_k); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_r = __pyx_t_5;
       __pyx_t_5 = 0;
@@ -43910,7 +43997,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   __pyx_L18:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1191
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1188
  *             else:
  *                 return k
  *         if c_start != 0 or c_stop != 0:             # <<<<<<<<<<<<<<
@@ -43926,28 +44013,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_44index(struct LxmlElement *__p
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1192
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1189
  *                 return k
  *         if c_start != 0 or c_stop != 0:
  *             raise ValueError, u"list.index(x): x not in slice"             # <<<<<<<<<<<<<<
  *         else:
  *             raise ValueError, u"list.index(x): x not in list"
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_73), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_76), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L28;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1194
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1191
  *             raise ValueError, u"list.index(x): x not in slice"
  *         else:
  *             raise ValueError, u"list.index(x): x not in list"             # <<<<<<<<<<<<<<
  * 
  *     def get(self, key, default=None):
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_74), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_77), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L28:;
 
@@ -43979,7 +44066,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_47get(PyObject *__pyx_v_self, P
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__default,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1196
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1193
  *             raise ValueError, u"list.index(x): x not in list"
  * 
  *     def get(self, key, default=None):             # <<<<<<<<<<<<<<
@@ -44008,7 +44095,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_47get(PyObject *__pyx_v_self, P
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -44023,7 +44110,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_47get(PyObject *__pyx_v_self, P
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -44044,16 +44131,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_46get(struct LxmlElement *__pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("get", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1201
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1198
  *         Gets an element attribute.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         return _getAttributeValue(self, key, default)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1201; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1202
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1199
  *         """
  *         _assertValidNode(self)
  *         return _getAttributeValue(self, key, default)             # <<<<<<<<<<<<<<
@@ -44061,7 +44148,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_46get(struct LxmlElement *__pyx
  *     def keys(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__getAttributeValue(__pyx_v_self, __pyx_v_key, __pyx_v_default); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__getAttributeValue(__pyx_v_self, __pyx_v_key, __pyx_v_default); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -44091,7 +44178,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_49keys(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1204
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1201
  *         return _getAttributeValue(self, key, default)
  * 
  *     def keys(self):             # <<<<<<<<<<<<<<
@@ -44109,16 +44196,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_48keys(struct LxmlElement *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("keys", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1210
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1207
  *         arbitrary order (just like for an ordinary Python dictionary).
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         return _collectAttributes(self._c_node, 1)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1211
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1208
  *         """
  *         _assertValidNode(self)
  *         return _collectAttributes(self._c_node, 1)             # <<<<<<<<<<<<<<
@@ -44126,7 +44213,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_48keys(struct LxmlElement *__py
  *     def values(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_c_node, 1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_c_node, 1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1208; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -44156,7 +44243,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_51values(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1213
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1210
  *         return _collectAttributes(self._c_node, 1)
  * 
  *     def values(self):             # <<<<<<<<<<<<<<
@@ -44174,16 +44261,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_50values(struct LxmlElement *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("values", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1219
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1216
  *         attributes are returned in an arbitrary order.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         return _collectAttributes(self._c_node, 2)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1220
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1217
  *         """
  *         _assertValidNode(self)
  *         return _collectAttributes(self._c_node, 2)             # <<<<<<<<<<<<<<
@@ -44191,7 +44278,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_50values(struct LxmlElement *__
  *     def items(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_c_node, 2)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_c_node, 2)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -44221,7 +44308,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_53items(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1222
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1219
  *         return _collectAttributes(self._c_node, 2)
  * 
  *     def items(self):             # <<<<<<<<<<<<<<
@@ -44239,16 +44326,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_52items(struct LxmlElement *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("items", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1228
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1225
  *         an arbitrary order.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         return _collectAttributes(self._c_node, 3)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1229
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1226
  *         """
  *         _assertValidNode(self)
  *         return _collectAttributes(self._c_node, 3)             # <<<<<<<<<<<<<<
@@ -44256,7 +44343,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_52items(struct LxmlElement *__p
  *     def getchildren(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_c_node, 3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_c_node, 3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -44286,7 +44373,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_55getchildren(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1231
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1228
  *         return _collectAttributes(self._c_node, 3)
  * 
  *     def getchildren(self):             # <<<<<<<<<<<<<<
@@ -44304,16 +44391,16 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_54getchildren(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getchildren", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1241
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1238
  *           ``list(element)`` or simply iterate over elements.
  *         """
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         return _collectChildren(self)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1242
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1239
  *         """
  *         _assertValidNode(self)
  *         return _collectChildren(self)             # <<<<<<<<<<<<<<
@@ -44321,7 +44408,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_54getchildren(struct LxmlElemen
  *     def getparent(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__collectChildren(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__collectChildren(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -44351,7 +44438,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_57getparent(PyObject *__pyx_v_s
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1244
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1241
  *         return _collectChildren(self)
  * 
  *     def getparent(self):             # <<<<<<<<<<<<<<
@@ -44371,7 +44458,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_56getparent(struct LxmlElement
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getparent", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1251
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1248
  *         cdef xmlNode* c_node
  *         #_assertValidNode(self) # not needed
  *         c_node = _parentElement(self._c_node)             # <<<<<<<<<<<<<<
@@ -44380,7 +44467,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_56getparent(struct LxmlElement
  */
   __pyx_v_c_node = __pyx_f_4lxml_5etree__parentElement(__pyx_v_self->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1252
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1249
  *         #_assertValidNode(self) # not needed
  *         c_node = _parentElement(self._c_node)
  *         if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -44390,7 +44477,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_56getparent(struct LxmlElement
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1253
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1250
  *         c_node = _parentElement(self._c_node)
  *         if c_node is NULL:
  *             return None             # <<<<<<<<<<<<<<
@@ -44405,7 +44492,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_56getparent(struct LxmlElement
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1254
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1251
  *         if c_node is NULL:
  *             return None
  *         return _elementFactory(self._doc, c_node)             # <<<<<<<<<<<<<<
@@ -44415,7 +44502,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_56getparent(struct LxmlElement
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_2 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_3;
@@ -44447,7 +44534,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_59getnext(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1256
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1253
  *         return _elementFactory(self._doc, c_node)
  * 
  *     def getnext(self):             # <<<<<<<<<<<<<<
@@ -44467,7 +44554,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_58getnext(struct LxmlElement *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getnext", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1263
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1260
  *         cdef xmlNode* c_node
  *         #_assertValidNode(self) # not needed
  *         c_node = _nextElement(self._c_node)             # <<<<<<<<<<<<<<
@@ -44476,7 +44563,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_58getnext(struct LxmlElement *_
  */
   __pyx_v_c_node = __pyx_f_4lxml_5etree__nextElement(__pyx_v_self->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1264
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1261
  *         #_assertValidNode(self) # not needed
  *         c_node = _nextElement(self._c_node)
  *         if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -44486,7 +44573,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_58getnext(struct LxmlElement *_
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1265
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1262
  *         c_node = _nextElement(self._c_node)
  *         if c_node is NULL:
  *             return None             # <<<<<<<<<<<<<<
@@ -44501,7 +44588,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_58getnext(struct LxmlElement *_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1266
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1263
  *         if c_node is NULL:
  *             return None
  *         return _elementFactory(self._doc, c_node)             # <<<<<<<<<<<<<<
@@ -44511,7 +44598,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_58getnext(struct LxmlElement *_
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_2 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_3;
@@ -44543,7 +44630,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_61getprevious(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1268
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1265
  *         return _elementFactory(self._doc, c_node)
  * 
  *     def getprevious(self):             # <<<<<<<<<<<<<<
@@ -44563,7 +44650,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_60getprevious(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getprevious", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1275
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1272
  *         cdef xmlNode* c_node
  *         #_assertValidNode(self) # not needed
  *         c_node = _previousElement(self._c_node)             # <<<<<<<<<<<<<<
@@ -44572,7 +44659,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_60getprevious(struct LxmlElemen
  */
   __pyx_v_c_node = __pyx_f_4lxml_5etree__previousElement(__pyx_v_self->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1276
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1273
  *         #_assertValidNode(self) # not needed
  *         c_node = _previousElement(self._c_node)
  *         if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -44582,7 +44669,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_60getprevious(struct LxmlElemen
   __pyx_t_1 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1277
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1274
  *         c_node = _previousElement(self._c_node)
  *         if c_node is NULL:
  *             return None             # <<<<<<<<<<<<<<
@@ -44597,7 +44684,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_60getprevious(struct LxmlElemen
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1278
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1275
  *         if c_node is NULL:
  *             return None
  *         return _elementFactory(self._doc, c_node)             # <<<<<<<<<<<<<<
@@ -44607,7 +44694,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_60getprevious(struct LxmlElemen
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_2 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_3;
@@ -44654,7 +44741,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_63itersiblings(PyObject *__pyx_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,&__pyx_n_s__preceding,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1280
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1277
  *         return _elementFactory(self._doc, c_node)
  * 
  *     def itersiblings(self, tag=None, *tags, preceding=False):             # <<<<<<<<<<<<<<
@@ -44662,7 +44749,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_63itersiblings(PyObject *__pyx_
  * 
  */
     values[0] = ((PyObject *)Py_None);
-    values[1] = __pyx_k_75;
+    values[1] = __pyx_k_78;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -44686,7 +44773,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_63itersiblings(PyObject *__pyx_
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "itersiblings") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1280; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "itersiblings") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -44725,7 +44812,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_62itersiblings(struct LxmlEleme
   __Pyx_RefNannySetupContext("itersiblings", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1294
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1291
  *         see `iter`.
  *         """
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -44736,29 +44823,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_62itersiblings(struct LxmlEleme
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1295
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1292
  *         """
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return SiblingsIterator(self, tags, preceding=preceding)
  * 
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1296
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1293
  *         if tag is not None:
  *             tags += (tag,)
  *         return SiblingsIterator(self, tags, preceding=preceding)             # <<<<<<<<<<<<<<
@@ -44766,7 +44852,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_62itersiblings(struct LxmlEleme
  *     def iterancestors(self, tag=None, *tags):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -44774,10 +44860,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_62itersiblings(struct LxmlEleme
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
   PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__preceding), __pyx_v_preceding) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_SiblingsIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__preceding), __pyx_v_preceding) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_SiblingsIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -44826,7 +44912,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_65iterancestors(PyObject *__pyx
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1298
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1295
  *         return SiblingsIterator(self, tags, preceding=preceding)
  * 
  *     def iterancestors(self, tag=None, *tags):             # <<<<<<<<<<<<<<
@@ -44852,7 +44938,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_65iterancestors(PyObject *__pyx
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterancestors") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterancestors") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -44889,7 +44975,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_64iterancestors(struct LxmlElem
   __Pyx_RefNannySetupContext("iterancestors", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1306
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1303
  *         see `iter`.
  *         """
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -44900,29 +44986,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_64iterancestors(struct LxmlElem
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1307
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1304
  *         """
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return AncestorsIterator(self, tags)
  * 
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1308
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1305
  *         if tag is not None:
  *             tags += (tag,)
  *         return AncestorsIterator(self, tags)             # <<<<<<<<<<<<<<
@@ -44930,7 +45015,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_64iterancestors(struct LxmlElem
  *     def iterdescendants(self, tag=None, *tags):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -44938,7 +45023,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_64iterancestors(struct LxmlElem
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
   PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_AncestorsIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_AncestorsIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_r = __pyx_t_3;
@@ -44985,7 +45070,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_67iterdescendants(PyObject *__p
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1310
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1307
  *         return AncestorsIterator(self, tags)
  * 
  *     def iterdescendants(self, tag=None, *tags):             # <<<<<<<<<<<<<<
@@ -45011,7 +45096,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_67iterdescendants(PyObject *__p
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterdescendants") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterdescendants") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -45049,7 +45134,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_66iterdescendants(struct LxmlEl
   __Pyx_RefNannySetupContext("iterdescendants", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1319
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1316
  *         with a specific tag, see `iter`.
  *         """
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -45060,29 +45145,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_66iterdescendants(struct LxmlEl
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1320
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1317
  *         """
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return ElementDepthFirstIterator(self, tags, inclusive=False)
  * 
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1321
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1318
  *         if tag is not None:
  *             tags += (tag,)
  *         return ElementDepthFirstIterator(self, tags, inclusive=False)             # <<<<<<<<<<<<<<
@@ -45090,7 +45174,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_66iterdescendants(struct LxmlEl
  *     def iterchildren(self, tag=None, *tags, reversed=False):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -45098,13 +45182,13 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_66iterdescendants(struct LxmlEl
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
   PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __pyx_t_5 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__inclusive), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__inclusive), __pyx_t_5) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -45154,7 +45238,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_69iterchildren(PyObject *__pyx_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,&__pyx_n_s__reversed,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1323
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1320
  *         return ElementDepthFirstIterator(self, tags, inclusive=False)
  * 
  *     def iterchildren(self, tag=None, *tags, reversed=False):             # <<<<<<<<<<<<<<
@@ -45162,7 +45246,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_69iterchildren(PyObject *__pyx_
  * 
  */
     values[0] = ((PyObject *)Py_None);
-    values[1] = __pyx_k_76;
+    values[1] = __pyx_k_79;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -45186,7 +45270,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_69iterchildren(PyObject *__pyx_
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterchildren") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1323; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iterchildren") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -45225,7 +45309,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_68iterchildren(struct LxmlEleme
   __Pyx_RefNannySetupContext("iterchildren", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1332
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1329
  *         to find only elements with a specific tag, see `iter`.
  *         """
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -45236,29 +45320,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_68iterchildren(struct LxmlEleme
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1333
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1330
  *         """
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return ElementChildIterator(self, tags, reversed=reversed)
  * 
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1334
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1331
  *         if tag is not None:
  *             tags += (tag,)
  *         return ElementChildIterator(self, tags, reversed=reversed)             # <<<<<<<<<<<<<<
@@ -45266,7 +45349,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_68iterchildren(struct LxmlEleme
  *     def getroottree(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -45274,10 +45357,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_68iterchildren(struct LxmlEleme
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
   PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__reversed), __pyx_v_reversed) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementChildIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__reversed), __pyx_v_reversed) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementChildIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -45312,7 +45395,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_71getroottree(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1336
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1333
  *         return ElementChildIterator(self, tags, reversed=reversed)
  * 
  *     def getroottree(self):             # <<<<<<<<<<<<<<
@@ -45331,7 +45414,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_70getroottree(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getroottree", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1345
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1342
  *         returns None (for the root element) and then build an ElementTree for
  *         the last parent that was returned."""
  *         _assertValidDoc(self._doc)             # <<<<<<<<<<<<<<
@@ -45340,10 +45423,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_70getroottree(struct LxmlElemen
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1346
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1343
  *         the last parent that was returned."""
  *         _assertValidDoc(self._doc)
  *         return _elementTreeFactory(self._doc, None)             # <<<<<<<<<<<<<<
@@ -45353,7 +45436,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_70getroottree(struct LxmlElemen
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_1), ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1346; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_1), ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1343; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_3;
@@ -45399,7 +45482,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_73getiterator(PyObject *__pyx_v
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1348
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1345
  *         return _elementTreeFactory(self._doc, None)
  * 
  *     def getiterator(self, tag=None, *tags):             # <<<<<<<<<<<<<<
@@ -45425,7 +45508,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_73getiterator(PyObject *__pyx_v
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "getiterator") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1348; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "getiterator") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -45462,7 +45545,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_72getiterator(struct LxmlElemen
   __Pyx_RefNannySetupContext("getiterator", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1366
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1363
  *           with older versions of lxml or ElementTree.
  *         """
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -45473,29 +45556,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_72getiterator(struct LxmlElemen
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1367
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1364
  *         """
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return ElementDepthFirstIterator(self, tags)
  * 
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1368
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1365
  *         if tag is not None:
  *             tags += (tag,)
  *         return ElementDepthFirstIterator(self, tags)             # <<<<<<<<<<<<<<
@@ -45503,7 +45585,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_72getiterator(struct LxmlElemen
  *     def iter(self, tag=None, *tags):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -45511,7 +45593,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_72getiterator(struct LxmlElemen
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
   PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_r = __pyx_t_3;
@@ -45558,7 +45640,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_75iter(PyObject *__pyx_v_self,
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1370
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1367
  *         return ElementDepthFirstIterator(self, tags)
  * 
  *     def iter(self, tag=None, *tags):             # <<<<<<<<<<<<<<
@@ -45584,7 +45666,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_75iter(PyObject *__pyx_v_self,
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iter") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1370; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iter") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1367; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -45621,7 +45703,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_74iter(struct LxmlElement *__py
   __Pyx_RefNannySetupContext("iter", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1388
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1385
  *         elements matching any of these tags, in document order.
  *         """
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -45632,29 +45714,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_74iter(struct LxmlElement *__py
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1389
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1386
  *         """
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return ElementDepthFirstIterator(self, tags)
  * 
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1390
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1387
  *         if tag is not None:
  *             tags += (tag,)
  *         return ElementDepthFirstIterator(self, tags)             # <<<<<<<<<<<<<<
@@ -45662,7 +45743,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_74iter(struct LxmlElement *__py
  *     def itertext(self, tag=None, *tags, with_tail=True):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -45670,7 +45751,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_74iter(struct LxmlElement *__py
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
   PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementDepthFirstIterator)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_r = __pyx_t_3;
@@ -45718,7 +45799,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_77itertext(PyObject *__pyx_v_se
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,&__pyx_n_s__with_tail,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1392
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1389
  *         return ElementDepthFirstIterator(self, tags)
  * 
  *     def itertext(self, tag=None, *tags, with_tail=True):             # <<<<<<<<<<<<<<
@@ -45726,7 +45807,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_77itertext(PyObject *__pyx_v_se
  * 
  */
     values[0] = ((PyObject *)Py_None);
-    values[1] = __pyx_k_77;
+    values[1] = __pyx_k_80;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -45750,7 +45831,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_77itertext(PyObject *__pyx_v_se
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "itertext") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "itertext") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -45789,7 +45870,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_76itertext(struct LxmlElement *
   __Pyx_RefNannySetupContext("itertext", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1403
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1400
  *         over tail text.
  *         """
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -45800,29 +45881,28 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_76itertext(struct LxmlElement *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1404
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1401
  *         """
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return ElementTextIterator(self, tags, with_tail=with_tail)
  * 
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1405
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1402
  *         if tag is not None:
  *             tags += (tag,)
  *         return ElementTextIterator(self, tags, with_tail=with_tail)             # <<<<<<<<<<<<<<
@@ -45830,7 +45910,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_76itertext(struct LxmlElement *
  *     def makeelement(self, _tag, attrib=None, nsmap=None, **_extra):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -45838,10 +45918,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_76itertext(struct LxmlElement *
   __Pyx_INCREF(((PyObject *)__pyx_v_tags));
   PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_tags));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_tags));
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__with_tail), __pyx_v_with_tail) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementTextIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__with_tail), __pyx_v_with_tail) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ElementTextIterator)), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -45884,7 +45964,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_79makeelement(PyObject *__pyx_v
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___tag,&__pyx_n_s__attrib,&__pyx_n_s__nsmap,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1407
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1404
  *         return ElementTextIterator(self, tags, with_tail=with_tail)
  * 
  *     def makeelement(self, _tag, attrib=None, nsmap=None, **_extra):             # <<<<<<<<<<<<<<
@@ -45920,7 +46000,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_79makeelement(PyObject *__pyx_v
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "makeelement") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "makeelement") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -45937,7 +46017,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_79makeelement(PyObject *__pyx_v
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("makeelement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("makeelement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__extra); __pyx_v__extra = 0;
   __Pyx_AddTraceback("lxml.etree._Element.makeelement", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -45961,7 +46041,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_78makeelement(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("makeelement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1412
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1409
  *         Creates a new element associated with the same document.
  *         """
  *         _assertValidDoc(self._doc)             # <<<<<<<<<<<<<<
@@ -45970,10 +46050,10 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_78makeelement(struct LxmlElemen
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1413
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1410
  *         """
  *         _assertValidDoc(self._doc)
  *         return _makeElement(_tag, NULL, self._doc, None, None, None,             # <<<<<<<<<<<<<<
@@ -45984,14 +46064,14 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_78makeelement(struct LxmlElemen
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_doc);
   __Pyx_INCREF(__pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1414
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1411
  *         _assertValidDoc(self._doc)
  *         return _makeElement(_tag, NULL, self._doc, None, None, None,
  *                             attrib, nsmap, _extra)             # <<<<<<<<<<<<<<
  * 
  *     def find(self, path, namespaces=None):
  */
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)__pyx_t_1), ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, ((PyObject *)__pyx_v__extra))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)__pyx_t_1), ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, ((PyObject *)__pyx_v__extra))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_3;
@@ -46027,7 +46107,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_81find(PyObject *__pyx_v_self,
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__namespaces,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1416
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1413
  *                             attrib, nsmap, _extra)
  * 
  *     def find(self, path, namespaces=None):             # <<<<<<<<<<<<<<
@@ -46056,7 +46136,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_81find(PyObject *__pyx_v_self,
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1416; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -46071,7 +46151,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_81find(PyObject *__pyx_v_self,
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("find", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1416; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("find", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1413; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.find", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -46096,7 +46176,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
   __Pyx_RefNannySetupContext("find", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1425
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1422
  *         prefixes in the path expression.
  *         """
  *         if isinstance(path, QName):             # <<<<<<<<<<<<<<
@@ -46107,7 +46187,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1426
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1423
  *         """
  *         if isinstance(path, QName):
  *             path = (<QName>path).text             # <<<<<<<<<<<<<<
@@ -46116,14 +46196,13 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
  */
     __pyx_t_3 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text);
     __Pyx_INCREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1427
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1424
  *         if isinstance(path, QName):
  *             path = (<QName>path).text
  *         return _elementpath.find(self, path, namespaces)             # <<<<<<<<<<<<<<
@@ -46131,9 +46210,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
  *     def findtext(self, path, default=None, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__find); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__find); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -46144,7 +46223,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_80find(struct LxmlElement *__py
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -46184,7 +46263,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_83findtext(PyObject *__pyx_v_se
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__default,&__pyx_n_s__namespaces,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1429
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1426
  *         return _elementpath.find(self, path, namespaces)
  * 
  *     def findtext(self, path, default=None, namespaces=None):             # <<<<<<<<<<<<<<
@@ -46220,7 +46299,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_83findtext(PyObject *__pyx_v_se
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findtext") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findtext") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -46237,7 +46316,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_83findtext(PyObject *__pyx_v_se
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("findtext", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("findtext", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.findtext", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -46262,7 +46341,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
   __Pyx_RefNannySetupContext("findtext", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1438
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1435
  *         prefixes in the path expression.
  *         """
  *         if isinstance(path, QName):             # <<<<<<<<<<<<<<
@@ -46273,7 +46352,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1439
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1436
  *         """
  *         if isinstance(path, QName):
  *             path = (<QName>path).text             # <<<<<<<<<<<<<<
@@ -46282,14 +46361,13 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
  */
     __pyx_t_3 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text);
     __Pyx_INCREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1440
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1437
  *         if isinstance(path, QName):
  *             path = (<QName>path).text
  *         return _elementpath.findtext(self, path, default, namespaces)             # <<<<<<<<<<<<<<
@@ -46297,9 +46375,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
  *     def findall(self, path, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findtext); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findtext); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -46313,7 +46391,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_82findtext(struct LxmlElement *
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -46352,7 +46430,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_85findall(PyObject *__pyx_v_sel
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__namespaces,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1442
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1439
  *         return _elementpath.findtext(self, path, default, namespaces)
  * 
  *     def findall(self, path, namespaces=None):             # <<<<<<<<<<<<<<
@@ -46381,7 +46459,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_85findall(PyObject *__pyx_v_sel
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findall") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findall") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1439; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -46396,7 +46474,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_85findall(PyObject *__pyx_v_sel
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("findall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1442; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("findall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1439; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.findall", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -46421,7 +46499,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
   __Pyx_RefNannySetupContext("findall", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1451
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1448
  *         prefixes in the path expression.
  *         """
  *         if isinstance(path, QName):             # <<<<<<<<<<<<<<
@@ -46432,7 +46510,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1452
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1449
  *         """
  *         if isinstance(path, QName):
  *             path = (<QName>path).text             # <<<<<<<<<<<<<<
@@ -46441,14 +46519,13 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
  */
     __pyx_t_3 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text);
     __Pyx_INCREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1453
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1450
  *         if isinstance(path, QName):
  *             path = (<QName>path).text
  *         return _elementpath.findall(self, path, namespaces)             # <<<<<<<<<<<<<<
@@ -46456,9 +46533,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
  *     def iterfind(self, path, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findall); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__findall); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -46469,7 +46546,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_84findall(struct LxmlElement *_
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -46508,7 +46585,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_87iterfind(PyObject *__pyx_v_se
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__namespaces,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1455
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1452
  *         return _elementpath.findall(self, path, namespaces)
  * 
  *     def iterfind(self, path, namespaces=None):             # <<<<<<<<<<<<<<
@@ -46537,7 +46614,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_87iterfind(PyObject *__pyx_v_se
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "iterfind") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "iterfind") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1452; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -46552,7 +46629,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_87iterfind(PyObject *__pyx_v_se
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("iterfind", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1455; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("iterfind", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1452; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Element.iterfind", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -46577,7 +46654,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
   __Pyx_RefNannySetupContext("iterfind", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1464
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1461
  *         prefixes in the path expression.
  *         """
  *         if isinstance(path, QName):             # <<<<<<<<<<<<<<
@@ -46588,7 +46665,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1465
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1462
  *         """
  *         if isinstance(path, QName):
  *             path = (<QName>path).text             # <<<<<<<<<<<<<<
@@ -46597,14 +46674,13 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
  */
     __pyx_t_3 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_path)->text);
     __Pyx_INCREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1466
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1463
  *         if isinstance(path, QName):
  *             path = (<QName>path).text
  *         return _elementpath.iterfind(self, path, namespaces)             # <<<<<<<<<<<<<<
@@ -46612,9 +46688,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
  *     def xpath(self, _path, *, namespaces=None, extensions=None,
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__iterfind); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__elementpath, __pyx_n_s__iterfind); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self));
@@ -46625,7 +46701,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_86iterfind(struct LxmlElement *
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -46669,7 +46745,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_89xpath(PyObject *__pyx_v_self,
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___path,&__pyx_n_s__namespaces,&__pyx_n_s__extensions,&__pyx_n_s__smart_strings,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1468
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1465
  *         return _elementpath.iterfind(self, path, namespaces)
  * 
  *     def xpath(self, _path, *, namespaces=None, extensions=None,             # <<<<<<<<<<<<<<
@@ -46678,7 +46754,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_89xpath(PyObject *__pyx_v_self,
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_78;
+    values[3] = __pyx_k_81;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -46701,7 +46777,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_89xpath(PyObject *__pyx_v_self,
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "xpath") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "xpath") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -46715,7 +46791,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Element_89xpath(PyObject *__pyx_v_self,
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("xpath", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1468; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("xpath", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__variables); __pyx_v__variables = 0;
   __Pyx_AddTraceback("lxml.etree._Element.xpath", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -46740,47 +46816,47 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_88xpath(struct LxmlElement *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("xpath", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1474
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1471
  *         Evaluate an xpath expression using the element as context node.
  *         """
  *         evaluator = XPathElementEvaluator(self, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *                                           extensions=extensions,
  *                                           smart_strings=smart_strings)
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1475
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1472
  *         """
  *         evaluator = XPathElementEvaluator(self, namespaces=namespaces,
  *                                           extensions=extensions,             # <<<<<<<<<<<<<<
  *                                           smart_strings=smart_strings)
  *         return evaluator(_path, **_variables)
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1476
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1473
  *         evaluator = XPathElementEvaluator(self, namespaces=namespaces,
  *                                           extensions=extensions,
  *                                           smart_strings=smart_strings)             # <<<<<<<<<<<<<<
  *         return evaluator(_path, **_variables)
  * 
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_v_evaluator = ((struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1477
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1474
  *                                           extensions=extensions,
  *                                           smart_strings=smart_strings)
  *         return evaluator(_path, **_variables)             # <<<<<<<<<<<<<<
@@ -46788,14 +46864,14 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_88xpath(struct LxmlElement *__p
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v__path);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__path);
   __Pyx_GIVEREF(__pyx_v__path);
   __pyx_t_2 = ((PyObject *)__pyx_v__variables);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_1 = PyObject_Call(((PyObject *)__pyx_v_evaluator), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)__pyx_v_evaluator), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1474; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -46818,7 +46894,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Element_88xpath(struct LxmlElement *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1484
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1481
  *     cdef object NEW_ELEMENT "PY_NEW" (object t)
  * 
  * cdef _Element _elementFactory(_Document doc, xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -46841,19 +46917,19 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_elementFactory", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1486
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1483
  * cdef _Element _elementFactory(_Document doc, xmlNode* c_node):
  *     cdef _Element result
  *     result = getProxy(c_node)             # <<<<<<<<<<<<<<
  *     if result is not None:
  *         return result
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_result = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1487
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1484
  *     cdef _Element result
  *     result = getProxy(c_node)
  *     if result is not None:             # <<<<<<<<<<<<<<
@@ -46864,7 +46940,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1488
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1485
  *     result = getProxy(c_node)
  *     if result is not None:
  *         return result             # <<<<<<<<<<<<<<
@@ -46879,7 +46955,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1489
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1486
  *     if result is not None:
  *         return result
  *     if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -46889,7 +46965,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1490
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1487
  *         return result
  *     if c_node is NULL:
  *         return None             # <<<<<<<<<<<<<<
@@ -46904,7 +46980,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1493
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1490
  * 
  *     element_class = LOOKUP_ELEMENT_CLASS(
  *         ELEMENT_CLASS_LOOKUP_STATE, doc, c_node)             # <<<<<<<<<<<<<<
@@ -46913,13 +46989,13 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  */
   __pyx_t_1 = __pyx_v_4lxml_5etree_ELEMENT_CLASS_LOOKUP_STATE;
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_4 = __pyx_v_4lxml_5etree_LOOKUP_ELEMENT_CLASS(__pyx_t_1, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_v_4lxml_5etree_LOOKUP_ELEMENT_CLASS(__pyx_t_1, __pyx_v_doc, __pyx_v_c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_element_class = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1494
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1491
  *     element_class = LOOKUP_ELEMENT_CLASS(
  *         ELEMENT_CLASS_LOOKUP_STATE, doc, c_node)
  *     if hasProxy(c_node):             # <<<<<<<<<<<<<<
@@ -46929,7 +47005,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   __pyx_t_3 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1496
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1493
  *     if hasProxy(c_node):
  *         # prevent re-entry race condition - we just called into Python
  *         return getProxy(c_node)             # <<<<<<<<<<<<<<
@@ -46937,7 +47013,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *     if hasProxy(c_node):
  */
     __Pyx_XDECREF(((PyObject *)__pyx_r));
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = ((struct LxmlElement *)__pyx_t_4);
     __pyx_t_4 = 0;
@@ -46946,21 +47022,20 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1497
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1494
  *         # prevent re-entry race condition - we just called into Python
  *         return getProxy(c_node)
  *     result = NEW_ELEMENT(element_class)             # <<<<<<<<<<<<<<
  *     if hasProxy(c_node):
  *         # prevent re-entry race condition - we just called into Python
  */
-  __pyx_t_4 = PY_NEW(__pyx_v_element_class); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PY_NEW(__pyx_v_element_class); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(((PyObject *)__pyx_v_result));
-  __pyx_v_result = ((struct LxmlElement *)__pyx_t_4);
+  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF_SET(__pyx_v_result, ((struct LxmlElement *)__pyx_t_4));
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1498
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1495
  *         return getProxy(c_node)
  *     result = NEW_ELEMENT(element_class)
  *     if hasProxy(c_node):             # <<<<<<<<<<<<<<
@@ -46970,7 +47045,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   __pyx_t_3 = (__pyx_f_4lxml_5etree_hasProxy(__pyx_v_c_node) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1500
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1497
  *     if hasProxy(c_node):
  *         # prevent re-entry race condition - we just called into Python
  *         result._c_node = NULL             # <<<<<<<<<<<<<<
@@ -46979,7 +47054,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  */
     __pyx_v_result->_c_node = NULL;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1501
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1498
  *         # prevent re-entry race condition - we just called into Python
  *         result._c_node = NULL
  *         return getProxy(c_node)             # <<<<<<<<<<<<<<
@@ -46987,7 +47062,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
  *     _registerProxy(result, doc, c_node)
  */
     __Pyx_XDECREF(((PyObject *)__pyx_r));
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1501; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_getProxy(__pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = ((struct LxmlElement *)__pyx_t_4);
     __pyx_t_4 = 0;
@@ -46996,16 +47071,16 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1503
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1500
  *         return getProxy(c_node)
  * 
  *     _registerProxy(result, doc, c_node)             # <<<<<<<<<<<<<<
  *     if element_class is not _Element:
  *         result._init()
  */
-  __pyx_t_5 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_result, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__registerProxy(__pyx_v_result, __pyx_v_doc, __pyx_v_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1500; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1504
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1501
  * 
  *     _registerProxy(result, doc, c_node)
  *     if element_class is not _Element:             # <<<<<<<<<<<<<<
@@ -47016,16 +47091,16 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1505
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1502
  *     _registerProxy(result, doc, c_node)
  *     if element_class is not _Element:
  *         result._init()             # <<<<<<<<<<<<<<
  *     return result
  * 
  */
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s___init); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_result), __pyx_n_s___init); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -47033,7 +47108,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1506
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1503
  *     if element_class is not _Element:
  *         result._init()
  *     return result             # <<<<<<<<<<<<<<
@@ -47060,7 +47135,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__elementFactory(struct LxmlDocum
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1511
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1508
  * @cython.internal
  * cdef class __ContentOnlyElement(_Element):
  *     cdef int _raiseImmutable(self) except -1:             # <<<<<<<<<<<<<<
@@ -47076,15 +47151,15 @@ static int __pyx_f_4lxml_5etree_20__ContentOnlyElement__raiseImmutable(CYTHON_UN
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_raiseImmutable", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1512
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1509
  * cdef class __ContentOnlyElement(_Element):
  *     cdef int _raiseImmutable(self) except -1:
  *         raise TypeError, u"this element does not have children or attributes"             # <<<<<<<<<<<<<<
  * 
  *     def set(self, key, value):
  */
-  __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_79), 0, 0);
-  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_82), 0, 0);
+  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
   goto __pyx_L0;
@@ -47128,11 +47203,11 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_1set(PyObject *__p
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1511; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1511; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -47145,7 +47220,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_1set(PyObject *__p
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1514; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1511; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.__ContentOnlyElement.set", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -47156,7 +47231,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_1set(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1514
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1511
  *         raise TypeError, u"this element does not have children or attributes"
  * 
  *     def set(self, key, value):             # <<<<<<<<<<<<<<
@@ -47173,14 +47248,14 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_set(struct __pyx_o
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("set", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1516
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1513
  *     def set(self, key, value):
  *         u"set(self, key, value)"
  *         self._raiseImmutable()             # <<<<<<<<<<<<<<
  * 
  *     def append(self, value):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -47205,7 +47280,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_3append(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1518
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1515
  *         self._raiseImmutable()
  * 
  *     def append(self, value):             # <<<<<<<<<<<<<<
@@ -47222,14 +47297,14 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_2append(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("append", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1520
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1517
  *     def append(self, value):
  *         u"append(self, value)"
  *         self._raiseImmutable()             # <<<<<<<<<<<<<<
  * 
  *     def insert(self, index, value):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -47274,11 +47349,11 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_5insert(PyObject *
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "insert") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -47291,7 +47366,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_5insert(PyObject *
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("insert", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.__ContentOnlyElement.insert", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -47302,7 +47377,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_5insert(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1522
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1519
  *         self._raiseImmutable()
  * 
  *     def insert(self, index, value):             # <<<<<<<<<<<<<<
@@ -47319,14 +47394,14 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_4insert(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("insert", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1524
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1521
  *     def insert(self, index, value):
  *         u"insert(self, index, value)"
  *         self._raiseImmutable()             # <<<<<<<<<<<<<<
  * 
  *     def __setitem__(self, index, value):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -47354,7 +47429,7 @@ static int __pyx_pw_4lxml_5etree_20__ContentOnlyElement_7__setitem__(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1526
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1523
  *         self._raiseImmutable()
  * 
  *     def __setitem__(self, index, value):             # <<<<<<<<<<<<<<
@@ -47371,14 +47446,14 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_6__setitem__(struct __py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__setitem__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1528
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1525
  *     def __setitem__(self, index, value):
  *         u"__setitem__(self, index, value)"
  *         self._raiseImmutable()             # <<<<<<<<<<<<<<
  * 
  *     property attrib:
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1528; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement *)__pyx_v_self->__pyx_vtab)->_raiseImmutable(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
   goto __pyx_L0;
@@ -47401,7 +47476,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_6attrib_1__get__(P
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1531
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1528
  * 
  *     property attrib:
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -47418,7 +47493,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_6attrib___get__(CY
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1532
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1529
  *     property attrib:
  *         def __get__(self):
  *             return {}             # <<<<<<<<<<<<<<
@@ -47426,7 +47501,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_6attrib___get__(CY
  *     property text:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_r = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -47455,7 +47530,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_4text_1__get__(PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1535
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1532
  * 
  *     property text:
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -47474,16 +47549,16 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text___get__(stru
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1536
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1533
  *     property text:
  *         def __get__(self):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             if self._c_node.content is NULL:
  *                 return ''
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1537
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1534
  *         def __get__(self):
  *             _assertValidNode(self)
  *             if self._c_node.content is NULL:             # <<<<<<<<<<<<<<
@@ -47493,7 +47568,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text___get__(stru
   __pyx_t_2 = ((__pyx_v_self->__pyx_base._c_node->content == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1538
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1535
  *             _assertValidNode(self)
  *             if self._c_node.content is NULL:
  *                 return ''             # <<<<<<<<<<<<<<
@@ -47508,7 +47583,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text___get__(stru
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1540
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1537
  *                 return ''
  *             else:
  *                 return funicode(self._c_node.content)             # <<<<<<<<<<<<<<
@@ -47516,7 +47591,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text___get__(stru
  *         def __set__(self, value):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base._c_node->content); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base._c_node->content); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -47547,7 +47622,7 @@ static int __pyx_pw_4lxml_5etree_20__ContentOnlyElement_4text_3__set__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1542
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1539
  *                 return funicode(self._c_node.content)
  * 
  *         def __set__(self, value):             # <<<<<<<<<<<<<<
@@ -47569,16 +47644,16 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text_2__set__(struct __
   __Pyx_RefNannySetupContext("__set__", 0);
   __Pyx_INCREF(__pyx_v_value);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1544
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1541
  *         def __set__(self, value):
  *             cdef tree.xmlDict* c_dict
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             if value is None:
  *                 c_text = <const_xmlChar*>NULL
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1544; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1541; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1545
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1542
  *             cdef tree.xmlDict* c_dict
  *             _assertValidNode(self)
  *             if value is None:             # <<<<<<<<<<<<<<
@@ -47589,7 +47664,7 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text_2__set__(struct __
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1546
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1543
  *             _assertValidNode(self)
  *             if value is None:
  *                 c_text = <const_xmlChar*>NULL             # <<<<<<<<<<<<<<
@@ -47601,20 +47676,19 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text_2__set__(struct __
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1548
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1545
  *                 c_text = <const_xmlChar*>NULL
  *             else:
  *                 value = _utf8(value)             # <<<<<<<<<<<<<<
  *                 c_text = _xcstr(value)
  *             tree.xmlNodeSetContent(self._c_node, c_text)
  */
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1549
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1546
  *             else:
  *                 value = _utf8(value)
  *                 c_text = _xcstr(value)             # <<<<<<<<<<<<<<
@@ -47625,7 +47699,7 @@ static int __pyx_pf_4lxml_5etree_20__ContentOnlyElement_4text_2__set__(struct __
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1550
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1547
  *                 value = _utf8(value)
  *                 c_text = _xcstr(value)
  *             tree.xmlNodeSetContent(self._c_node, c_text)             # <<<<<<<<<<<<<<
@@ -47661,7 +47735,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_9__getitem__(PyObj
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1553
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1550
  * 
  *     # ACCESSORS
  *     def __getitem__(self, x):             # <<<<<<<<<<<<<<
@@ -47679,7 +47753,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_8__getitem__(CYTHO
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__getitem__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1555
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1552
  *     def __getitem__(self, x):
  *         u"__getitem__(self, x)"
  *         if python.PySlice_Check(x):             # <<<<<<<<<<<<<<
@@ -47689,7 +47763,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_8__getitem__(CYTHO
   __pyx_t_1 = (PySlice_Check(__pyx_v_x) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1556
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1553
  *         u"__getitem__(self, x)"
  *         if python.PySlice_Check(x):
  *             return []             # <<<<<<<<<<<<<<
@@ -47697,7 +47771,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_8__getitem__(CYTHO
  *             raise IndexError, u"list index out of range"
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1553; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = ((PyObject *)__pyx_t_2);
     __pyx_t_2 = 0;
@@ -47706,15 +47780,15 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_8__getitem__(CYTHO
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1558
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1555
  *             return []
  *         else:
  *             raise IndexError, u"list index out of range"             # <<<<<<<<<<<<<<
  * 
  *     def __len__(self):
  */
-    __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_67), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_70), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
@@ -47745,7 +47819,7 @@ static Py_ssize_t __pyx_pw_4lxml_5etree_20__ContentOnlyElement_11__len__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1560
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1557
  *             raise IndexError, u"list index out of range"
  * 
  *     def __len__(self):             # <<<<<<<<<<<<<<
@@ -47758,7 +47832,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_20__ContentOnlyElement_10__len__(CYTHON_
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__len__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1562
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1559
  *     def __len__(self):
  *         u"__len__(self)"
  *         return 0             # <<<<<<<<<<<<<<
@@ -47790,7 +47864,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_13get(PyObject *__
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__default,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1564
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1561
  *         return 0
  * 
  *     def get(self, key, default=None):             # <<<<<<<<<<<<<<
@@ -47819,7 +47893,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_13get(PyObject *__
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1561; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -47834,7 +47908,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_13get(PyObject *__
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1564; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1561; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.__ContentOnlyElement.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -47850,7 +47924,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_12get(CYTHON_UNUSE
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("get", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1566
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1563
  *     def get(self, key, default=None):
  *         u"get(self, key, default=None)"
  *         return None             # <<<<<<<<<<<<<<
@@ -47881,7 +47955,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_15keys(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1568
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1565
  *         return None
  * 
  *     def keys(self):             # <<<<<<<<<<<<<<
@@ -47898,7 +47972,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_14keys(CYTHON_UNUS
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("keys", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1570
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1567
  *     def keys(self):
  *         u"keys(self)"
  *         return []             # <<<<<<<<<<<<<<
@@ -47906,7 +47980,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_14keys(CYTHON_UNUS
  *     def items(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1570; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -47936,7 +48010,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_17items(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1572
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1569
  *         return []
  * 
  *     def items(self):             # <<<<<<<<<<<<<<
@@ -47953,7 +48027,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_16items(CYTHON_UNU
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("items", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1574
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1571
  *     def items(self):
  *         u"items(self)"
  *         return []             # <<<<<<<<<<<<<<
@@ -47961,7 +48035,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_16items(CYTHON_UNU
  *     def values(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1571; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -47991,7 +48065,7 @@ static PyObject *__pyx_pw_4lxml_5etree_20__ContentOnlyElement_19values(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1576
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1573
  *         return []
  * 
  *     def values(self):             # <<<<<<<<<<<<<<
@@ -48008,7 +48082,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_18values(CYTHON_UN
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("values", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1578
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1575
  *     def values(self):
  *         u"values(self)"
  *         return []             # <<<<<<<<<<<<<<
@@ -48016,7 +48090,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20__ContentOnlyElement_18values(CYTHON_UN
  * cdef class _Comment(__ContentOnlyElement):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -48045,7 +48119,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Comment_3tag_1__get__(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1582
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1579
  * cdef class _Comment(__ContentOnlyElement):
  *     property tag:
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -48062,7 +48136,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Comment_3tag___get__(CYTHON_UNUSED stru
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1583
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1580
  *     property tag:
  *         def __get__(self):
  *             return Comment             # <<<<<<<<<<<<<<
@@ -48070,7 +48144,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Comment_3tag___get__(CYTHON_UNUSED stru
  *     def __repr__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -48099,7 +48173,7 @@ static PyObject *__pyx_pw_4lxml_5etree_8_Comment_1__repr__(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1585
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1582
  *             return Comment
  * 
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -48117,7 +48191,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Comment___repr__(struct __pyx_obj_4lxml
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1586
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1583
  * 
  *     def __repr__(self):
  *         return u"<!--%s-->" % self.text             # <<<<<<<<<<<<<<
@@ -48125,9 +48199,9 @@ static PyObject *__pyx_pf_4lxml_5etree_8_Comment___repr__(struct __pyx_obj_4lxml
  * cdef class _ProcessingInstruction(__ContentOnlyElement):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_80), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = ((PyObject *)__pyx_t_2);
@@ -48158,7 +48232,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_ProcessingInstruction_3tag_1__get__(Py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1590
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1587
  * cdef class _ProcessingInstruction(__ContentOnlyElement):
  *     property tag:
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -48175,7 +48249,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_3tag___get__(CYT
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1591
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1588
  *     property tag:
  *         def __get__(self):
  *             return ProcessingInstruction             # <<<<<<<<<<<<<<
@@ -48183,7 +48257,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_3tag___get__(CYT
  *     property target:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_81); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_84); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -48212,7 +48286,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_ProcessingInstruction_6target_1__get__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1595
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1592
  *     property target:
  *         # not in ElementTree
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -48230,16 +48304,16 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6target___get__(
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1596
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1593
  *         # not in ElementTree
  *         def __get__(self):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             return funicode(self._c_node.name)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1597
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1594
  *         def __get__(self):
  *             _assertValidNode(self)
  *             return funicode(self._c_node.name)             # <<<<<<<<<<<<<<
@@ -48247,7 +48321,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6target___get__(
  *         def __set__(self, value):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1594; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -48276,7 +48350,7 @@ static int __pyx_pw_4lxml_5etree_22_ProcessingInstruction_6target_3__set__(PyObj
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1599
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1596
  *             return funicode(self._c_node.name)
  * 
  *         def __set__(self, value):             # <<<<<<<<<<<<<<
@@ -48296,29 +48370,28 @@ static int __pyx_pf_4lxml_5etree_22_ProcessingInstruction_6target_2__set__(struc
   __Pyx_RefNannySetupContext("__set__", 0);
   __Pyx_INCREF(__pyx_v_value);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1600
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1597
  * 
  *         def __set__(self, value):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             value = _utf8(value)
  *             c_text = _xcstr(value)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1601
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1598
  *         def __set__(self, value):
  *             _assertValidNode(self)
  *             value = _utf8(value)             # <<<<<<<<<<<<<<
  *             c_text = _xcstr(value)
  *             tree.xmlNodeSetName(self._c_node, c_text)
  */
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1598; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(__pyx_v_value);
-  __pyx_v_value = __pyx_t_2;
+  __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1602
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1599
  *             _assertValidNode(self)
  *             value = _utf8(value)
  *             c_text = _xcstr(value)             # <<<<<<<<<<<<<<
@@ -48327,7 +48400,7 @@ static int __pyx_pf_4lxml_5etree_22_ProcessingInstruction_6target_2__set__(struc
  */
   __pyx_v_c_text = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_value);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1603
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1600
  *             value = _utf8(value)
  *             c_text = _xcstr(value)
  *             tree.xmlNodeSetName(self._c_node, c_text)             # <<<<<<<<<<<<<<
@@ -48359,7 +48432,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_ProcessingInstruction_1__repr__(PyObje
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1605
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1602
  *             tree.xmlNodeSetName(self._c_node, c_text)
  * 
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -48379,29 +48452,29 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction___repr__(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1606
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1603
  * 
  *     def __repr__(self):
  *         text = self.text             # <<<<<<<<<<<<<<
  *         if text:
  *             return u"<?%s %s?>" % (self.target, text)
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_text = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1607
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1604
  *     def __repr__(self):
  *         text = self.text
  *         if text:             # <<<<<<<<<<<<<<
  *             return u"<?%s %s?>" % (self.target, text)
  *         else:
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_text); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_text); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1608
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1605
  *         text = self.text
  *         if text:
  *             return u"<?%s %s?>" % (self.target, text)             # <<<<<<<<<<<<<<
@@ -48409,9 +48482,9 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction___repr__(struct
  *             return u"<?%s?>" % self.target
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
     __Pyx_GIVEREF(__pyx_t_1);
@@ -48419,7 +48492,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction___repr__(struct
     PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_text);
     __Pyx_GIVEREF(__pyx_v_text);
     __pyx_t_1 = 0;
-    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_82), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_85), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
     __pyx_r = ((PyObject *)__pyx_t_1);
@@ -48429,7 +48502,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction___repr__(struct
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1610
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1607
  *             return u"<?%s %s?>" % (self.target, text)
  *         else:
  *             return u"<?%s?>" % self.target             # <<<<<<<<<<<<<<
@@ -48437,9 +48510,9 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction___repr__(struct
  *     def get(self, key, default=None):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_86), __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_r = ((PyObject *)__pyx_t_3);
@@ -48478,7 +48551,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_ProcessingInstruction_3get(PyObject *_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__default,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1612
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1609
  *             return u"<?%s?>" % self.target
  * 
  *     def get(self, key, default=None):             # <<<<<<<<<<<<<<
@@ -48507,7 +48580,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_ProcessingInstruction_3get(PyObject *_
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1612; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -48522,7 +48595,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_ProcessingInstruction_3get(PyObject *_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1612; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1609; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._ProcessingInstruction.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -48544,7 +48617,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_2get(struct __py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("get", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1624
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1621
  *         It is not guaranteed to work for all possible text content.
  *         """
  *         return self.attrib.get(key, default)             # <<<<<<<<<<<<<<
@@ -48552,12 +48625,12 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_2get(struct __py
  *     property attrib:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__attrib); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__attrib); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__get); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__get); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_key);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_key);
@@ -48565,7 +48638,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_2get(struct __py
   __Pyx_INCREF(__pyx_v_default);
   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_default);
   __Pyx_GIVEREF(__pyx_v_default);
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -48598,7 +48671,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_ProcessingInstruction_6attrib_1__get__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1632
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1629
  *         XML node, although this is not guaranteed to stay this way.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -48625,7 +48698,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6attrib___get__(
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1633
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1630
  *         """
  *         def __get__(self):
  *             return { attr : (value1 or value2)             # <<<<<<<<<<<<<<
@@ -48637,34 +48710,34 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6attrib___get__(
     PyObject *__pyx_7genexpr__pyx_v_attr = NULL;
     PyObject *__pyx_7genexpr__pyx_v_value1 = NULL;
     PyObject *__pyx_7genexpr__pyx_v_value2 = NULL;
-    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+    __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1630; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
     __Pyx_GOTREF(__pyx_t_1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1634
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1631
  *         def __get__(self):
  *             return { attr : (value1 or value2)
  *                      for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }             # <<<<<<<<<<<<<<
  * 
  * cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall
  */
-    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+    __pyx_t_3 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
     __Pyx_GOTREF(__pyx_t_2);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __pyx_t_3 = 0;
-    __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     if (PyList_CheckExact(__pyx_t_3) || PyTuple_CheckExact(__pyx_t_3)) {
       __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
       __pyx_t_5 = NULL;
     } else {
-      __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __pyx_t_5 = Py_TYPE(__pyx_t_2)->tp_iternext;
     }
@@ -48673,23 +48746,23 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6attrib___get__(
       if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_2)) {
         if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         #else
-        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         #endif
       } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_2)) {
         if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         #else
-        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         #endif
       } else {
         __pyx_t_3 = __pyx_t_5(__pyx_t_2);
         if (unlikely(!__pyx_t_3)) {
           if (PyErr_Occurred()) {
             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
           }
           break;
         }
@@ -48705,7 +48778,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6attrib___get__(
         if (unlikely(size != 3)) {
           if (size > 3) __Pyx_RaiseTooManyValuesError(3);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -48721,18 +48794,18 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6attrib___get__(
         __Pyx_INCREF(__pyx_t_7);
         __Pyx_INCREF(__pyx_t_8);
         #else
-        __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(__pyx_t_6);
-        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(__pyx_t_7);
-        __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(__pyx_t_8);
         #endif
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_9 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_9 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
@@ -48742,7 +48815,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6attrib___get__(
         __Pyx_GOTREF(__pyx_t_7);
         index = 2; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_8);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __pyx_t_10 = NULL;
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         goto __pyx_L9_unpacking_done;
@@ -48750,27 +48823,24 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6attrib___get__(
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         __pyx_t_10 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1634; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1631; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __pyx_L9_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_attr);
-      __pyx_7genexpr__pyx_v_attr = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_attr, __pyx_t_6);
       __pyx_t_6 = 0;
-      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_value1);
-      __pyx_7genexpr__pyx_v_value1 = __pyx_t_7;
+      __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_value1, __pyx_t_7);
       __pyx_t_7 = 0;
-      __Pyx_XDECREF(__pyx_7genexpr__pyx_v_value2);
-      __pyx_7genexpr__pyx_v_value2 = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v_value2, __pyx_t_8);
       __pyx_t_8 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1633
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1630
  *         """
  *         def __get__(self):
  *             return { attr : (value1 or value2)             # <<<<<<<<<<<<<<
  *                      for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
  * 
  */
-      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_7genexpr__pyx_v_value1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_7genexpr__pyx_v_value1); if (unlikely(__pyx_t_11 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1630; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       if (!__pyx_t_11) {
         __Pyx_INCREF(__pyx_7genexpr__pyx_v_value2);
         __pyx_t_3 = __pyx_7genexpr__pyx_v_value2;
@@ -48778,7 +48848,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_ProcessingInstruction_6attrib___get__(
         __Pyx_INCREF(__pyx_7genexpr__pyx_v_value1);
         __pyx_t_3 = __pyx_7genexpr__pyx_v_value1;
       }
-      if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_attr, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      if (unlikely(PyDict_SetItem(__pyx_t_1, (PyObject*)__pyx_7genexpr__pyx_v_attr, (PyObject*)__pyx_t_3))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1630; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     }
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -48826,7 +48896,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Entity_3tag_1__get__(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1640
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1637
  * cdef class _Entity(__ContentOnlyElement):
  *     property tag:
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -48843,7 +48913,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Entity_3tag___get__(CYTHON_UNUSED struc
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1641
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1638
  *     property tag:
  *         def __get__(self):
  *             return Entity             # <<<<<<<<<<<<<<
@@ -48851,7 +48921,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Entity_3tag___get__(CYTHON_UNUSED struc
  *     property name:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -48880,7 +48950,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Entity_4name_1__get__(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1645
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1642
  *     property name:
  *         # not in ElementTree
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -48898,16 +48968,16 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Entity_4name___get__(struct __pyx_obj_4
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1646
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1643
  *         # not in ElementTree
  *         def __get__(self):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             return funicode(self._c_node.name)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1647
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1644
  *         def __get__(self):
  *             _assertValidNode(self)
  *             return funicode(self._c_node.name)             # <<<<<<<<<<<<<<
@@ -48915,7 +48985,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Entity_4name___get__(struct __pyx_obj_4
  *         def __set__(self, value):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -48944,7 +49014,7 @@ static int __pyx_pw_4lxml_5etree_7_Entity_4name_3__set__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1649
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1646
  *             return funicode(self._c_node.name)
  * 
  *         def __set__(self, value):             # <<<<<<<<<<<<<<
@@ -48967,68 +49037,68 @@ static int __pyx_pf_4lxml_5etree_7_Entity_4name_2__set__(struct __pyx_obj_4lxml_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__set__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1650
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1647
  * 
  *         def __set__(self, value):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             value_utf = _utf8(value)
  *             if u'&' in value or u';' in value:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1651
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1648
  *         def __set__(self, value):
  *             _assertValidNode(self)
  *             value_utf = _utf8(value)             # <<<<<<<<<<<<<<
  *             if u'&' in value or u';' in value:
  *                 raise ValueError(u"Invalid entity name '%s'" % value)
  */
-  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_v_value_utf = ((PyObject*)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1652
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1649
  *             _assertValidNode(self)
  *             value_utf = _utf8(value)
  *             if u'&' in value or u';' in value:             # <<<<<<<<<<<<<<
  *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  */
-  __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_84), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_87), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!(__pyx_t_3 != 0)) {
-    __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_85), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_88), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = (__pyx_t_4 != 0);
   } else {
     __pyx_t_5 = (__pyx_t_3 != 0);
   }
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1653
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1650
  *             value_utf = _utf8(value)
  *             if u'&' in value or u';' in value:
  *                 raise ValueError(u"Invalid entity name '%s'" % value)             # <<<<<<<<<<<<<<
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  * 
  */
-    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_86), __pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_89), __pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_t_2));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
     __pyx_t_2 = 0;
-    __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1654
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1651
  *             if u'&' in value or u';' in value:
  *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))             # <<<<<<<<<<<<<<
@@ -49061,7 +49131,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Entity_4text_1__get__(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1659
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1656
  *         # FIXME: should this be None or '&[VALUE];' or the resolved
  *         # entity value ?
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -49080,16 +49150,16 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Entity_4text___get__(struct __pyx_obj_4
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1660
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1657
  *         # entity value ?
  *         def __get__(self):
  *             _assertValidNode(self)             # <<<<<<<<<<<<<<
  *             return u'&%s;' % funicode(self._c_node.name)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1661
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1658
  *         def __get__(self):
  *             _assertValidNode(self)
  *             return u'&%s;' % funicode(self._c_node.name)             # <<<<<<<<<<<<<<
@@ -49097,9 +49167,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Entity_4text___get__(struct __pyx_obj_4
  *     def __repr__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base.__pyx_base._c_node->name); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_87), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_90), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_r = ((PyObject *)__pyx_t_3);
@@ -49130,7 +49200,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Entity_1__repr__(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1663
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1660
  *             return u'&%s;' % funicode(self._c_node.name)
  * 
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -49148,7 +49218,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Entity___repr__(struct __pyx_obj_4lxml_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1664
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1661
  * 
  *     def __repr__(self):
  *         return u"&%s;" % self.name             # <<<<<<<<<<<<<<
@@ -49156,9 +49226,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Entity___repr__(struct __pyx_obj_4lxml_
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_87), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_90), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = ((PyObject *)__pyx_t_2);
@@ -49190,10 +49260,10 @@ static int __pyx_pw_4lxml_5etree_5QName_1__init__(PyObject *__pyx_v_self, PyObje
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
   {
-    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_88,&__pyx_n_s__tag,0};
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_91,&__pyx_n_s__tag,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1690
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1687
  *     cdef readonly unicode localname
  *     cdef readonly unicode namespace
  *     def __init__(self, text_or_uri_or_element, tag=None):             # <<<<<<<<<<<<<<
@@ -49213,7 +49283,7 @@ static int __pyx_pw_4lxml_5etree_5QName_1__init__(PyObject *__pyx_v_self, PyObje
       kw_args = PyDict_Size(__pyx_kwds);
       switch (pos_args) {
         case  0:
-        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_88)) != 0)) kw_args--;
+        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_91)) != 0)) kw_args--;
         else goto __pyx_L5_argtuple_error;
         case  1:
         if (kw_args > 0) {
@@ -49222,7 +49292,7 @@ static int __pyx_pw_4lxml_5etree_5QName_1__init__(PyObject *__pyx_v_self, PyObje
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -49237,7 +49307,7 @@ static int __pyx_pw_4lxml_5etree_5QName_1__init__(PyObject *__pyx_v_self, PyObje
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1687; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.QName.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -49267,7 +49337,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
   __Pyx_RefNannySetupContext("__init__", 0);
   __Pyx_INCREF(__pyx_v_text_or_uri_or_element);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1691
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1688
  *     cdef readonly unicode namespace
  *     def __init__(self, text_or_uri_or_element, tag=None):
  *         if not _isString(text_or_uri_or_element):             # <<<<<<<<<<<<<<
@@ -49277,7 +49347,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
   __pyx_t_1 = ((!(_isString(__pyx_v_text_or_uri_or_element) != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1692
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1689
  *     def __init__(self, text_or_uri_or_element, tag=None):
  *         if not _isString(text_or_uri_or_element):
  *             if isinstance(text_or_uri_or_element, _Element):             # <<<<<<<<<<<<<<
@@ -49288,20 +49358,19 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1693
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1690
  *         if not _isString(text_or_uri_or_element):
  *             if isinstance(text_or_uri_or_element, _Element):
  *                 text_or_uri_or_element = (<_Element>text_or_uri_or_element).tag             # <<<<<<<<<<<<<<
  *                 if not _isString(text_or_uri_or_element):
  *                     raise ValueError, (u"Invalid input tag of type %r" %
  */
-      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_text_or_uri_or_element, __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_text_or_uri_or_element, __pyx_n_s__tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_text_or_uri_or_element);
-      __pyx_v_text_or_uri_or_element = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_text_or_uri_or_element, __pyx_t_3);
       __pyx_t_3 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1694
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1691
  *             if isinstance(text_or_uri_or_element, _Element):
  *                 text_or_uri_or_element = (<_Element>text_or_uri_or_element).tag
  *                 if not _isString(text_or_uri_or_element):             # <<<<<<<<<<<<<<
@@ -49311,25 +49380,25 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
       __pyx_t_2 = ((!(_isString(__pyx_v_text_or_uri_or_element) != 0)) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1696
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1693
  *                 if not _isString(text_or_uri_or_element):
  *                     raise ValueError, (u"Invalid input tag of type %r" %
  *                                        type(text_or_uri_or_element))             # <<<<<<<<<<<<<<
  *             elif isinstance(text_or_uri_or_element, QName):
  *                 text_or_uri_or_element = (<QName>text_or_uri_or_element).text
  */
-        __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_89), ((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_92), ((PyObject *)Py_TYPE(__pyx_v_text_or_uri_or_element))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_3));
         __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), 0, 0);
         __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L5;
       }
       __pyx_L5:;
       goto __pyx_L4;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1697
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1694
  *                     raise ValueError, (u"Invalid input tag of type %r" %
  *                                        type(text_or_uri_or_element))
  *             elif isinstance(text_or_uri_or_element, QName):             # <<<<<<<<<<<<<<
@@ -49340,7 +49409,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1698
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1695
  *                                        type(text_or_uri_or_element))
  *             elif isinstance(text_or_uri_or_element, QName):
  *                 text_or_uri_or_element = (<QName>text_or_uri_or_element).text             # <<<<<<<<<<<<<<
@@ -49349,30 +49418,28 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  */
       __pyx_t_3 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_text_or_uri_or_element)->text);
       __Pyx_INCREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_text_or_uri_or_element);
-      __pyx_v_text_or_uri_or_element = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_text_or_uri_or_element, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L4;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1700
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1697
  *                 text_or_uri_or_element = (<QName>text_or_uri_or_element).text
  *             else:
  *                 text_or_uri_or_element = unicode(text_or_uri_or_element)             # <<<<<<<<<<<<<<
  * 
  *         ns_utf, tag_utf = _getNsTag(text_or_uri_or_element)
  */
-      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_v_text_or_uri_or_element);
       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_text_or_uri_or_element);
       __Pyx_GIVEREF(__pyx_v_text_or_uri_or_element);
-      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-      __Pyx_DECREF(__pyx_v_text_or_uri_or_element);
-      __pyx_v_text_or_uri_or_element = __pyx_t_4;
+      __Pyx_DECREF_SET(__pyx_v_text_or_uri_or_element, __pyx_t_4);
       __pyx_t_4 = 0;
     }
     __pyx_L4:;
@@ -49380,14 +49447,14 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1702
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1699
  *                 text_or_uri_or_element = unicode(text_or_uri_or_element)
  * 
  *         ns_utf, tag_utf = _getNsTag(text_or_uri_or_element)             # <<<<<<<<<<<<<<
  *         if tag is not None:
  *             # either ('ns', 'tag') or ('{ns}oldtag', 'newtag')
  */
-  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_text_or_uri_or_element)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_text_or_uri_or_element)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   if (likely(PyTuple_CheckExact(__pyx_t_4))) {
     PyObject* sequence = __pyx_t_4;
@@ -49399,7 +49466,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
@@ -49407,18 +49474,18 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_5);
     #else
-    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     #endif
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   } else if (1) {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
@@ -49426,7 +49493,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     __Pyx_GOTREF(__pyx_t_3);
     index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L6_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_5);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_7 = NULL;
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     goto __pyx_L7_unpacking_done;
@@ -49434,7 +49501,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_t_7 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L7_unpacking_done:;
   }
   __pyx_v_ns_utf = __pyx_t_3;
@@ -49442,7 +49509,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
   __pyx_v_tag_utf = __pyx_t_5;
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1703
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1700
  * 
  *         ns_utf, tag_utf = _getNsTag(text_or_uri_or_element)
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -49453,7 +49520,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1705
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1702
  *         if tag is not None:
  *             # either ('ns', 'tag') or ('{ns}oldtag', 'newtag')
  *             if ns_utf is None:             # <<<<<<<<<<<<<<
@@ -49464,7 +49531,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1706
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1703
  *             # either ('ns', 'tag') or ('{ns}oldtag', 'newtag')
  *             if ns_utf is None:
  *                 ns_utf = tag_utf # case 1: namespace ended up as tag name             # <<<<<<<<<<<<<<
@@ -49472,38 +49539,36 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  *         _tagValidOrRaise(tag_utf)
  */
       __Pyx_INCREF(__pyx_v_tag_utf);
-      __Pyx_DECREF(__pyx_v_ns_utf);
-      __pyx_v_ns_utf = __pyx_v_tag_utf;
+      __Pyx_DECREF_SET(__pyx_v_ns_utf, __pyx_v_tag_utf);
       goto __pyx_L9;
     }
     __pyx_L9:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1707
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1704
  *             if ns_utf is None:
  *                 ns_utf = tag_utf # case 1: namespace ended up as tag name
  *             tag_utf = _utf8(tag)             # <<<<<<<<<<<<<<
  *         _tagValidOrRaise(tag_utf)
  *         self.localname = (<bytes>tag_utf).decode('utf8')
  */
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_tag)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_tag)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_tag_utf);
-    __pyx_v_tag_utf = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_tag_utf, __pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L8;
   }
   __pyx_L8:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1708
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1705
  *                 ns_utf = tag_utf # case 1: namespace ended up as tag name
  *             tag_utf = _utf8(tag)
  *         _tagValidOrRaise(tag_utf)             # <<<<<<<<<<<<<<
  *         self.localname = (<bytes>tag_utf).decode('utf8')
  *         if ns_utf is None:
  */
-  __pyx_t_8 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_tag_utf); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __pyx_f_4lxml_5etree__tagValidOrRaise(__pyx_v_tag_utf); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1705; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1709
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1706
  *             tag_utf = _utf8(tag)
  *         _tagValidOrRaise(tag_utf)
  *         self.localname = (<bytes>tag_utf).decode('utf8')             # <<<<<<<<<<<<<<
@@ -49512,18 +49577,18 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  */
   if (unlikely(__pyx_v_tag_utf == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_tag_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  if (!(likely(PyUnicode_CheckExact(((PyObject *)__pyx_t_4)))||(PyErr_Format(PyExc_TypeError, "Expected unicode, got %.200s", Py_TYPE(((PyObject *)__pyx_t_4))->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyUnicode_CheckExact(((PyObject *)__pyx_t_4)))||(PyErr_Format(PyExc_TypeError, "Expected unicode, got %.200s", Py_TYPE(((PyObject *)__pyx_t_4))->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1706; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GIVEREF(__pyx_t_4);
   __Pyx_GOTREF(__pyx_v_self->localname);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->localname));
   __pyx_v_self->localname = ((PyObject*)__pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1710
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1707
  *         _tagValidOrRaise(tag_utf)
  *         self.localname = (<bytes>tag_utf).decode('utf8')
  *         if ns_utf is None:             # <<<<<<<<<<<<<<
@@ -49534,7 +49599,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1711
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1708
  *         self.localname = (<bytes>tag_utf).decode('utf8')
  *         if ns_utf is None:
  *             self.namespace = None             # <<<<<<<<<<<<<<
@@ -49547,7 +49612,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     __Pyx_DECREF(((PyObject *)__pyx_v_self->namespace));
     __pyx_v_self->namespace = ((PyObject*)Py_None);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1712
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1709
  *         if ns_utf is None:
  *             self.namespace = None
  *             self.text = self.localname             # <<<<<<<<<<<<<<
@@ -49565,7 +49630,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1714
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1711
  *             self.text = self.localname
  *         else:
  *             self.namespace = (<bytes>ns_utf).decode('utf8')             # <<<<<<<<<<<<<<
@@ -49574,25 +49639,25 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
  */
     if (unlikely(__pyx_v_ns_utf == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_ns_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_ns_utf)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-    if (!(likely(PyUnicode_CheckExact(((PyObject *)__pyx_t_4)))||(PyErr_Format(PyExc_TypeError, "Expected unicode, got %.200s", Py_TYPE(((PyObject *)__pyx_t_4))->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyUnicode_CheckExact(((PyObject *)__pyx_t_4)))||(PyErr_Format(PyExc_TypeError, "Expected unicode, got %.200s", Py_TYPE(((PyObject *)__pyx_t_4))->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GIVEREF(__pyx_t_4);
     __Pyx_GOTREF(__pyx_v_self->namespace);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->namespace));
     __pyx_v_self->namespace = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1715
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1712
  *         else:
  *             self.namespace = (<bytes>ns_utf).decode('utf8')
  *             self.text = u"{%s}%s" % (self.namespace, self.localname)             # <<<<<<<<<<<<<<
  *     def __str__(self):
  *         return self.text
  */
-    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(((PyObject *)__pyx_v_self->namespace));
     PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_self->namespace));
@@ -49600,7 +49665,7 @@ static int __pyx_pf_4lxml_5etree_5QName___init__(struct __pyx_obj_4lxml_5etree_Q
     __Pyx_INCREF(((PyObject *)__pyx_v_self->localname));
     PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self->localname));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self->localname));
-    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_42), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_45), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
@@ -49639,7 +49704,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5QName_3__str__(PyObject *__pyx_v_self) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1716
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1713
  *             self.namespace = (<bytes>ns_utf).decode('utf8')
  *             self.text = u"{%s}%s" % (self.namespace, self.localname)
  *     def __str__(self):             # <<<<<<<<<<<<<<
@@ -49652,7 +49717,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_2__str__(struct __pyx_obj_4lxml_5e
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__str__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1717
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1714
  *             self.text = u"{%s}%s" % (self.namespace, self.localname)
  *     def __str__(self):
  *         return self.text             # <<<<<<<<<<<<<<
@@ -49682,7 +49747,7 @@ static Py_hash_t __pyx_pw_4lxml_5etree_5QName_5__hash__(PyObject *__pyx_v_self)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1718
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1715
  *     def __str__(self):
  *         return self.text
  *     def __hash__(self):             # <<<<<<<<<<<<<<
@@ -49701,19 +49766,19 @@ static Py_hash_t __pyx_pf_4lxml_5etree_5QName_4__hash__(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__hash__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1719
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1716
  *         return self.text
  *     def __hash__(self):
  *         return self.text.__hash__()             # <<<<<<<<<<<<<<
  *     def __richcmp__(one, other, int op):
  *         try:
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->text), __pyx_n_s____hash__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->text), __pyx_n_s____hash__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_3 = __Pyx_PyInt_AsHash_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (Py_hash_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyInt_AsHash_t(__pyx_t_2); if (unlikely((__pyx_t_3 == (Py_hash_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_3;
   goto __pyx_L0;
@@ -49742,7 +49807,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5QName_7__richcmp__(PyObject *__pyx_v_one
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1720
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1717
  *     def __hash__(self):
  *         return self.text.__hash__()
  *     def __richcmp__(one, other, int op):             # <<<<<<<<<<<<<<
@@ -49769,7 +49834,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
   __Pyx_INCREF(__pyx_v_one);
   __Pyx_INCREF(__pyx_v_other);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1721
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1718
  *         return self.text.__hash__()
  *     def __richcmp__(one, other, int op):
  *         try:             # <<<<<<<<<<<<<<
@@ -49783,7 +49848,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1722
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1719
  *     def __richcmp__(one, other, int op):
  *         try:
  *             if type(one) is QName:             # <<<<<<<<<<<<<<
@@ -49794,7 +49859,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
       __pyx_t_5 = (__pyx_t_4 != 0);
       if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1723
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1720
  *         try:
  *             if type(one) is QName:
  *                 one = (<QName>one).text             # <<<<<<<<<<<<<<
@@ -49803,13 +49868,12 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
  */
         __pyx_t_6 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_one)->text);
         __Pyx_INCREF(__pyx_t_6);
-        __Pyx_DECREF(__pyx_v_one);
-        __pyx_v_one = __pyx_t_6;
+        __Pyx_DECREF_SET(__pyx_v_one, __pyx_t_6);
         __pyx_t_6 = 0;
         goto __pyx_L11;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1724
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1721
  *             if type(one) is QName:
  *                 one = (<QName>one).text
  *             elif not isinstance(one, unicode):             # <<<<<<<<<<<<<<
@@ -49820,29 +49884,28 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
       __pyx_t_4 = ((!(__pyx_t_5 != 0)) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1725
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1722
  *                 one = (<QName>one).text
  *             elif not isinstance(one, unicode):
  *                 one = unicode(one)             # <<<<<<<<<<<<<<
  *             if type(other) is QName:
  *                 other = (<QName>other).text
  */
-        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1725; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __Pyx_INCREF(__pyx_v_one);
         PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_one);
         __Pyx_GIVEREF(__pyx_v_one);
-        __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1725; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1722; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-        __Pyx_DECREF(__pyx_v_one);
-        __pyx_v_one = __pyx_t_7;
+        __Pyx_DECREF_SET(__pyx_v_one, __pyx_t_7);
         __pyx_t_7 = 0;
         goto __pyx_L11;
       }
       __pyx_L11:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1726
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1723
  *             elif not isinstance(one, unicode):
  *                 one = unicode(one)
  *             if type(other) is QName:             # <<<<<<<<<<<<<<
@@ -49853,7 +49916,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
       __pyx_t_5 = (__pyx_t_4 != 0);
       if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1727
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1724
  *                 one = unicode(one)
  *             if type(other) is QName:
  *                 other = (<QName>other).text             # <<<<<<<<<<<<<<
@@ -49862,13 +49925,12 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
  */
         __pyx_t_7 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_QName *)__pyx_v_other)->text);
         __Pyx_INCREF(__pyx_t_7);
-        __Pyx_DECREF(__pyx_v_other);
-        __pyx_v_other = __pyx_t_7;
+        __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_7);
         __pyx_t_7 = 0;
         goto __pyx_L12;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1728
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1725
  *             if type(other) is QName:
  *                 other = (<QName>other).text
  *             elif not isinstance(other, unicode):             # <<<<<<<<<<<<<<
@@ -49879,23 +49941,22 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
       __pyx_t_4 = ((!(__pyx_t_5 != 0)) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1729
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1726
  *                 other = (<QName>other).text
  *             elif not isinstance(other, unicode):
  *                 other = unicode(other)             # <<<<<<<<<<<<<<
  *         except (ValueError, UnicodeDecodeError):
  *             return NotImplemented
  */
-        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_INCREF(__pyx_v_other);
         PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_other);
         __Pyx_GIVEREF(__pyx_v_other);
-        __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-        __Pyx_DECREF(__pyx_v_other);
-        __pyx_v_other = __pyx_t_6;
+        __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_6);
         __pyx_t_6 = 0;
         goto __pyx_L12;
       }
@@ -49909,7 +49970,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1730
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1727
  *             elif not isinstance(other, unicode):
  *                 other = unicode(other)
  *         except (ValueError, UnicodeDecodeError):             # <<<<<<<<<<<<<<
@@ -49919,12 +49980,12 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
     __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_ValueError) || PyErr_ExceptionMatches(__pyx_builtin_UnicodeDecodeError);
     if (__pyx_t_8) {
       __Pyx_AddTraceback("lxml.etree.QName.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_9);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1731
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1728
  *                 other = unicode(other)
  *         except (ValueError, UnicodeDecodeError):
  *             return NotImplemented             # <<<<<<<<<<<<<<
@@ -49963,7 +50024,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
     __pyx_L10_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1732
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1729
  *         except (ValueError, UnicodeDecodeError):
  *             return NotImplemented
  *         return python.PyObject_RichCompare(one, other, op)             # <<<<<<<<<<<<<<
@@ -49971,7 +50032,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_6__richcmp__(PyObject *__pyx_v_one
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_9 = PyObject_RichCompare(__pyx_v_one, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyObject_RichCompare(__pyx_v_one, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __pyx_r = __pyx_t_9;
   __pyx_t_9 = 0;
@@ -50004,7 +50065,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5QName_4text_1__get__(PyObject *__pyx_v_s
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1687
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1684
  *     their text content.
  *     """
  *     cdef readonly unicode text             # <<<<<<<<<<<<<<
@@ -50039,7 +50100,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5QName_9localname_1__get__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1688
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1685
  *     """
  *     cdef readonly unicode text
  *     cdef readonly unicode localname             # <<<<<<<<<<<<<<
@@ -50074,7 +50135,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5QName_9namespace_1__get__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1689
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1686
  *     cdef readonly unicode text
  *     cdef readonly unicode localname
  *     cdef readonly unicode namespace             # <<<<<<<<<<<<<<
@@ -50098,7 +50159,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5QName_9namespace___get__(struct __pyx_ob
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1744
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1741
  *     # to honour tree restructuring.  _doc can happily be None!
  * 
  *     cdef _assertHasRoot(self):             # <<<<<<<<<<<<<<
@@ -50115,7 +50176,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(struct LxmlE
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_assertHasRoot", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1750
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1747
  *         the caller program.
  *         """
  *         assert self._context_node is not None, \             # <<<<<<<<<<<<<<
@@ -50125,8 +50186,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot(struct LxmlE
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
   if (unlikely(!(__pyx_t_1 != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_90));
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_93));
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
@@ -50158,7 +50219,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_1parse(PyObject *__pyx_v_s
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__source,&__pyx_n_s__parser,&__pyx_n_s__base_url,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1753
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1750
  *                u"ElementTree not initialized, missing root"
  * 
  *     def parse(self, source, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
@@ -50193,7 +50254,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_1parse(PyObject *__pyx_v_s
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1750; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -50209,13 +50270,13 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_1parse(PyObject *__pyx_v_s
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1750; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._ElementTree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_parse(((struct LxmlElementTree *)__pyx_v_self), __pyx_v_source, __pyx_v_parser, __pyx_v_base_url);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -50245,7 +50306,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("parse", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1758
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1755
  *         Updates self with the content of source and returns its root
  *         """
  *         cdef _Document doc = None             # <<<<<<<<<<<<<<
@@ -50255,7 +50316,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
   __Pyx_INCREF(Py_None);
   __pyx_v_doc = ((struct LxmlDocument *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1759
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1756
  *         """
  *         cdef _Document doc = None
  *         try:             # <<<<<<<<<<<<<<
@@ -50269,36 +50330,35 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1760
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1757
  *         cdef _Document doc = None
  *         try:
  *             doc = _parseDocument(source, parser, base_url)             # <<<<<<<<<<<<<<
  *             self._context_node = doc.getroot()
  *             if self._context_node is None:
  */
-      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_source, __pyx_v_parser, __pyx_v_base_url)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_source, __pyx_v_parser, __pyx_v_base_url)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1757; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_DECREF(((PyObject *)__pyx_v_doc));
-      __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+      __Pyx_DECREF_SET(__pyx_v_doc, ((struct LxmlDocument *)__pyx_t_4));
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1761
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1758
  *         try:
  *             doc = _parseDocument(source, parser, base_url)
  *             self._context_node = doc.getroot()             # <<<<<<<<<<<<<<
  *             if self._context_node is None:
  *                 self._doc = doc
  */
-      __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1761; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1758; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1761; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1758; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GIVEREF(__pyx_t_4);
       __Pyx_GOTREF(__pyx_v_self->_context_node);
       __Pyx_DECREF(((PyObject *)__pyx_v_self->_context_node));
       __pyx_v_self->_context_node = ((struct LxmlElement *)__pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1762
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1759
  *             doc = _parseDocument(source, parser, base_url)
  *             self._context_node = doc.getroot()
  *             if self._context_node is None:             # <<<<<<<<<<<<<<
@@ -50309,7 +50369,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
       __pyx_t_6 = (__pyx_t_5 != 0);
       if (__pyx_t_6) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1763
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1760
  *             self._context_node = doc.getroot()
  *             if self._context_node is None:
  *                 self._doc = doc             # <<<<<<<<<<<<<<
@@ -50332,36 +50392,36 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
     __pyx_L3_error:;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1764
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1761
  *             if self._context_node is None:
  *                 self._doc = doc
  *         except _TargetParserResult, result_container:             # <<<<<<<<<<<<<<
  *             # raises a TypeError if we don't get an _Element
  *             self._context_node = result_container.result
  */
-    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1764; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1761; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     if (__pyx_t_7) {
       __Pyx_AddTraceback("lxml.etree._ElementTree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1764; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1761; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_8);
       __pyx_v_result_container = __pyx_t_8;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1766
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1763
  *         except _TargetParserResult, result_container:
  *             # raises a TypeError if we don't get an _Element
  *             self._context_node = result_container.result             # <<<<<<<<<<<<<<
  *         return self._context_node
  * 
  */
-      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_10);
-      if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (!(likely(((__pyx_t_10) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_10, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GIVEREF(__pyx_t_10);
       __Pyx_GOTREF(__pyx_v_self->_context_node);
       __Pyx_DECREF(((PyObject *)__pyx_v_self->_context_node));
@@ -50386,7 +50446,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_parse(struct LxmlElementTr
     __pyx_L10_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1767
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1764
  *             # raises a TypeError if we don't get an _Element
  *             self._context_node = result_container.result
  *         return self._context_node             # <<<<<<<<<<<<<<
@@ -50425,7 +50485,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_3_setroot(PyObject *__pyx_
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_setroot (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_root), __pyx_ptype_4lxml_5etree__Element, 0, "root", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_root), __pyx_ptype_4lxml_5etree__Element, 0, "root", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_2_setroot(((struct LxmlElementTree *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_root));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -50435,7 +50495,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_3_setroot(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1769
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1766
  *         return self._context_node
  * 
  *     def _setroot(self, _Element root not None):             # <<<<<<<<<<<<<<
@@ -50453,16 +50513,16 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_2_setroot(struct LxmlEleme
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_setroot", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1774
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1771
  *         Relocate the ElementTree to a new root node.
  *         """
  *         _assertValidNode(root)             # <<<<<<<<<<<<<<
  *         if root._c_node.type != tree.XML_ELEMENT_NODE:
  *             raise TypeError, u"Only elements can be the root of an ElementTree"
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1775
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1772
  *         """
  *         _assertValidNode(root)
  *         if root._c_node.type != tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -50472,20 +50532,20 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_2_setroot(struct LxmlEleme
   __pyx_t_2 = ((__pyx_v_root->_c_node->type != XML_ELEMENT_NODE) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1776
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1773
  *         _assertValidNode(root)
  *         if root._c_node.type != tree.XML_ELEMENT_NODE:
  *             raise TypeError, u"Only elements can be the root of an ElementTree"             # <<<<<<<<<<<<<<
  *         self._context_node = root
  *         self._doc = None
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_91), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_94), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1777
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1774
  *         if root._c_node.type != tree.XML_ELEMENT_NODE:
  *             raise TypeError, u"Only elements can be the root of an ElementTree"
  *         self._context_node = root             # <<<<<<<<<<<<<<
@@ -50498,7 +50558,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_2_setroot(struct LxmlEleme
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_context_node));
   __pyx_v_self->_context_node = __pyx_v_root;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1778
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1775
  *             raise TypeError, u"Only elements can be the root of an ElementTree"
  *         self._context_node = root
  *         self._doc = None             # <<<<<<<<<<<<<<
@@ -50534,7 +50594,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_5getroot(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1780
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1777
  *         self._doc = None
  * 
  *     def getroot(self):             # <<<<<<<<<<<<<<
@@ -50547,7 +50607,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_4getroot(struct LxmlElemen
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("getroot", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1785
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1782
  *         Gets the root element for this tree.
  *         """
  *         return self._context_node             # <<<<<<<<<<<<<<
@@ -50577,7 +50637,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_7__copy__(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1787
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1784
  *         return self._context_node
  * 
  *     def __copy__(self):             # <<<<<<<<<<<<<<
@@ -50596,7 +50656,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6__copy__(struct LxmlEleme
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__copy__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1788
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1785
  * 
  *     def __copy__(self):
  *         return _elementTreeFactory(self._doc, self._context_node)             # <<<<<<<<<<<<<<
@@ -50608,7 +50668,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6__copy__(struct LxmlEleme
   __Pyx_INCREF(__pyx_t_1);
   __pyx_t_2 = ((PyObject *)__pyx_v_self->_context_node);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_1), ((struct LxmlElement *)__pyx_t_2))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1788; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_1), ((struct LxmlElement *)__pyx_t_2))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -50641,7 +50701,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_9__deepcopy__(PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1790
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1787
  *         return _elementTreeFactory(self._doc, self._context_node)
  * 
  *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
@@ -50667,7 +50727,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__deepcopy__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1794
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1791
  *         cdef _Document doc
  *         cdef xmlDoc* c_doc
  *         if self._context_node is not None:             # <<<<<<<<<<<<<<
@@ -50678,32 +50738,32 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1795
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1792
  *         cdef xmlDoc* c_doc
  *         if self._context_node is not None:
  *             root = self._context_node.__copy__()             # <<<<<<<<<<<<<<
  *             _copyNonElementSiblings(self._context_node._c_node, root._c_node)
  *             doc = root._doc
  */
-    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context_node), __pyx_n_s____copy__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_context_node), __pyx_n_s____copy__); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1796
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1793
  *         if self._context_node is not None:
  *             root = self._context_node.__copy__()
  *             _copyNonElementSiblings(self._context_node._c_node, root._c_node)             # <<<<<<<<<<<<<<
  *             doc = root._doc
  *             c_doc = self._context_node._doc._c_doc
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__copyNonElementSiblings(__pyx_v_self->_context_node->_c_node, __pyx_v_root->_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__copyNonElementSiblings(__pyx_v_self->_context_node->_c_node, __pyx_v_root->_c_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1797
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1794
  *             root = self._context_node.__copy__()
  *             _copyNonElementSiblings(self._context_node._c_node, root._c_node)
  *             doc = root._doc             # <<<<<<<<<<<<<<
@@ -50715,7 +50775,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
     __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1798
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1795
  *             _copyNonElementSiblings(self._context_node._c_node, root._c_node)
  *             doc = root._doc
  *             c_doc = self._context_node._doc._c_doc             # <<<<<<<<<<<<<<
@@ -50725,7 +50785,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
     __pyx_t_6 = __pyx_v_self->_context_node->_doc->_c_doc;
     __pyx_v_c_doc = __pyx_t_6;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1799
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1796
  *             doc = root._doc
  *             c_doc = self._context_node._doc._c_doc
  *             if c_doc.intSubset is not NULL and doc._c_doc.intSubset is NULL:             # <<<<<<<<<<<<<<
@@ -50741,7 +50801,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
     }
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1800
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1797
  *             c_doc = self._context_node._doc._c_doc
  *             if c_doc.intSubset is not NULL and doc._c_doc.intSubset is NULL:
  *                 doc._c_doc.intSubset = tree.xmlCopyDtd(c_doc.intSubset)             # <<<<<<<<<<<<<<
@@ -50750,7 +50810,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  */
       __pyx_v_doc->_c_doc->intSubset = xmlCopyDtd(__pyx_v_c_doc->intSubset);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1801
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1798
  *             if c_doc.intSubset is not NULL and doc._c_doc.intSubset is NULL:
  *                 doc._c_doc.intSubset = tree.xmlCopyDtd(c_doc.intSubset)
  *                 if doc._c_doc.intSubset is NULL:             # <<<<<<<<<<<<<<
@@ -50760,14 +50820,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
       __pyx_t_7 = ((__pyx_v_doc->_c_doc->intSubset == NULL) != 0);
       if (__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1802
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1799
  *                 doc._c_doc.intSubset = tree.xmlCopyDtd(c_doc.intSubset)
  *                 if doc._c_doc.intSubset is NULL:
  *                     raise MemoryError()             # <<<<<<<<<<<<<<
  *             if c_doc.extSubset is not NULL and not doc._c_doc.extSubset is NULL:
  *                 doc._c_doc.extSubset = tree.xmlCopyDtd(c_doc.extSubset)
  */
-        PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L5;
       }
       __pyx_L5:;
@@ -50775,7 +50835,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1803
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1800
  *                 if doc._c_doc.intSubset is NULL:
  *                     raise MemoryError()
  *             if c_doc.extSubset is not NULL and not doc._c_doc.extSubset is NULL:             # <<<<<<<<<<<<<<
@@ -50791,7 +50851,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
     }
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1804
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1801
  *                     raise MemoryError()
  *             if c_doc.extSubset is not NULL and not doc._c_doc.extSubset is NULL:
  *                 doc._c_doc.extSubset = tree.xmlCopyDtd(c_doc.extSubset)             # <<<<<<<<<<<<<<
@@ -50800,7 +50860,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  */
       __pyx_v_doc->_c_doc->extSubset = xmlCopyDtd(__pyx_v_c_doc->extSubset);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1805
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1802
  *             if c_doc.extSubset is not NULL and not doc._c_doc.extSubset is NULL:
  *                 doc._c_doc.extSubset = tree.xmlCopyDtd(c_doc.extSubset)
  *                 if doc._c_doc.extSubset is NULL:             # <<<<<<<<<<<<<<
@@ -50810,14 +50870,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
       __pyx_t_1 = ((__pyx_v_doc->_c_doc->extSubset == NULL) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1806
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1803
  *                 doc._c_doc.extSubset = tree.xmlCopyDtd(c_doc.extSubset)
  *                 if doc._c_doc.extSubset is NULL:
  *                     raise MemoryError()             # <<<<<<<<<<<<<<
  *             return _elementTreeFactory(None, root)
  *         elif self._doc is not None:
  */
-        PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L7;
       }
       __pyx_L7:;
@@ -50825,7 +50885,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1807
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1804
  *                 if doc._c_doc.extSubset is NULL:
  *                     raise MemoryError()
  *             return _elementTreeFactory(None, root)             # <<<<<<<<<<<<<<
@@ -50833,7 +50893,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             _assertValidDoc(self._doc)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)Py_None), __pyx_v_root)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)Py_None), __pyx_v_root)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1804; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
@@ -50841,7 +50901,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1808
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1805
  *                     raise MemoryError()
  *             return _elementTreeFactory(None, root)
  *         elif self._doc is not None:             # <<<<<<<<<<<<<<
@@ -50852,7 +50912,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
   __pyx_t_7 = (__pyx_t_1 != 0);
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1809
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1806
  *             return _elementTreeFactory(None, root)
  *         elif self._doc is not None:
  *             _assertValidDoc(self._doc)             # <<<<<<<<<<<<<<
@@ -50861,10 +50921,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  */
     __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc);
     __Pyx_INCREF(__pyx_t_4);
-    __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1810
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1807
  *         elif self._doc is not None:
  *             _assertValidDoc(self._doc)
  *             c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)             # <<<<<<<<<<<<<<
@@ -50873,7 +50933,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  */
     __pyx_v_c_doc = xmlCopyDoc(__pyx_v_self->_doc->_c_doc, 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1811
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1808
  *             _assertValidDoc(self._doc)
  *             c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)
  *             if c_doc is NULL:             # <<<<<<<<<<<<<<
@@ -50883,19 +50943,19 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
     __pyx_t_7 = ((__pyx_v_c_doc == NULL) != 0);
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1812
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1809
  *             c_doc = tree.xmlCopyDoc(self._doc._c_doc, 1)
  *             if c_doc is NULL:
  *                 raise MemoryError()             # <<<<<<<<<<<<<<
  *             doc = _documentFactory(c_doc, self._doc._parser)
  *             return _elementTreeFactory(doc, None)
  */
-      PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L8;
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1813
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1810
  *             if c_doc is NULL:
  *                 raise MemoryError()
  *             doc = _documentFactory(c_doc, self._doc._parser)             # <<<<<<<<<<<<<<
@@ -50904,13 +50964,13 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  */
     __pyx_t_4 = ((PyObject *)__pyx_v_self->_doc->_parser);
     __Pyx_INCREF(__pyx_t_4);
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_4))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_4))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1814
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1811
  *                 raise MemoryError()
  *             doc = _documentFactory(c_doc, self._doc._parser)
  *             return _elementTreeFactory(doc, None)             # <<<<<<<<<<<<<<
@@ -50918,7 +50978,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
  *             # so what ...
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -50927,7 +50987,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_8__deepcopy__(struct LxmlE
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1817
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1814
  *         else:
  *             # so what ...
  *             return self             # <<<<<<<<<<<<<<
@@ -50967,7 +51027,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_7docinfo_1__get__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1826
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1823
  *         not for trees that were built manually.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -50985,18 +51045,18 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_7docinfo___get__(struct Lx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1827
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1824
  *         """
  *         def __get__(self):
  *             self._assertHasRoot()             # <<<<<<<<<<<<<<
  *             return DocInfo(self._context_node._doc)
  * 
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1828
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1825
  *         def __get__(self):
  *             self._assertHasRoot()
  *             return DocInfo(self._context_node._doc)             # <<<<<<<<<<<<<<
@@ -51004,12 +51064,12 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_7docinfo___get__(struct Lx
  *     # not in ElementTree, read-only
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_self->_context_node->_doc));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self->_context_node->_doc));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_context_node->_doc));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_DocInfo)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_DocInfo)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -51040,7 +51100,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_6parser_1__get__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1834
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1831
  *         u"""The parser that was used to parse the document in this ElementTree.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -51056,7 +51116,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1835
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1832
  *         """
  *         def __get__(self):
  *             if self._context_node is not None and \             # <<<<<<<<<<<<<<
@@ -51066,7 +51126,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_context_node) != Py_None);
   if ((__pyx_t_1 != 0)) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1836
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1833
  *         def __get__(self):
  *             if self._context_node is not None and \
  *                    self._context_node._doc is not None:             # <<<<<<<<<<<<<<
@@ -51080,7 +51140,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1837
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1834
  *             if self._context_node is not None and \
  *                    self._context_node._doc is not None:
  *                 return self._context_node._doc._parser             # <<<<<<<<<<<<<<
@@ -51095,7 +51155,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1838
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1835
  *                    self._context_node._doc is not None:
  *                 return self._context_node._doc._parser
  *             if self._doc is not None:             # <<<<<<<<<<<<<<
@@ -51106,7 +51166,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
   __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1839
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1836
  *                 return self._context_node._doc._parser
  *             if self._doc is not None:
  *                 return self._doc._parser             # <<<<<<<<<<<<<<
@@ -51121,7 +51181,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_6parser___get__(struct Lxm
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1840
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1837
  *             if self._doc is not None:
  *                 return self._doc._parser
  *             return None             # <<<<<<<<<<<<<<
@@ -51163,10 +51223,10 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_11write(PyObject *__pyx_v_
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("write (wrapper)", 0);
   {
-    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file,&__pyx_n_s__encoding,&__pyx_n_s__method,&__pyx_n_s__pretty_print,&__pyx_n_s__xml_declaration,&__pyx_n_s__with_tail,&__pyx_n_s__standalone,&__pyx_n_s__docstring,&__pyx_n_s__compression,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s_92,0};
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file,&__pyx_n_s__encoding,&__pyx_n_s__method,&__pyx_n_s__pretty_print,&__pyx_n_s__xml_declaration,&__pyx_n_s__with_tail,&__pyx_n_s__standalone,&__pyx_n_s__docstring,&__pyx_n_s__compression,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s_95,0};
     PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1842
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1839
  *             return None
  * 
  *     def write(self, file, *, encoding=None, method=u"xml",             # <<<<<<<<<<<<<<
@@ -51175,9 +51235,9 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_11write(PyObject *__pyx_v_
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)__pyx_n_u__xml);
-    values[3] = __pyx_k_93;
+    values[3] = __pyx_k_96;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1843
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1840
  * 
  *     def write(self, file, *, encoding=None, method=u"xml",
  *               pretty_print=False, xml_declaration=None, with_tail=True,             # <<<<<<<<<<<<<<
@@ -51185,9 +51245,9 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_11write(PyObject *__pyx_v_
  *               exclusive=False, with_comments=True, inclusive_ns_prefixes=None):
  */
     values[4] = ((PyObject *)Py_None);
-    values[5] = __pyx_k_94;
+    values[5] = __pyx_k_97;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1844
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1841
  *     def write(self, file, *, encoding=None, method=u"xml",
  *               pretty_print=False, xml_declaration=None, with_tail=True,
  *               standalone=None, docstring=None, compression=0,             # <<<<<<<<<<<<<<
@@ -51197,10 +51257,10 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_11write(PyObject *__pyx_v_
     values[6] = ((PyObject *)Py_None);
     values[7] = ((PyObject *)Py_None);
     values[8] = ((PyObject *)__pyx_int_0);
-    values[9] = __pyx_k_95;
-    values[10] = __pyx_k_96;
+    values[9] = __pyx_k_98;
+    values[10] = __pyx_k_99;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1845
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1842
  *               pretty_print=False, xml_declaration=None, with_tail=True,
  *               standalone=None, docstring=None, compression=0,
  *               exclusive=False, with_comments=True, inclusive_ns_prefixes=None):             # <<<<<<<<<<<<<<
@@ -51230,7 +51290,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_11write(PyObject *__pyx_v_
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -51252,7 +51312,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_11write(PyObject *__pyx_v_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("write", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("write", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1839; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._ElementTree.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -51263,7 +51323,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_11write(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1842
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1839
  *             return None
  * 
  *     def write(self, file, *, encoding=None, method=u"xml",             # <<<<<<<<<<<<<<
@@ -51289,18 +51349,18 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   __Pyx_INCREF(__pyx_v_encoding);
   __Pyx_INCREF(__pyx_v_compression);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1881
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1878
  *         cdef int is_standalone
  * 
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         _assertValidNode(self._context_node)
  *         if compression is None or compression < 0:
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1882
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1879
  * 
  *         self._assertHasRoot()
  *         _assertValidNode(self._context_node)             # <<<<<<<<<<<<<<
@@ -51309,10 +51369,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_context_node);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1883
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1880
  *         self._assertHasRoot()
  *         _assertValidNode(self._context_node)
  *         if compression is None or compression < 0:             # <<<<<<<<<<<<<<
@@ -51321,8 +51381,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  */
   __pyx_t_3 = (__pyx_v_compression == Py_None);
   if (!__pyx_t_3) {
-    __pyx_t_1 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_5 = __pyx_t_4;
   } else {
@@ -51330,7 +51390,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   }
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1884
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1881
  *         _assertValidNode(self._context_node)
  *         if compression is None or compression < 0:
  *             compression = 0             # <<<<<<<<<<<<<<
@@ -51338,25 +51398,24 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *         # C14N serialisation
  */
     __Pyx_INCREF(__pyx_int_0);
-    __Pyx_DECREF(__pyx_v_compression);
-    __pyx_v_compression = __pyx_int_0;
+    __Pyx_DECREF_SET(__pyx_v_compression, __pyx_int_0);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1887
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1884
  * 
  *         # C14N serialisation
  *         if method == 'c14n':             # <<<<<<<<<<<<<<
  *             if encoding is not None:
  *                 raise ValueError("Cannot specify encoding with C14N")
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__c14n), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__c14n), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1888
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1885
  *         # C14N serialisation
  *         if method == 'c14n':
  *             if encoding is not None:             # <<<<<<<<<<<<<<
@@ -51367,49 +51426,49 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
     __pyx_t_3 = (__pyx_t_5 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1889
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1886
  *         if method == 'c14n':
  *             if encoding is not None:
  *                 raise ValueError("Cannot specify encoding with C14N")             # <<<<<<<<<<<<<<
  *             if xml_declaration:
  *                 raise ValueError("Cannot enable XML declaration in C14N")
  */
-      __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_98), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_101), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_Raise(__pyx_t_1, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1890
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1887
  *             if encoding is not None:
  *                 raise ValueError("Cannot specify encoding with C14N")
  *             if xml_declaration:             # <<<<<<<<<<<<<<
  *                 raise ValueError("Cannot enable XML declaration in C14N")
  * 
  */
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1891
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1888
  *                 raise ValueError("Cannot specify encoding with C14N")
  *             if xml_declaration:
  *                 raise ValueError("Cannot enable XML declaration in C14N")             # <<<<<<<<<<<<<<
  * 
  *             _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
  */
-      __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_100), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_103), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_Raise(__pyx_t_1, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1893
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1890
  *                 raise ValueError("Cannot enable XML declaration in C14N")
  * 
  *             _tofilelikeC14N(file, self._context_node, exclusive, with_comments,             # <<<<<<<<<<<<<<
@@ -51418,23 +51477,23 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  */
     __pyx_t_1 = ((PyObject *)__pyx_v_self->_context_node);
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1894
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1891
  * 
  *             _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
  *                             compression, inclusive_ns_prefixes)             # <<<<<<<<<<<<<<
  *             return
  *         if not with_comments:
  */
-    __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_compression); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_1), __pyx_t_3, __pyx_t_5, __pyx_t_2, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_compression); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_1), __pyx_t_3, __pyx_t_5, __pyx_t_2, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1895
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1892
  *             _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
  *                             compression, inclusive_ns_prefixes)
  *             return             # <<<<<<<<<<<<<<
@@ -51448,34 +51507,34 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1896
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1893
  *                             compression, inclusive_ns_prefixes)
  *             return
  *         if not with_comments:             # <<<<<<<<<<<<<<
  *             raise ValueError("Can only discard comments in C14N serialisation")
  *         # suppress decl. in default case (purely for ElementTree compatibility)
  */
-  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_3 = ((!__pyx_t_5) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1897
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1894
  *             return
  *         if not with_comments:
  *             raise ValueError("Can only discard comments in C14N serialisation")             # <<<<<<<<<<<<<<
  *         # suppress decl. in default case (purely for ElementTree compatibility)
  *         if xml_declaration is not None:
  */
-    __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_102), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_105), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_Raise(__pyx_t_6, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L7;
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1899
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1896
  *             raise ValueError("Can only discard comments in C14N serialisation")
  *         # suppress decl. in default case (purely for ElementTree compatibility)
  *         if xml_declaration is not None:             # <<<<<<<<<<<<<<
@@ -51486,17 +51545,17 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   __pyx_t_5 = (__pyx_t_3 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1900
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1897
  *         # suppress decl. in default case (purely for ElementTree compatibility)
  *         if xml_declaration is not None:
  *             write_declaration = xml_declaration             # <<<<<<<<<<<<<<
  *             if encoding is None:
  *                 encoding = u'ASCII'
  */
-    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_write_declaration = __pyx_t_5;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1901
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1898
  *         if xml_declaration is not None:
  *             write_declaration = xml_declaration
  *             if encoding is None:             # <<<<<<<<<<<<<<
@@ -51507,7 +51566,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
     __pyx_t_3 = (__pyx_t_5 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1902
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1899
  *             write_declaration = xml_declaration
  *             if encoding is None:
  *                 encoding = u'ASCII'             # <<<<<<<<<<<<<<
@@ -51515,33 +51574,31 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *                 encoding = encoding.upper()
  */
       __Pyx_INCREF(((PyObject *)__pyx_n_u__ASCII));
-      __Pyx_DECREF(__pyx_v_encoding);
-      __pyx_v_encoding = ((PyObject *)__pyx_n_u__ASCII);
+      __Pyx_DECREF_SET(__pyx_v_encoding, ((PyObject *)__pyx_n_u__ASCII));
       goto __pyx_L9;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1904
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1901
  *                 encoding = u'ASCII'
  *             else:
  *                 encoding = encoding.upper()             # <<<<<<<<<<<<<<
  *         elif encoding is None:
  *             encoding = u'ASCII'
  */
-      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __Pyx_DECREF(__pyx_v_encoding);
-      __pyx_v_encoding = __pyx_t_1;
+      __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_1);
       __pyx_t_1 = 0;
     }
     __pyx_L9:;
     goto __pyx_L8;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1905
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1902
  *             else:
  *                 encoding = encoding.upper()
  *         elif encoding is None:             # <<<<<<<<<<<<<<
@@ -51552,7 +51609,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   __pyx_t_5 = (__pyx_t_3 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1906
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1903
  *                 encoding = encoding.upper()
  *         elif encoding is None:
  *             encoding = u'ASCII'             # <<<<<<<<<<<<<<
@@ -51560,10 +51617,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  *         else:
  */
     __Pyx_INCREF(((PyObject *)__pyx_n_u__ASCII));
-    __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = ((PyObject *)__pyx_n_u__ASCII);
+    __Pyx_DECREF_SET(__pyx_v_encoding, ((PyObject *)__pyx_n_u__ASCII));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1907
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1904
  *         elif encoding is None:
  *             encoding = u'ASCII'
  *             write_declaration = 0             # <<<<<<<<<<<<<<
@@ -51575,23 +51631,22 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1909
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1906
  *             write_declaration = 0
  *         else:
  *             encoding = encoding.upper()             # <<<<<<<<<<<<<<
  *             write_declaration = encoding not in \
  *                                   (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
  */
-    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = __pyx_t_6;
+    __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_6);
     __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1910
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1907
  *         else:
  *             encoding = encoding.upper()
  *             write_declaration = encoding not in \             # <<<<<<<<<<<<<<
@@ -51600,28 +51655,28 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  */
     __Pyx_INCREF(__pyx_v_encoding);
     __pyx_t_6 = __pyx_v_encoding;
-    __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_kp_u_103), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_kp_u_106), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     if (((int)__pyx_t_5)) {
-      __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_n_u__ASCII), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_n_u__ASCII), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_4 = ((int)__pyx_t_3);
     } else {
       __pyx_t_4 = ((int)__pyx_t_5);
     }
     if (__pyx_t_4) {
-      __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_n_u__UTF8), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_n_u__UTF8), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_3 = ((int)__pyx_t_5);
     } else {
       __pyx_t_3 = __pyx_t_4;
     }
     if (__pyx_t_3) {
-      __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_kp_u_104), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, ((PyObject *)__pyx_kp_u_107), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1907; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_5 = ((int)__pyx_t_4);
     } else {
@@ -51632,7 +51687,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   }
   __pyx_L8:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1912
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1909
  *             write_declaration = encoding not in \
  *                                   (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
  *         if standalone is None:             # <<<<<<<<<<<<<<
@@ -51643,7 +51698,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   __pyx_t_3 = (__pyx_t_5 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1913
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1910
  *                                   (u'US-ASCII', u'ASCII', u'UTF8', u'UTF-8')
  *         if standalone is None:
  *             is_standalone = -1             # <<<<<<<<<<<<<<
@@ -51654,17 +51709,17 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
     goto __pyx_L10;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1914
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1911
  *         if standalone is None:
  *             is_standalone = -1
  *         elif standalone:             # <<<<<<<<<<<<<<
  *             write_declaration = 1
  *             is_standalone = 1
  */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1915
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1912
  *             is_standalone = -1
  *         elif standalone:
  *             write_declaration = 1             # <<<<<<<<<<<<<<
@@ -51673,7 +51728,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  */
     __pyx_v_write_declaration = 1;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1916
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1913
  *         elif standalone:
  *             write_declaration = 1
  *             is_standalone = 1             # <<<<<<<<<<<<<<
@@ -51685,7 +51740,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1918
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1915
  *             is_standalone = 1
  *         else:
  *             write_declaration = 1             # <<<<<<<<<<<<<<
@@ -51694,7 +51749,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
  */
     __pyx_v_write_declaration = 1;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1919
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1916
  *         else:
  *             write_declaration = 1
  *             is_standalone = 0             # <<<<<<<<<<<<<<
@@ -51705,7 +51760,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   }
   __pyx_L10:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1920
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1917
  *             write_declaration = 1
  *             is_standalone = 0
  *         _tofilelike(file, self._context_node, encoding, docstring, method,             # <<<<<<<<<<<<<<
@@ -51715,25 +51770,25 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_10write(struct LxmlElement
   __pyx_t_6 = ((PyObject *)__pyx_v_self->_context_node);
   __Pyx_INCREF(__pyx_t_6);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1921
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1918
  *             is_standalone = 0
  *         _tofilelike(file, self._context_node, encoding, docstring, method,
  *                     write_declaration, 1, pretty_print, with_tail,             # <<<<<<<<<<<<<<
  *                     is_standalone, compression)
  * 
  */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_pretty_print); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_tail); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_pretty_print); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_with_tail); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1922
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1919
  *         _tofilelike(file, self._context_node, encoding, docstring, method,
  *                     write_declaration, 1, pretty_print, with_tail,
  *                     is_standalone, compression)             # <<<<<<<<<<<<<<
  * 
  *     def getpath(self, _Element element not None):
  */
-  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_compression); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __pyx_f_4lxml_5etree__tofilelike(__pyx_v_file, ((struct LxmlElement *)__pyx_t_6), __pyx_v_encoding, __pyx_v_docstring, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_t_3, __pyx_t_5, __pyx_v_is_standalone, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_compression); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__tofilelike(__pyx_v_file, ((struct LxmlElement *)__pyx_t_6), __pyx_v_encoding, __pyx_v_docstring, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_t_3, __pyx_t_5, __pyx_v_is_standalone, __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -51763,7 +51818,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_13getpath(PyObject *__pyx_
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("getpath (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_12_ElementTree_12getpath(((struct LxmlElementTree *)__pyx_v_self), ((struct LxmlElement *)__pyx_v_element));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -51773,7 +51828,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_13getpath(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1924
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1921
  *                     is_standalone, compression)
  * 
  *     def getpath(self, _Element element not None):             # <<<<<<<<<<<<<<
@@ -51799,16 +51854,16 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getpath", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1932
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1929
  *         cdef _Element root
  *         cdef xmlDoc* c_doc
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         if self._context_node is not None:
  *             root = self._context_node
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1932; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1933
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1930
  *         cdef xmlDoc* c_doc
  *         _assertValidNode(element)
  *         if self._context_node is not None:             # <<<<<<<<<<<<<<
@@ -51819,7 +51874,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1934
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1931
  *         _assertValidNode(element)
  *         if self._context_node is not None:
  *             root = self._context_node             # <<<<<<<<<<<<<<
@@ -51831,7 +51886,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
     __pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1935
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1932
  *         if self._context_node is not None:
  *             root = self._context_node
  *             doc = root._doc             # <<<<<<<<<<<<<<
@@ -51845,7 +51900,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1936
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1933
  *             root = self._context_node
  *             doc = root._doc
  *         elif self._doc is not None:             # <<<<<<<<<<<<<<
@@ -51856,7 +51911,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
   __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1937
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1934
  *             doc = root._doc
  *         elif self._doc is not None:
  *             doc = self._doc             # <<<<<<<<<<<<<<
@@ -51868,53 +51923,53 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
     __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1938
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1935
  *         elif self._doc is not None:
  *             doc = self._doc
  *             root = doc.getroot()             # <<<<<<<<<<<<<<
  *         else:
  *             raise ValueError, u"Element is not in this tree."
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_root = ((struct LxmlElement *)__pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1940
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1937
  *             root = doc.getroot()
  *         else:
  *             raise ValueError, u"Element is not in this tree."             # <<<<<<<<<<<<<<
  *         _assertValidDoc(doc)
  *         _assertValidNode(root)
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_105), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_108), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1941
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1938
  *         else:
  *             raise ValueError, u"Element is not in this tree."
  *         _assertValidDoc(doc)             # <<<<<<<<<<<<<<
  *         _assertValidNode(root)
  *         if element._doc is not doc:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1942
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1939
  *             raise ValueError, u"Element is not in this tree."
  *         _assertValidDoc(doc)
  *         _assertValidNode(root)             # <<<<<<<<<<<<<<
  *         if element._doc is not doc:
  *             raise ValueError, u"Element is not in this tree."
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_root); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1939; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1943
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1940
  *         _assertValidDoc(doc)
  *         _assertValidNode(root)
  *         if element._doc is not doc:             # <<<<<<<<<<<<<<
@@ -51925,30 +51980,30 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1944
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1941
  *         _assertValidNode(root)
  *         if element._doc is not doc:
  *             raise ValueError, u"Element is not in this tree."             # <<<<<<<<<<<<<<
  * 
  *         c_doc = _fakeRootDoc(doc._c_doc, root._c_node)
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_105), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1944; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_108), 0, 0);
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1946
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1943
  *             raise ValueError, u"Element is not in this tree."
  * 
  *         c_doc = _fakeRootDoc(doc._c_doc, root._c_node)             # <<<<<<<<<<<<<<
  *         c_path = tree.xmlGetNodePath(element._c_node)
  *         _destroyFakeDoc(doc._c_doc, c_doc)
  */
-  __pyx_t_5 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_doc->_c_doc, __pyx_v_root->_c_node); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_doc->_c_doc, __pyx_v_root->_c_node); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_5;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1947
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1944
  * 
  *         c_doc = _fakeRootDoc(doc._c_doc, root._c_node)
  *         c_path = tree.xmlGetNodePath(element._c_node)             # <<<<<<<<<<<<<<
@@ -51957,7 +52012,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  */
   __pyx_v_c_path = xmlGetNodePath(__pyx_v_element->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1948
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1945
  *         c_doc = _fakeRootDoc(doc._c_doc, root._c_node)
  *         c_path = tree.xmlGetNodePath(element._c_node)
  *         _destroyFakeDoc(doc._c_doc, c_doc)             # <<<<<<<<<<<<<<
@@ -51966,7 +52021,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  */
   __pyx_f_4lxml_5etree__destroyFakeDoc(__pyx_v_doc->_c_doc, __pyx_v_c_doc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1949
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1946
  *         c_path = tree.xmlGetNodePath(element._c_node)
  *         _destroyFakeDoc(doc._c_doc, c_doc)
  *         if c_path is NULL:             # <<<<<<<<<<<<<<
@@ -51976,31 +52031,31 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
   __pyx_t_3 = ((__pyx_v_c_path == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1950
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1947
  *         _destroyFakeDoc(doc._c_doc, c_doc)
  *         if c_path is NULL:
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  *         path = funicode(c_path)
  *         tree.xmlFree(c_path)
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1951
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1948
  *         if c_path is NULL:
  *             raise MemoryError()
  *         path = funicode(c_path)             # <<<<<<<<<<<<<<
  *         tree.xmlFree(c_path)
  *         return path
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_path); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_path); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __pyx_v_path = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1952
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1949
  *             raise MemoryError()
  *         path = funicode(c_path)
  *         tree.xmlFree(c_path)             # <<<<<<<<<<<<<<
@@ -52009,7 +52064,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_12getpath(struct LxmlEleme
  */
   xmlFree(__pyx_v_c_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1953
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1950
  *         path = funicode(c_path)
  *         tree.xmlFree(c_path)
  *         return path             # <<<<<<<<<<<<<<
@@ -52062,7 +52117,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_15getiterator(PyObject *__
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1955
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1952
  *         return path
  * 
  *     def getiterator(self, tag=None, *tags):             # <<<<<<<<<<<<<<
@@ -52088,7 +52143,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_15getiterator(PyObject *__
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "getiterator") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "getiterator") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -52127,22 +52182,22 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
   __Pyx_RefNannySetupContext("getiterator", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1972
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1969
  *           with older versions of lxml or ElementTree.
  *         """
  *         root = self.getroot()             # <<<<<<<<<<<<<<
  *         if root is None:
  *             return ()
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_root = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1973
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1970
  *         """
  *         root = self.getroot()
  *         if root is None:             # <<<<<<<<<<<<<<
@@ -52153,7 +52208,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
   __pyx_t_4 = (__pyx_t_3 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1974
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1971
  *         root = self.getroot()
  *         if root is None:
  *             return ()             # <<<<<<<<<<<<<<
@@ -52168,7 +52223,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1975
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1972
  *         if root is None:
  *             return ()
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -52179,29 +52234,28 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
   __pyx_t_3 = (__pyx_t_4 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1976
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1973
  *             return ()
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return root.getiterator(*tags)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_1 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1977
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1974
  *         if tag is not None:
  *             tags += (tag,)
  *         return root.getiterator(*tags)             # <<<<<<<<<<<<<<
@@ -52209,11 +52263,11 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_14getiterator(struct LxmlE
  *     def iter(self, tag=None, *tags):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__getiterator); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__getiterator); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PySequence_Tuple(((PyObject *)__pyx_v_tags)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PySequence_Tuple(((PyObject *)__pyx_v_tags)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -52263,7 +52317,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_17iter(PyObject *__pyx_v_s
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1979
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1976
  *         return root.getiterator(*tags)
  * 
  *     def iter(self, tag=None, *tags):             # <<<<<<<<<<<<<<
@@ -52289,7 +52343,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_17iter(PyObject *__pyx_v_s
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iter") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1979; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "iter") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1976; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -52328,22 +52382,22 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
   __Pyx_RefNannySetupContext("iter", 0);
   __Pyx_INCREF(__pyx_v_tags);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1988
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1985
  *         see `_Element.iter`.
  *         """
  *         root = self.getroot()             # <<<<<<<<<<<<<<
  *         if root is None:
  *             return ()
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1988; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1988; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1985; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_root = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1989
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1986
  *         """
  *         root = self.getroot()
  *         if root is None:             # <<<<<<<<<<<<<<
@@ -52354,7 +52408,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
   __pyx_t_4 = (__pyx_t_3 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1990
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1987
  *         root = self.getroot()
  *         if root is None:
  *             return ()             # <<<<<<<<<<<<<<
@@ -52369,7 +52423,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1991
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1988
  *         if root is None:
  *             return ()
  *         if tag is not None:             # <<<<<<<<<<<<<<
@@ -52380,29 +52434,28 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
   __pyx_t_3 = (__pyx_t_4 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1992
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1989
  *             return ()
  *         if tag is not None:
  *             tags += (tag,)             # <<<<<<<<<<<<<<
  *         return root.iter(*tags)
  * 
  */
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_1 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_InPlaceAdd(((PyObject *)__pyx_v_tags), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1989; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_tags));
-    __pyx_v_tags = ((PyObject*)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_tags, ((PyObject*)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1993
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1990
  *         if tag is not None:
  *             tags += (tag,)
  *         return root.iter(*tags)             # <<<<<<<<<<<<<<
@@ -52410,11 +52463,11 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_16iter(struct LxmlElementT
  *     def find(self, path, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__iter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__iter); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PySequence_Tuple(((PyObject *)__pyx_v_tags)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PySequence_Tuple(((PyObject *)__pyx_v_tags)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1993; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1990; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -52454,7 +52507,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_19find(PyObject *__pyx_v_s
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__namespaces,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1995
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1992
  *         return root.iter(*tags)
  * 
  *     def find(self, path, namespaces=None):             # <<<<<<<<<<<<<<
@@ -52483,7 +52536,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_19find(PyObject *__pyx_v_s
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -52498,7 +52551,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_19find(PyObject *__pyx_v_s
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("find", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1995; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("find", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1992; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._ElementTree.find", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -52524,33 +52577,33 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_18find(struct LxmlElementT
   __Pyx_RefNannySetupContext("find", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2005
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2002
  *         prefixes in the path expression.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         root = self.getroot()
  *         if _isString(path):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2006
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2003
  *         """
  *         self._assertHasRoot()
  *         root = self.getroot()             # <<<<<<<<<<<<<<
  *         if _isString(path):
  *             start = path[:1]
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_root = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2007
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2004
  *         self._assertHasRoot()
  *         root = self.getroot()
  *         if _isString(path):             # <<<<<<<<<<<<<<
@@ -52560,68 +52613,66 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_18find(struct LxmlElementT
   __pyx_t_3 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2008
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2005
  *         root = self.getroot()
  *         if _isString(path):
  *             start = path[:1]             # <<<<<<<<<<<<<<
  *             if start == u"/":
  *                 path = u"." + path
  */
-    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_106, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_109, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_start = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2009
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2006
  *         if _isString(path):
  *             start = path[:1]
  *             if start == u"/":             # <<<<<<<<<<<<<<
  *                 path = u"." + path
  *             elif start == b"/":
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_107), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_110), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2010
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2007
  *             start = path[:1]
  *             if start == u"/":
  *                 path = u"." + path             # <<<<<<<<<<<<<<
  *             elif start == b"/":
  *                 path = b"." + path
  */
-      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_u_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_u_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2007; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_path);
-      __pyx_v_path = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2011
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2008
  *             if start == u"/":
  *                 path = u"." + path
  *             elif start == b"/":             # <<<<<<<<<<<<<<
  *                 path = b"." + path
  *         return root.find(path, namespaces)
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_107), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_110), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2012
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2009
  *                 path = u"." + path
  *             elif start == b"/":
  *                 path = b"." + path             # <<<<<<<<<<<<<<
  *         return root.find(path, namespaces)
  * 
  */
-      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_b_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_b_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_path);
-      __pyx_v_path = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
@@ -52630,7 +52681,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_18find(struct LxmlElementT
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2013
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2010
  *             elif start == b"/":
  *                 path = b"." + path
  *         return root.find(path, namespaces)             # <<<<<<<<<<<<<<
@@ -52638,9 +52689,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_18find(struct LxmlElementT
  *     def findtext(self, path, default=None, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__find); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__find); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_path);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_path);
@@ -52648,7 +52699,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_18find(struct LxmlElementT
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -52690,7 +52741,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_21findtext(PyObject *__pyx
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__default,&__pyx_n_s__namespaces,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2015
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2012
  *         return root.find(path, namespaces)
  * 
  *     def findtext(self, path, default=None, namespaces=None):             # <<<<<<<<<<<<<<
@@ -52726,7 +52777,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_21findtext(PyObject *__pyx
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findtext") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findtext") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -52743,7 +52794,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_21findtext(PyObject *__pyx
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("findtext", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2015; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("findtext", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2012; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._ElementTree.findtext", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -52769,33 +52820,33 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_20findtext(struct LxmlElem
   __Pyx_RefNannySetupContext("findtext", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2025
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2022
  *         prefixes in the path expression.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         root = self.getroot()
  *         if _isString(path):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2022; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2026
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2023
  *         """
  *         self._assertHasRoot()
  *         root = self.getroot()             # <<<<<<<<<<<<<<
  *         if _isString(path):
  *             start = path[:1]
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_root = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2027
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2024
  *         self._assertHasRoot()
  *         root = self.getroot()
  *         if _isString(path):             # <<<<<<<<<<<<<<
@@ -52805,68 +52856,66 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_20findtext(struct LxmlElem
   __pyx_t_3 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2028
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2025
  *         root = self.getroot()
  *         if _isString(path):
  *             start = path[:1]             # <<<<<<<<<<<<<<
  *             if start == u"/":
  *                 path = u"." + path
  */
-    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_108, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_111, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_start = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2029
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2026
  *         if _isString(path):
  *             start = path[:1]
  *             if start == u"/":             # <<<<<<<<<<<<<<
  *                 path = u"." + path
  *             elif start == b"/":
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_107), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_110), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2030
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2027
  *             start = path[:1]
  *             if start == u"/":
  *                 path = u"." + path             # <<<<<<<<<<<<<<
  *             elif start == b"/":
  *                 path = b"." + path
  */
-      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_u_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_u_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_path);
-      __pyx_v_path = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2031
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2028
  *             if start == u"/":
  *                 path = u"." + path
  *             elif start == b"/":             # <<<<<<<<<<<<<<
  *                 path = b"." + path
  *         return root.findtext(path, default, namespaces)
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_107), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_110), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2032
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2029
  *                 path = u"." + path
  *             elif start == b"/":
  *                 path = b"." + path             # <<<<<<<<<<<<<<
  *         return root.findtext(path, default, namespaces)
  * 
  */
-      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_b_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_b_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_path);
-      __pyx_v_path = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
@@ -52875,7 +52924,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_20findtext(struct LxmlElem
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2033
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2030
  *             elif start == b"/":
  *                 path = b"." + path
  *         return root.findtext(path, default, namespaces)             # <<<<<<<<<<<<<<
@@ -52883,9 +52932,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_20findtext(struct LxmlElem
  *     def findall(self, path, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__findtext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__findtext); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_path);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_path);
@@ -52896,7 +52945,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_20findtext(struct LxmlElem
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -52937,7 +52986,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_23findall(PyObject *__pyx_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__namespaces,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2035
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2032
  *         return root.findtext(path, default, namespaces)
  * 
  *     def findall(self, path, namespaces=None):             # <<<<<<<<<<<<<<
@@ -52966,7 +53015,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_23findall(PyObject *__pyx_
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findall") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2035; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "findall") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2032; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -52981,7 +53030,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_23findall(PyObject *__pyx_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("findall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2035; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("findall", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2032; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._ElementTree.findall", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -53007,33 +53056,33 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_22findall(struct LxmlEleme
   __Pyx_RefNannySetupContext("findall", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2045
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2042
  *         prefixes in the path expression.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         root = self.getroot()
  *         if _isString(path):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2046
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2043
  *         """
  *         self._assertHasRoot()
  *         root = self.getroot()             # <<<<<<<<<<<<<<
  *         if _isString(path):
  *             start = path[:1]
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_root = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2047
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2044
  *         self._assertHasRoot()
  *         root = self.getroot()
  *         if _isString(path):             # <<<<<<<<<<<<<<
@@ -53043,68 +53092,66 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_22findall(struct LxmlEleme
   __pyx_t_3 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2048
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2045
  *         root = self.getroot()
  *         if _isString(path):
  *             start = path[:1]             # <<<<<<<<<<<<<<
  *             if start == u"/":
  *                 path = u"." + path
  */
-    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_109, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_112, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_start = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2049
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2046
  *         if _isString(path):
  *             start = path[:1]
  *             if start == u"/":             # <<<<<<<<<<<<<<
  *                 path = u"." + path
  *             elif start == b"/":
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_107), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_110), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2050
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2047
  *             start = path[:1]
  *             if start == u"/":
  *                 path = u"." + path             # <<<<<<<<<<<<<<
  *             elif start == b"/":
  *                 path = b"." + path
  */
-      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_u_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_u_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_path);
-      __pyx_v_path = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2051
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2048
  *             if start == u"/":
  *                 path = u"." + path
  *             elif start == b"/":             # <<<<<<<<<<<<<<
  *                 path = b"." + path
  *         return root.findall(path, namespaces)
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_107), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2051; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_110), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2052
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2049
  *                 path = u"." + path
  *             elif start == b"/":
  *                 path = b"." + path             # <<<<<<<<<<<<<<
  *         return root.findall(path, namespaces)
  * 
  */
-      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_b_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_b_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_path);
-      __pyx_v_path = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
@@ -53113,7 +53160,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_22findall(struct LxmlEleme
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2053
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2050
  *             elif start == b"/":
  *                 path = b"." + path
  *         return root.findall(path, namespaces)             # <<<<<<<<<<<<<<
@@ -53121,9 +53168,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_22findall(struct LxmlEleme
  *     def iterfind(self, path, namespaces=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__findall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__findall); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_path);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_path);
@@ -53131,7 +53178,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_22findall(struct LxmlEleme
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -53172,7 +53219,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_25iterfind(PyObject *__pyx
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__namespaces,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2055
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2052
  *         return root.findall(path, namespaces)
  * 
  *     def iterfind(self, path, namespaces=None):             # <<<<<<<<<<<<<<
@@ -53201,7 +53248,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_25iterfind(PyObject *__pyx
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "iterfind") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2055; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "iterfind") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2052; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -53216,7 +53263,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_25iterfind(PyObject *__pyx
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("iterfind", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2055; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("iterfind", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2052; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._ElementTree.iterfind", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -53242,33 +53289,33 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_24iterfind(struct LxmlElem
   __Pyx_RefNannySetupContext("iterfind", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2065
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2062
  *         prefixes in the path expression.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         root = self.getroot()
  *         if _isString(path):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2062; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2066
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2063
  *         """
  *         self._assertHasRoot()
  *         root = self.getroot()             # <<<<<<<<<<<<<<
  *         if _isString(path):
  *             start = path[:1]
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__getroot); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2063; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_root = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2067
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2064
  *         self._assertHasRoot()
  *         root = self.getroot()
  *         if _isString(path):             # <<<<<<<<<<<<<<
@@ -53278,68 +53325,66 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_24iterfind(struct LxmlElem
   __pyx_t_3 = (_isString(__pyx_v_path) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2068
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2065
  *         root = self.getroot()
  *         if _isString(path):
  *             start = path[:1]             # <<<<<<<<<<<<<<
  *             if start == u"/":
  *                 path = u"." + path
  */
-    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_110, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_path, 0, 1, NULL, NULL, &__pyx_k_slice_113, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_start = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2069
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2066
  *         if _isString(path):
  *             start = path[:1]
  *             if start == u"/":             # <<<<<<<<<<<<<<
  *                 path = u"." + path
  *             elif start == b"/":
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_107), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_u_110), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2066; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2070
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2067
  *             start = path[:1]
  *             if start == u"/":
  *                 path = u"." + path             # <<<<<<<<<<<<<<
  *             elif start == b"/":
  *                 path = b"." + path
  */
-      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_u_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_u_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2067; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_path);
-      __pyx_v_path = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2071
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2068
  *             if start == u"/":
  *                 path = u"." + path
  *             elif start == b"/":             # <<<<<<<<<<<<<<
  *                 path = b"." + path
  *         return root.iterfind(path, namespaces)
  */
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_107), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_start, ((PyObject *)__pyx_kp_b_110), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2072
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2069
  *                 path = u"." + path
  *             elif start == b"/":
  *                 path = b"." + path             # <<<<<<<<<<<<<<
  *         return root.iterfind(path, namespaces)
  * 
  */
-      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_b_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_kp_b_5), __pyx_v_path); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_path);
-      __pyx_v_path = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
@@ -53348,7 +53393,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_24iterfind(struct LxmlElem
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2073
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2070
  *             elif start == b"/":
  *                 path = b"." + path
  *         return root.iterfind(path, namespaces)             # <<<<<<<<<<<<<<
@@ -53356,9 +53401,9 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_24iterfind(struct LxmlElem
  *     def xpath(self, _path, *, namespaces=None, extensions=None,
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__iterfind); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_root, __pyx_n_s__iterfind); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_path);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_path);
@@ -53366,7 +53411,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_24iterfind(struct LxmlElem
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_namespaces);
   __Pyx_GIVEREF(__pyx_v_namespaces);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -53412,7 +53457,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_27xpath(PyObject *__pyx_v_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___path,&__pyx_n_s__namespaces,&__pyx_n_s__extensions,&__pyx_n_s__smart_strings,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2075
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2072
  *         return root.iterfind(path, namespaces)
  * 
  *     def xpath(self, _path, *, namespaces=None, extensions=None,             # <<<<<<<<<<<<<<
@@ -53421,7 +53466,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_27xpath(PyObject *__pyx_v_
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_111;
+    values[3] = __pyx_k_114;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -53444,7 +53489,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_27xpath(PyObject *__pyx_v_
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "xpath") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2075; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "xpath") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -53458,7 +53503,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_27xpath(PyObject *__pyx_v_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("xpath", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2075; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("xpath", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2072; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__variables); __pyx_v__variables = 0;
   __Pyx_AddTraceback("lxml.etree._ElementTree.xpath", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -53483,58 +53528,58 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_26xpath(struct LxmlElement
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("xpath", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2094
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2091
  *         XPathEvaluator directly.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         evaluator = XPathDocumentEvaluator(self, namespaces=namespaces,
  *                                            extensions=extensions,
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2095
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2092
  *         """
  *         self._assertHasRoot()
  *         evaluator = XPathDocumentEvaluator(self, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *                                            extensions=extensions,
  *                                            smart_strings=smart_strings)
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2096
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2093
  *         self._assertHasRoot()
  *         evaluator = XPathDocumentEvaluator(self, namespaces=namespaces,
  *                                            extensions=extensions,             # <<<<<<<<<<<<<<
  *                                            smart_strings=smart_strings)
  *         return evaluator(_path, **_variables)
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2097
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2094
  *         evaluator = XPathDocumentEvaluator(self, namespaces=namespaces,
  *                                            extensions=extensions,
  *                                            smart_strings=smart_strings)             # <<<<<<<<<<<<<<
  *         return evaluator(_path, **_variables)
  * 
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator)), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator)), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_v_evaluator = ((struct __pyx_obj_4lxml_5etree_XPathDocumentEvaluator *)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2098
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2095
  *                                            extensions=extensions,
  *                                            smart_strings=smart_strings)
  *         return evaluator(_path, **_variables)             # <<<<<<<<<<<<<<
@@ -53542,14 +53587,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_26xpath(struct LxmlElement
  *     def xslt(self, _xslt, extensions=None, access_control=None, **_kw):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v__path);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__path);
   __Pyx_GIVEREF(__pyx_v__path);
   __pyx_t_2 = ((PyObject *)__pyx_v__variables);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_1 = PyObject_Call(((PyObject *)__pyx_v_evaluator), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2098; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)__pyx_v_evaluator), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -53592,7 +53637,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_29xslt(PyObject *__pyx_v_s
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___xslt,&__pyx_n_s__extensions,&__pyx_n_s__access_control,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2100
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2097
  *         return evaluator(_path, **_variables)
  * 
  *     def xslt(self, _xslt, extensions=None, access_control=None, **_kw):             # <<<<<<<<<<<<<<
@@ -53628,7 +53673,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_29xslt(PyObject *__pyx_v_s
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__kw, values, pos_args, "xslt") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__kw, values, pos_args, "xslt") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2097; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -53645,7 +53690,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_29xslt(PyObject *__pyx_v_s
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("xslt", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2100; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("xslt", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2097; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__kw); __pyx_v__kw = 0;
   __Pyx_AddTraceback("lxml.etree._ElementTree.xslt", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -53670,49 +53715,49 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_28xslt(struct LxmlElementT
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("xslt", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2114
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2111
  *         class directly.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         style = XSLT(_xslt, extensions=extensions,
  *                      access_control=access_control)
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2115
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2112
  *         """
  *         self._assertHasRoot()
  *         style = XSLT(_xslt, extensions=extensions,             # <<<<<<<<<<<<<<
  *                      access_control=access_control)
  *         return style(self, **_kw)
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v__xslt);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__xslt);
   __Pyx_GIVEREF(__pyx_v__xslt);
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2116
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2113
  *         self._assertHasRoot()
  *         style = XSLT(_xslt, extensions=extensions,
  *                      access_control=access_control)             # <<<<<<<<<<<<<<
  *         return style(self, **_kw)
  * 
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__access_control), __pyx_v_access_control) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XSLT)), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__access_control), __pyx_v_access_control) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XSLT)), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_v_style = ((struct __pyx_obj_4lxml_5etree_XSLT *)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2117
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2114
  *         style = XSLT(_xslt, extensions=extensions,
  *                      access_control=access_control)
  *         return style(self, **_kw)             # <<<<<<<<<<<<<<
@@ -53720,14 +53765,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_28xslt(struct LxmlElementT
  *     def relaxng(self, relaxng):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
   __pyx_t_2 = ((PyObject *)__pyx_v__kw);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_1 = PyObject_Call(((PyObject *)__pyx_v_style), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)__pyx_v_style), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -53762,7 +53807,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_31relaxng(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2119
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2116
  *         return style(self, **_kw)
  * 
  *     def relaxng(self, relaxng):             # <<<<<<<<<<<<<<
@@ -53782,36 +53827,36 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_30relaxng(struct LxmlEleme
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("relaxng", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2133
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2130
  *         class directly.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         schema = RelaxNG(relaxng)
  *         return schema.validate(self)
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2134
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2131
  *         """
  *         self._assertHasRoot()
  *         schema = RelaxNG(relaxng)             # <<<<<<<<<<<<<<
  *         return schema.validate(self)
  * 
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_relaxng);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_relaxng);
   __Pyx_GIVEREF(__pyx_v_relaxng);
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_RelaxNG)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_RelaxNG)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_v_schema = ((struct __pyx_obj_4lxml_5etree_RelaxNG *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2135
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2132
  *         self._assertHasRoot()
  *         schema = RelaxNG(relaxng)
  *         return schema.validate(self)             # <<<<<<<<<<<<<<
@@ -53819,14 +53864,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_30relaxng(struct LxmlEleme
  *     def xmlschema(self, xmlschema):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s__validate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s__validate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -53861,7 +53906,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_33xmlschema(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2137
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2134
  *         return schema.validate(self)
  * 
  *     def xmlschema(self, xmlschema):             # <<<<<<<<<<<<<<
@@ -53881,36 +53926,36 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_32xmlschema(struct LxmlEle
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("xmlschema", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2151
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2148
  *         class directly.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         schema = XMLSchema(xmlschema)
  *         return schema.validate(self)
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2152
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2149
  *         """
  *         self._assertHasRoot()
  *         schema = XMLSchema(xmlschema)             # <<<<<<<<<<<<<<
  *         return schema.validate(self)
  * 
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_xmlschema);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_xmlschema);
   __Pyx_GIVEREF(__pyx_v_xmlschema);
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XMLSchema)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XMLSchema)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2149; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_v_schema = ((struct __pyx_obj_4lxml_5etree_XMLSchema *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2153
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2150
  *         self._assertHasRoot()
  *         schema = XMLSchema(xmlschema)
  *         return schema.validate(self)             # <<<<<<<<<<<<<<
@@ -53918,14 +53963,14 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_32xmlschema(struct LxmlEle
  *     def xinclude(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s__validate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_schema), __pyx_n_s__validate); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -53960,7 +54005,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_35xinclude(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2155
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2152
  *         return schema.validate(self)
  * 
  *     def xinclude(self):             # <<<<<<<<<<<<<<
@@ -53979,32 +54024,32 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_34xinclude(struct LxmlElem
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("xinclude", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2167
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2164
  *         due to restrictions of libxml2 <= 2.6.29.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         XInclude()(self._context_node)
  * 
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2168
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2165
  *         """
  *         self._assertHasRoot()
  *         XInclude()(self._context_node)             # <<<<<<<<<<<<<<
  * 
  *     def write_c14n(self, file, *, exclusive=False, with_comments=True,
  */
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XInclude)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XInclude)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject *)__pyx_v_self->_context_node));
   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self->_context_node));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_context_node));
-  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -54040,13 +54085,13 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_37write_c14n(PyObject *__p
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("write_c14n (wrapper)", 0);
   {
-    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s__compression,&__pyx_n_s_92,0};
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__file,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s__compression,&__pyx_n_s_95,0};
     PyObject* values[5] = {0,0,0,0,0};
-    values[1] = __pyx_k_112;
-    values[2] = __pyx_k_113;
+    values[1] = __pyx_k_115;
+    values[2] = __pyx_k_116;
     values[3] = ((PyObject *)__pyx_int_0);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2171
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2168
  * 
  *     def write_c14n(self, file, *, exclusive=False, with_comments=True,
  *                    compression=0, inclusive_ns_prefixes=None):             # <<<<<<<<<<<<<<
@@ -54076,7 +54121,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_37write_c14n(PyObject *__p
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_c14n") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_c14n") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2167; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -54091,7 +54136,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_37write_c14n(PyObject *__p
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("write_c14n", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("write_c14n", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2167; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._ElementTree.write_c14n", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -54102,7 +54147,7 @@ static PyObject *__pyx_pw_4lxml_5etree_12_ElementTree_37write_c14n(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2170
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2167
  *         XInclude()(self._context_node)
  * 
  *     def write_c14n(self, file, *, exclusive=False, with_comments=True,             # <<<<<<<<<<<<<<
@@ -54125,18 +54170,18 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_36write_c14n(struct LxmlEl
   __Pyx_RefNannySetupContext("write_c14n", 0);
   __Pyx_INCREF(__pyx_v_compression);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2189
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2186
  *         of the namespace node's parent element.
  *         """
  *         self._assertHasRoot()             # <<<<<<<<<<<<<<
  *         _assertValidNode(self._context_node)
  *         if compression is None or compression < 0:
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ElementTree *)__pyx_v_self->__pyx_vtab)->_assertHasRoot(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2190
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2187
  *         """
  *         self._assertHasRoot()
  *         _assertValidNode(self._context_node)             # <<<<<<<<<<<<<<
@@ -54145,10 +54190,10 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_36write_c14n(struct LxmlEl
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_context_node);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2191
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2188
  *         self._assertHasRoot()
  *         _assertValidNode(self._context_node)
  *         if compression is None or compression < 0:             # <<<<<<<<<<<<<<
@@ -54157,8 +54202,8 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_36write_c14n(struct LxmlEl
  */
   __pyx_t_3 = (__pyx_v_compression == Py_None);
   if (!__pyx_t_3) {
-    __pyx_t_1 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_5 = __pyx_t_4;
   } else {
@@ -54166,7 +54211,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_36write_c14n(struct LxmlEl
   }
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2192
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2189
  *         _assertValidNode(self._context_node)
  *         if compression is None or compression < 0:
  *             compression = 0             # <<<<<<<<<<<<<<
@@ -54174,13 +54219,12 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_36write_c14n(struct LxmlEl
  *         _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
  */
     __Pyx_INCREF(__pyx_int_0);
-    __Pyx_DECREF(__pyx_v_compression);
-    __pyx_v_compression = __pyx_int_0;
+    __Pyx_DECREF_SET(__pyx_v_compression, __pyx_int_0);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2194
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2191
  *             compression = 0
  * 
  *         _tofilelikeC14N(file, self._context_node, exclusive, with_comments,             # <<<<<<<<<<<<<<
@@ -54189,18 +54233,18 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_36write_c14n(struct LxmlEl
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_context_node);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_exclusive); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_with_comments); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2195
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2192
  * 
  *         _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
  *                         compression, inclusive_ns_prefixes)             # <<<<<<<<<<<<<<
  * 
  * cdef _ElementTree _elementTreeFactory(_Document doc, _Element context_node):
  */
-  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_compression); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_1), __pyx_t_5, __pyx_t_3, __pyx_t_2, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyInt_AsInt(__pyx_v_compression); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __pyx_f_4lxml_5etree__tofilelikeC14N(__pyx_v_file, ((struct LxmlElement *)__pyx_t_1), __pyx_t_5, __pyx_t_3, __pyx_t_2, __pyx_v_inclusive_ns_prefixes); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -54219,7 +54263,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ElementTree_36write_c14n(struct LxmlEl
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2197
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2194
  *                         compression, inclusive_ns_prefixes)
  * 
  * cdef _ElementTree _elementTreeFactory(_Document doc, _Element context_node):             # <<<<<<<<<<<<<<
@@ -54236,7 +54280,7 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__elementTreeFactory(struct L
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_elementTreeFactory", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2198
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2195
  * 
  * cdef _ElementTree _elementTreeFactory(_Document doc, _Element context_node):
  *     return _newElementTree(doc, context_node, _ElementTree)             # <<<<<<<<<<<<<<
@@ -54244,7 +54288,7 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__elementTreeFactory(struct L
  * cdef _ElementTree _newElementTree(_Document doc, _Element context_node,
  */
   __Pyx_XDECREF(((PyObject *)__pyx_r));
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newElementTree(__pyx_v_doc, __pyx_v_context_node, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newElementTree(__pyx_v_doc, __pyx_v_context_node, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ElementTree)))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = ((struct LxmlElementTree *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -54262,7 +54306,7 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__elementTreeFactory(struct L
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2200
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2197
  *     return _newElementTree(doc, context_node, _ElementTree)
  * 
  * cdef _ElementTree _newElementTree(_Document doc, _Element context_node,             # <<<<<<<<<<<<<<
@@ -54285,20 +54329,20 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__newElementTree(struct LxmlD
   __Pyx_RefNannySetupContext("_newElementTree", 0);
   __Pyx_INCREF((PyObject *)__pyx_v_context_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2203
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2200
  *                                   object baseclass):
  *     cdef _ElementTree result
  *     result = baseclass()             # <<<<<<<<<<<<<<
  *     if context_node is None and doc is not None:
  *         context_node = doc.getroot()
  */
-  __pyx_t_1 = PyObject_Call(__pyx_v_baseclass, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_v_baseclass, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ElementTree))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__ElementTree))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_result = ((struct LxmlElementTree *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2204
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2201
  *     cdef _ElementTree result
  *     result = baseclass()
  *     if context_node is None and doc is not None:             # <<<<<<<<<<<<<<
@@ -54314,24 +54358,23 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__newElementTree(struct LxmlD
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2205
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2202
  *     result = baseclass()
  *     if context_node is None and doc is not None:
  *         context_node = doc.getroot()             # <<<<<<<<<<<<<<
  *     if context_node is None:
  *         _assertValidDoc(doc)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(((PyObject *)__pyx_v_context_node));
-    __pyx_v_context_node = ((struct LxmlElement *)__pyx_t_1);
+    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF_SET(__pyx_v_context_node, ((struct LxmlElement *)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2206
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2203
  *     if context_node is None and doc is not None:
  *         context_node = doc.getroot()
  *     if context_node is None:             # <<<<<<<<<<<<<<
@@ -54342,16 +54385,16 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__newElementTree(struct LxmlD
   __pyx_t_2 = (__pyx_t_4 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2207
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2204
  *         context_node = doc.getroot()
  *     if context_node is None:
  *         _assertValidDoc(doc)             # <<<<<<<<<<<<<<
  *         result._doc = doc
  *     else:
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2208
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2205
  *     if context_node is None:
  *         _assertValidDoc(doc)
  *         result._doc = doc             # <<<<<<<<<<<<<<
@@ -54367,18 +54410,18 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__newElementTree(struct LxmlD
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2210
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2207
  *         result._doc = doc
  *     else:
  *         _assertValidNode(context_node)             # <<<<<<<<<<<<<<
  *     result._context_node = context_node
  *     return result
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_context_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_context_node); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2211
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2208
  *     else:
  *         _assertValidNode(context_node)
  *     result._context_node = context_node             # <<<<<<<<<<<<<<
@@ -54391,7 +54434,7 @@ static struct LxmlElementTree *__pyx_f_4lxml_5etree__newElementTree(struct LxmlD
   __Pyx_DECREF(((PyObject *)__pyx_v_result->_context_node));
   __pyx_v_result->_context_node = __pyx_v_context_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2212
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2209
  *         _assertValidNode(context_node)
  *     result._context_node = context_node
  *     return result             # <<<<<<<<<<<<<<
@@ -54445,7 +54488,7 @@ static int __pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(PyObject *__pyx_v_self, PyO
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2216; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -54456,13 +54499,13 @@ static int __pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(PyObject *__pyx_v_self, PyO
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2219; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2216; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Attrib.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_7_Attrib___cinit__(((struct __pyx_obj_4lxml_5etree__Attrib *)__pyx_v_self), __pyx_v_element);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -54472,7 +54515,7 @@ static int __pyx_pw_4lxml_5etree_7_Attrib_1__cinit__(PyObject *__pyx_v_self, PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2219
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2216
  *     """
  *     cdef _Element _element
  *     def __cinit__(self, _Element element not None):             # <<<<<<<<<<<<<<
@@ -54489,16 +54532,16 @@ static int __pyx_pf_4lxml_5etree_7_Attrib___cinit__(struct __pyx_obj_4lxml_5etre
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2220
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2217
  *     cdef _Element _element
  *     def __cinit__(self, _Element element not None):
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         self._element = element
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2217; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2221
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2218
  *     def __cinit__(self, _Element element not None):
  *         _assertValidNode(element)
  *         self._element = element             # <<<<<<<<<<<<<<
@@ -54532,7 +54575,7 @@ static int __pyx_pw_4lxml_5etree_7_Attrib_3__setitem__(PyObject *__pyx_v_self, P
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2224
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2221
  * 
  *     # MANIPULATORS
  *     def __setitem__(self, key, value):             # <<<<<<<<<<<<<<
@@ -54550,7 +54593,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_2__setitem__(struct __pyx_obj_4lxml_5e
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__setitem__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2225
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2222
  *     # MANIPULATORS
  *     def __setitem__(self, key, value):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -54559,10 +54602,10 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_2__setitem__(struct __pyx_obj_4lxml_5e
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2226
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2223
  *     def __setitem__(self, key, value):
  *         _assertValidNode(self._element)
  *         _setAttributeValue(self._element, key, value)             # <<<<<<<<<<<<<<
@@ -54571,7 +54614,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_2__setitem__(struct __pyx_obj_4lxml_5e
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__setAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__setAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
   __pyx_r = 0;
@@ -54596,7 +54639,7 @@ static int __pyx_pw_4lxml_5etree_7_Attrib_5__delitem__(PyObject *__pyx_v_self, P
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2228
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2225
  *         _setAttributeValue(self._element, key, value)
  * 
  *     def __delitem__(self, key):             # <<<<<<<<<<<<<<
@@ -54614,7 +54657,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_4__delitem__(struct __pyx_obj_4lxml_5e
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__delitem__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2229
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2226
  * 
  *     def __delitem__(self, key):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -54623,10 +54666,10 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_4__delitem__(struct __pyx_obj_4lxml_5e
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2230
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2227
  *     def __delitem__(self, key):
  *         _assertValidNode(self._element)
  *         _delAttribute(self._element, key)             # <<<<<<<<<<<<<<
@@ -54635,7 +54678,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_4__delitem__(struct __pyx_obj_4lxml_5e
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__delAttribute(((struct LxmlElement *)__pyx_t_1), __pyx_v_key); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__delAttribute(((struct LxmlElement *)__pyx_t_1), __pyx_v_key); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
   __pyx_r = 0;
@@ -54660,7 +54703,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_7update(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2232
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2229
  *         _delAttribute(self._element, key)
  * 
  *     def update(self, sequence_or_dict):             # <<<<<<<<<<<<<<
@@ -54691,7 +54734,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
   __Pyx_RefNannySetupContext("update", 0);
   __Pyx_INCREF(__pyx_v_sequence_or_dict);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2233
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2230
  * 
  *     def update(self, sequence_or_dict):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -54700,10 +54743,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2234
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2231
  *     def update(self, sequence_or_dict):
  *         _assertValidNode(self._element)
  *         if isinstance(sequence_or_dict, (dict, _Attrib)):             # <<<<<<<<<<<<<<
@@ -54723,26 +54766,25 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
   __pyx_t_3 = (__pyx_t_5 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2235
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2232
  *         _assertValidNode(self._element)
  *         if isinstance(sequence_or_dict, (dict, _Attrib)):
  *             sequence_or_dict = sequence_or_dict.items()             # <<<<<<<<<<<<<<
  *         for key, value in sequence_or_dict:
  *             _setAttributeValue(self._element, key, value)
  */
-    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sequence_or_dict, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_sequence_or_dict, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2235; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2232; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __Pyx_DECREF(__pyx_v_sequence_or_dict);
-    __pyx_v_sequence_or_dict = __pyx_t_6;
+    __Pyx_DECREF_SET(__pyx_v_sequence_or_dict, __pyx_t_6);
     __pyx_t_6 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2236
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2233
  *         if isinstance(sequence_or_dict, (dict, _Attrib)):
  *             sequence_or_dict = sequence_or_dict.items()
  *         for key, value in sequence_or_dict:             # <<<<<<<<<<<<<<
@@ -54753,7 +54795,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
     __pyx_t_6 = __pyx_v_sequence_or_dict; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
     __pyx_t_8 = NULL;
   } else {
-    __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_sequence_or_dict); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_v_sequence_or_dict); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext;
   }
@@ -54761,23 +54803,23 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
     if (!__pyx_t_8 && PyList_CheckExact(__pyx_t_6)) {
       if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_8 && PyTuple_CheckExact(__pyx_t_6)) {
       if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_1 = __pyx_t_8(__pyx_t_6);
       if (unlikely(!__pyx_t_1)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
@@ -54793,7 +54835,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -54806,16 +54848,16 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
       __Pyx_INCREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_10);
       #else
-      __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_9);
-      __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_10);
       #endif
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_11);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
@@ -54823,7 +54865,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
       __Pyx_GOTREF(__pyx_t_9);
       index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_10)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_10);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_12 = NULL;
       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
       goto __pyx_L7_unpacking_done;
@@ -54831,17 +54873,15 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
       __pyx_t_12 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_key);
-    __pyx_v_key = __pyx_t_9;
+    __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_9);
     __pyx_t_9 = 0;
-    __Pyx_XDECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_10;
+    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_10);
     __pyx_t_10 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2237
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2234
  *             sequence_or_dict = sequence_or_dict.items()
  *         for key, value in sequence_or_dict:
  *             _setAttributeValue(self._element, key, value)             # <<<<<<<<<<<<<<
@@ -54850,7 +54890,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_6update(struct __pyx_obj_4lxml_5
  */
     __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_2 = __pyx_f_4lxml_5etree__setAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree__setAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_value); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   }
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -54914,7 +54954,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_9pop(PyObject *__pyx_v_self, PyO
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "pop") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2239; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, used_pos_args, "pop") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
       goto __pyx_L5_argtuple_error;
@@ -54925,7 +54965,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_9pop(PyObject *__pyx_v_self, PyO
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("pop", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2239; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("pop", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2236; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v_default); __pyx_v_default = 0;
   __Pyx_AddTraceback("lxml.etree._Attrib.pop", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -54938,7 +54978,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_9pop(PyObject *__pyx_v_self, PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2239
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2236
  *             _setAttributeValue(self._element, key, value)
  * 
  *     def pop(self, key, *default):             # <<<<<<<<<<<<<<
@@ -54961,38 +55001,38 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("pop", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2240
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2237
  * 
  *     def pop(self, key, *default):
  *         if len(default) > 1:             # <<<<<<<<<<<<<<
  *             raise TypeError, u"pop expected at most 2 arguments, got %d" % (
  *                 len(default)+1)
  */
-  __pyx_t_1 = PyTuple_GET_SIZE(((PyObject *)__pyx_v_default)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_GET_SIZE(((PyObject *)__pyx_v_default)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_2 = ((__pyx_t_1 > 1) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2242
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2239
  *         if len(default) > 1:
  *             raise TypeError, u"pop expected at most 2 arguments, got %d" % (
  *                 len(default)+1)             # <<<<<<<<<<<<<<
  *         _assertValidNode(self._element)
  *         result = _getAttributeValue(self._element, key, None)
  */
-    __pyx_t_1 = PyTuple_GET_SIZE(((PyObject *)__pyx_v_default)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = PyInt_FromSsize_t((__pyx_t_1 + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_GET_SIZE(((PyObject *)__pyx_v_default)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyInt_FromSsize_t((__pyx_t_1 + 1)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_114), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_117), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2243
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2240
  *             raise TypeError, u"pop expected at most 2 arguments, got %d" % (
  *                 len(default)+1)
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55001,10 +55041,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2244
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2241
  *                 len(default)+1)
  *         _assertValidNode(self._element)
  *         result = _getAttributeValue(self._element, key, None)             # <<<<<<<<<<<<<<
@@ -55013,13 +55053,13 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_4), __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_4), __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __pyx_v_result = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2245
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2242
  *         _assertValidNode(self._element)
  *         result = _getAttributeValue(self._element, key, None)
  *         if result is None:             # <<<<<<<<<<<<<<
@@ -55030,7 +55070,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
   __pyx_t_6 = (__pyx_t_2 != 0);
   if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2246
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2243
  *         result = _getAttributeValue(self._element, key, None)
  *         if result is None:
  *             if not default:             # <<<<<<<<<<<<<<
@@ -55041,7 +55081,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
     __pyx_t_2 = ((!__pyx_t_6) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2247
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2244
  *         if result is None:
  *             if not default:
  *                 raise KeyError, key             # <<<<<<<<<<<<<<
@@ -55049,28 +55089,27 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
  *         else:
  */
       __Pyx_Raise(__pyx_builtin_KeyError, __pyx_v_key, 0, 0);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2248
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2245
  *             if not default:
  *                 raise KeyError, key
  *             result = default[0]             # <<<<<<<<<<<<<<
  *         else:
  *             _delAttribute(self._element, key)
  */
-    __pyx_t_3 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_default), 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetItemInt_Tuple(((PyObject *)__pyx_v_default), 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_result);
-    __pyx_v_result = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L4;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2250
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2247
  *             result = default[0]
  *         else:
  *             _delAttribute(self._element, key)             # <<<<<<<<<<<<<<
@@ -55079,12 +55118,12 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_8pop(struct __pyx_obj_4lxml_5etr
  */
     __pyx_t_3 = ((PyObject *)__pyx_v_self->_element);
     __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_5 = __pyx_f_4lxml_5etree__delAttribute(((struct LxmlElement *)__pyx_t_3), __pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__delAttribute(((struct LxmlElement *)__pyx_t_3), __pyx_v_key); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2251
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2248
  *         else:
  *             _delAttribute(self._element, key)
  *         return result             # <<<<<<<<<<<<<<
@@ -55121,7 +55160,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_11clear(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2253
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2250
  *         return result
  * 
  *     def clear(self):             # <<<<<<<<<<<<<<
@@ -55142,7 +55181,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_10clear(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("clear", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2254
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2251
  * 
  *     def clear(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55151,10 +55190,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_10clear(struct __pyx_obj_4lxml_5
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2255
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2252
  *     def clear(self):
  *         _assertValidNode(self._element)
  *         cdef xmlNode* c_node = self._element._c_node             # <<<<<<<<<<<<<<
@@ -55164,7 +55203,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_10clear(struct __pyx_obj_4lxml_5
   __pyx_t_3 = __pyx_v_self->_element->_c_node;
   __pyx_v_c_node = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2256
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2253
  *         _assertValidNode(self._element)
  *         cdef xmlNode* c_node = self._element._c_node
  *         while c_node.properties is not NULL:             # <<<<<<<<<<<<<<
@@ -55175,7 +55214,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_10clear(struct __pyx_obj_4lxml_5
     __pyx_t_4 = ((__pyx_v_c_node->properties != NULL) != 0);
     if (!__pyx_t_4) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2257
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2254
  *         cdef xmlNode* c_node = self._element._c_node
  *         while c_node.properties is not NULL:
  *             tree.xmlRemoveProp(c_node.properties)             # <<<<<<<<<<<<<<
@@ -55208,7 +55247,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_13__repr__(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2260
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2257
  * 
  *     # ACCESSORS
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -55227,7 +55266,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_12__repr__(struct __pyx_obj_4lxm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2261
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2258
  *     # ACCESSORS
  *     def __repr__(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55236,10 +55275,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_12__repr__(struct __pyx_obj_4lxm
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2262
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2259
  *     def __repr__(self):
  *         _assertValidNode(self._element)
  *         return repr(dict( _collectAttributes(self._element._c_node, 3) ))             # <<<<<<<<<<<<<<
@@ -55247,17 +55286,17 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_12__repr__(struct __pyx_obj_4lxm
  *     def __copy__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_t_3 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_3;
@@ -55288,7 +55327,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_15__copy__(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2264
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2261
  *         return repr(dict( _collectAttributes(self._element._c_node, 3) ))
  * 
  *     def __copy__(self):             # <<<<<<<<<<<<<<
@@ -55307,7 +55346,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_14__copy__(struct __pyx_obj_4lxm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__copy__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2265
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2262
  * 
  *     def __copy__(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55316,10 +55355,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_14__copy__(struct __pyx_obj_4lxm
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2266
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2263
  *     def __copy__(self):
  *         _assertValidNode(self._element)
  *         return dict(_collectAttributes(self._element._c_node, 3))             # <<<<<<<<<<<<<<
@@ -55327,14 +55366,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_14__copy__(struct __pyx_obj_4lxm
  *     def __deepcopy__(self, memo):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __pyx_r = __pyx_t_1;
@@ -55365,7 +55404,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_17__deepcopy__(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2268
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2265
  *         return dict(_collectAttributes(self._element._c_node, 3))
  * 
  *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
@@ -55384,7 +55423,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_16__deepcopy__(struct __pyx_obj_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__deepcopy__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2269
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2266
  * 
  *     def __deepcopy__(self, memo):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55393,10 +55432,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_16__deepcopy__(struct __pyx_obj_
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2270
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2267
  *     def __deepcopy__(self, memo):
  *         _assertValidNode(self._element)
  *         return dict(_collectAttributes(self._element._c_node, 3))             # <<<<<<<<<<<<<<
@@ -55404,14 +55443,14 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_16__deepcopy__(struct __pyx_obj_
  *     def __getitem__(self, key):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __pyx_r = __pyx_t_1;
@@ -55442,7 +55481,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_19__getitem__(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2272
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2269
  *         return dict(_collectAttributes(self._element._c_node, 3))
  * 
  *     def __getitem__(self, key):             # <<<<<<<<<<<<<<
@@ -55464,7 +55503,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_18__getitem__(struct __pyx_obj_4
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__getitem__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2273
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2270
  * 
  *     def __getitem__(self, key):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55473,10 +55512,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_18__getitem__(struct __pyx_obj_4
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2274
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2271
  *     def __getitem__(self, key):
  *         _assertValidNode(self._element)
  *         result = _getAttributeValue(self._element, key, None)             # <<<<<<<<<<<<<<
@@ -55485,13 +55524,13 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_18__getitem__(struct __pyx_obj_4
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_result = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2275
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2272
  *         _assertValidNode(self._element)
  *         result = _getAttributeValue(self._element, key, None)
  *         if result is None:             # <<<<<<<<<<<<<<
@@ -55502,7 +55541,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_18__getitem__(struct __pyx_obj_4
   __pyx_t_5 = (__pyx_t_4 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2276
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2273
  *         result = _getAttributeValue(self._element, key, None)
  *         if result is None:
  *             raise KeyError, key             # <<<<<<<<<<<<<<
@@ -55510,12 +55549,12 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_18__getitem__(struct __pyx_obj_4
  * 
  */
     __Pyx_Raise(__pyx_builtin_KeyError, __pyx_v_key, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2277
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2274
  *         if result is None:
  *             raise KeyError, key
  *         return result             # <<<<<<<<<<<<<<
@@ -55552,7 +55591,7 @@ static int __pyx_pw_4lxml_5etree_7_Attrib_21__bool__(PyObject *__pyx_v_self) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2279
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2276
  *         return result
  * 
  *     def __bool__(self):             # <<<<<<<<<<<<<<
@@ -55573,7 +55612,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__bool__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2280
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2277
  * 
  *     def __bool__(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55582,10 +55621,10 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2281
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2278
  *     def __bool__(self):
  *         _assertValidNode(self._element)
  *         cdef xmlAttr* c_attr = self._element._c_node.properties             # <<<<<<<<<<<<<<
@@ -55595,7 +55634,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
   __pyx_t_3 = __pyx_v_self->_element->_c_node->properties;
   __pyx_v_c_attr = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2282
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2279
  *         _assertValidNode(self._element)
  *         cdef xmlAttr* c_attr = self._element._c_node.properties
  *         while c_attr is not NULL:             # <<<<<<<<<<<<<<
@@ -55606,7 +55645,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
     __pyx_t_4 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_4) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2283
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2280
  *         cdef xmlAttr* c_attr = self._element._c_node.properties
  *         while c_attr is not NULL:
  *             if c_attr.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -55616,7 +55655,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
     __pyx_t_4 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2284
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2281
  *         while c_attr is not NULL:
  *             if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *                 return 1             # <<<<<<<<<<<<<<
@@ -55629,7 +55668,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2285
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2282
  *             if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *                 return 1
  *             c_attr = c_attr.next             # <<<<<<<<<<<<<<
@@ -55640,7 +55679,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_20__bool__(struct __pyx_obj_4lxml_5etr
     __pyx_v_c_attr = __pyx_t_3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2286
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2283
  *                 return 1
  *             c_attr = c_attr.next
  *         return 0             # <<<<<<<<<<<<<<
@@ -55672,7 +55711,7 @@ static Py_ssize_t __pyx_pw_4lxml_5etree_7_Attrib_23__len__(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2288
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2285
  *         return 0
  * 
  *     def __len__(self):             # <<<<<<<<<<<<<<
@@ -55694,7 +55733,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__len__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2289
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2286
  * 
  *     def __len__(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55703,10 +55742,10 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2290
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2287
  *     def __len__(self):
  *         _assertValidNode(self._element)
  *         cdef xmlAttr* c_attr = self._element._c_node.properties             # <<<<<<<<<<<<<<
@@ -55716,7 +55755,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
   __pyx_t_3 = __pyx_v_self->_element->_c_node->properties;
   __pyx_v_c_attr = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2291
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2288
  *         _assertValidNode(self._element)
  *         cdef xmlAttr* c_attr = self._element._c_node.properties
  *         cdef Py_ssize_t c = 0             # <<<<<<<<<<<<<<
@@ -55725,7 +55764,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
  */
   __pyx_v_c = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2292
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2289
  *         cdef xmlAttr* c_attr = self._element._c_node.properties
  *         cdef Py_ssize_t c = 0
  *         while c_attr is not NULL:             # <<<<<<<<<<<<<<
@@ -55736,7 +55775,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
     __pyx_t_4 = ((__pyx_v_c_attr != NULL) != 0);
     if (!__pyx_t_4) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2293
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2290
  *         cdef Py_ssize_t c = 0
  *         while c_attr is not NULL:
  *             if c_attr.type == tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -55746,7 +55785,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
     __pyx_t_4 = ((__pyx_v_c_attr->type == XML_ATTRIBUTE_NODE) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2294
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2291
  *         while c_attr is not NULL:
  *             if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *                 c += 1             # <<<<<<<<<<<<<<
@@ -55758,7 +55797,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2295
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2292
  *             if c_attr.type == tree.XML_ATTRIBUTE_NODE:
  *                 c += 1
  *             c_attr = c_attr.next             # <<<<<<<<<<<<<<
@@ -55769,7 +55808,7 @@ static Py_ssize_t __pyx_pf_4lxml_5etree_7_Attrib_22__len__(struct __pyx_obj_4lxm
     __pyx_v_c_attr = __pyx_t_3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2296
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2293
  *                 c += 1
  *             c_attr = c_attr.next
  *         return c             # <<<<<<<<<<<<<<
@@ -55805,7 +55844,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_25get(PyObject *__pyx_v_self, Py
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__key,&__pyx_n_s__default,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2298
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2295
  *         return c
  * 
  *     def get(self, key, default=None):             # <<<<<<<<<<<<<<
@@ -55834,7 +55873,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_25get(PyObject *__pyx_v_self, Py
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2298; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "get") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2295; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -55849,7 +55888,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_25get(PyObject *__pyx_v_self, Py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2298; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("get", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2295; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Attrib.get", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -55871,7 +55910,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_24get(struct __pyx_obj_4lxml_5et
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("get", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2299
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2296
  * 
  *     def get(self, key, default=None):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55880,10 +55919,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_24get(struct __pyx_obj_4lxml_5et
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2300
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2297
  *     def get(self, key, default=None):
  *         _assertValidNode(self._element)
  *         return _getAttributeValue(self._element, key, default)             # <<<<<<<<<<<<<<
@@ -55893,7 +55932,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_24get(struct __pyx_obj_4lxml_5et
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_default); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__getAttributeValue(((struct LxmlElement *)__pyx_t_1), __pyx_v_key, __pyx_v_default); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_3;
@@ -55924,7 +55963,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_27keys(PyObject *__pyx_v_self, C
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2302
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2299
  *         return _getAttributeValue(self._element, key, default)
  * 
  *     def keys(self):             # <<<<<<<<<<<<<<
@@ -55942,7 +55981,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_26keys(struct __pyx_obj_4lxml_5e
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("keys", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2303
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2300
  * 
  *     def keys(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -55951,10 +55990,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_26keys(struct __pyx_obj_4lxml_5e
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2304
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2301
  *     def keys(self):
  *         _assertValidNode(self._element)
  *         return _collectAttributes(self._element._c_node, 1)             # <<<<<<<<<<<<<<
@@ -55962,7 +56001,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_26keys(struct __pyx_obj_4lxml_5e
  *     def __iter__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -55991,7 +56030,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_29__iter__(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2306
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2303
  *         return _collectAttributes(self._element._c_node, 1)
  * 
  *     def __iter__(self):             # <<<<<<<<<<<<<<
@@ -56010,7 +56049,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_28__iter__(struct __pyx_obj_4lxm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__iter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2307
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2304
  * 
  *     def __iter__(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -56019,10 +56058,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_28__iter__(struct __pyx_obj_4lxm
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2308
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2305
  *     def __iter__(self):
  *         _assertValidNode(self._element)
  *         return iter(_collectAttributes(self._element._c_node, 1))             # <<<<<<<<<<<<<<
@@ -56030,9 +56069,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_28__iter__(struct __pyx_obj_4lxm
  *     def iterkeys(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_3;
@@ -56063,7 +56102,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_31iterkeys(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2310
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2307
  *         return iter(_collectAttributes(self._element._c_node, 1))
  * 
  *     def iterkeys(self):             # <<<<<<<<<<<<<<
@@ -56082,7 +56121,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_30iterkeys(struct __pyx_obj_4lxm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("iterkeys", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2311
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2308
  * 
  *     def iterkeys(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -56091,10 +56130,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_30iterkeys(struct __pyx_obj_4lxm
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2312
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2309
  *     def iterkeys(self):
  *         _assertValidNode(self._element)
  *         return iter(_collectAttributes(self._element._c_node, 1))             # <<<<<<<<<<<<<<
@@ -56102,9 +56141,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_30iterkeys(struct __pyx_obj_4lxm
  *     def values(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_3;
@@ -56135,7 +56174,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_33values(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2314
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2311
  *         return iter(_collectAttributes(self._element._c_node, 1))
  * 
  *     def values(self):             # <<<<<<<<<<<<<<
@@ -56153,7 +56192,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_32values(struct __pyx_obj_4lxml_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("values", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2315
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2312
  * 
  *     def values(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -56162,10 +56201,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_32values(struct __pyx_obj_4lxml_
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2316
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2313
  *     def values(self):
  *         _assertValidNode(self._element)
  *         return _collectAttributes(self._element._c_node, 2)             # <<<<<<<<<<<<<<
@@ -56173,7 +56212,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_32values(struct __pyx_obj_4lxml_
  *     def itervalues(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -56202,7 +56241,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_35itervalues(PyObject *__pyx_v_s
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2318
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2315
  *         return _collectAttributes(self._element._c_node, 2)
  * 
  *     def itervalues(self):             # <<<<<<<<<<<<<<
@@ -56221,7 +56260,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_34itervalues(struct __pyx_obj_4l
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("itervalues", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2319
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2316
  * 
  *     def itervalues(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -56230,10 +56269,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_34itervalues(struct __pyx_obj_4l
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2320
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2317
  *     def itervalues(self):
  *         _assertValidNode(self._element)
  *         return iter(_collectAttributes(self._element._c_node, 2))             # <<<<<<<<<<<<<<
@@ -56241,9 +56280,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_34itervalues(struct __pyx_obj_4l
  *     def items(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_3;
@@ -56274,7 +56313,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_37items(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2322
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2319
  *         return iter(_collectAttributes(self._element._c_node, 2))
  * 
  *     def items(self):             # <<<<<<<<<<<<<<
@@ -56292,7 +56331,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_36items(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("items", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2323
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2320
  * 
  *     def items(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -56301,10 +56340,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_36items(struct __pyx_obj_4lxml_5
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2324
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2321
  *     def items(self):
  *         _assertValidNode(self._element)
  *         return _collectAttributes(self._element._c_node, 3)             # <<<<<<<<<<<<<<
@@ -56312,7 +56351,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_36items(struct __pyx_obj_4lxml_5
  *     def iteritems(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -56341,7 +56380,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_39iteritems(PyObject *__pyx_v_se
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2326
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2323
  *         return _collectAttributes(self._element._c_node, 3)
  * 
  *     def iteritems(self):             # <<<<<<<<<<<<<<
@@ -56360,7 +56399,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_38iteritems(struct __pyx_obj_4lx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("iteritems", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2327
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2324
  * 
  *     def iteritems(self):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -56369,10 +56408,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_38iteritems(struct __pyx_obj_4lx
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2324; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2328
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2325
  *     def iteritems(self):
  *         _assertValidNode(self._element)
  *         return iter(_collectAttributes(self._element._c_node, 3))             # <<<<<<<<<<<<<<
@@ -56380,9 +56419,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_38iteritems(struct __pyx_obj_4lx
  *     def has_key(self, key):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__collectAttributes(__pyx_v_self->_element->_c_node, 3)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_3;
@@ -56413,7 +56452,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_41has_key(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2330
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2327
  *         return iter(_collectAttributes(self._element._c_node, 3))
  * 
  *     def has_key(self, key):             # <<<<<<<<<<<<<<
@@ -56432,7 +56471,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_40has_key(struct __pyx_obj_4lxml
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("has_key", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2331
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2328
  * 
  *     def has_key(self, key):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -56441,10 +56480,10 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_40has_key(struct __pyx_obj_4lxml
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2332
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2329
  *     def has_key(self, key):
  *         _assertValidNode(self._element)
  *         return key in self             # <<<<<<<<<<<<<<
@@ -56452,8 +56491,8 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_40has_key(struct __pyx_obj_4lxml
  *     def __contains__(self, key):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_v_key, ((PyObject *)__pyx_v_self), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_v_key, ((PyObject *)__pyx_v_self), Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -56482,7 +56521,7 @@ static int __pyx_pw_4lxml_5etree_7_Attrib_43__contains__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2334
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2331
  *         return key in self
  * 
  *     def __contains__(self, key):             # <<<<<<<<<<<<<<
@@ -56512,7 +56551,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__contains__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2335
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2332
  * 
  *     def __contains__(self, key):
  *         _assertValidNode(self._element)             # <<<<<<<<<<<<<<
@@ -56521,17 +56560,17 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_element);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_t_1)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2337
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2334
  *         _assertValidNode(self._element)
  *         cdef xmlNode* c_node
  *         ns, tag = _getNsTag(key)             # <<<<<<<<<<<<<<
  *         c_node = self._element._c_node
  *         c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_key)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_key)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (likely(PyTuple_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -56543,7 +56582,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
@@ -56551,18 +56590,18 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_4);
     #else
-    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else if (1) {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
@@ -56570,7 +56609,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
     __Pyx_GOTREF(__pyx_t_3);
     index = 1; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_4);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = NULL;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L4_unpacking_done;
@@ -56578,7 +56617,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_6 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
   __pyx_v_ns = __pyx_t_3;
@@ -56586,7 +56625,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
   __pyx_v_tag = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2338
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2335
  *         cdef xmlNode* c_node
  *         ns, tag = _getNsTag(key)
  *         c_node = self._element._c_node             # <<<<<<<<<<<<<<
@@ -56596,7 +56635,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
   __pyx_t_7 = __pyx_v_self->_element->_c_node;
   __pyx_v_c_node = __pyx_t_7;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2339
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2336
  *         ns, tag = _getNsTag(key)
  *         c_node = self._element._c_node
  *         c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)             # <<<<<<<<<<<<<<
@@ -56611,7 +56650,7 @@ static int __pyx_pf_4lxml_5etree_7_Attrib_42__contains__(struct __pyx_obj_4lxml_
   }
   __pyx_v_c_href = __pyx_t_8;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2340
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2337
  *         c_node = self._element._c_node
  *         c_href = <const_xmlChar*>NULL if ns is None else _xcstr(ns)
  *         return 1 if tree.xmlHasNsProp(c_node, _xcstr(tag), c_href) else 0             # <<<<<<<<<<<<<<
@@ -56653,7 +56692,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7_Attrib_45__richcmp__(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2342
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2339
  *         return 1 if tree.xmlHasNsProp(c_node, _xcstr(tag), c_href) else 0
  * 
  *     def __richcmp__(one, other, int op):             # <<<<<<<<<<<<<<
@@ -56680,7 +56719,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
   __Pyx_INCREF(__pyx_v_one);
   __Pyx_INCREF(__pyx_v_other);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2343
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2340
  * 
  *     def __richcmp__(one, other, int op):
  *         try:             # <<<<<<<<<<<<<<
@@ -56694,7 +56733,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2344
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2341
  *     def __richcmp__(one, other, int op):
  *         try:
  *             if not isinstance(one, dict):             # <<<<<<<<<<<<<<
@@ -56705,29 +56744,28 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
       __pyx_t_5 = ((!(__pyx_t_4 != 0)) != 0);
       if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2345
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2342
  *         try:
  *             if not isinstance(one, dict):
  *                 one = dict(one)             # <<<<<<<<<<<<<<
  *             if not isinstance(other, dict):
  *                 other = dict(other)
  */
-        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __Pyx_INCREF(__pyx_v_one);
         PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_one);
         __Pyx_GIVEREF(__pyx_v_one);
-        __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2342; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-        __Pyx_DECREF(__pyx_v_one);
-        __pyx_v_one = __pyx_t_7;
+        __Pyx_DECREF_SET(__pyx_v_one, __pyx_t_7);
         __pyx_t_7 = 0;
         goto __pyx_L11;
       }
       __pyx_L11:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2346
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2343
  *             if not isinstance(one, dict):
  *                 one = dict(one)
  *             if not isinstance(other, dict):             # <<<<<<<<<<<<<<
@@ -56738,23 +56776,22 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
       __pyx_t_4 = ((!(__pyx_t_5 != 0)) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2347
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2344
  *                 one = dict(one)
  *             if not isinstance(other, dict):
  *                 other = dict(other)             # <<<<<<<<<<<<<<
  *         except (TypeError, ValueError):
  *             return NotImplemented
  */
-        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2347; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2344; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_INCREF(__pyx_v_other);
         PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_other);
         __Pyx_GIVEREF(__pyx_v_other);
-        __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2347; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2344; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-        __Pyx_DECREF(__pyx_v_other);
-        __pyx_v_other = __pyx_t_6;
+        __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_6);
         __pyx_t_6 = 0;
         goto __pyx_L12;
       }
@@ -56768,7 +56805,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2348
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2345
  *             if not isinstance(other, dict):
  *                 other = dict(other)
  *         except (TypeError, ValueError):             # <<<<<<<<<<<<<<
@@ -56778,12 +56815,12 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
     __pyx_t_8 = PyErr_ExceptionMatches(__pyx_builtin_TypeError) || PyErr_ExceptionMatches(__pyx_builtin_ValueError);
     if (__pyx_t_8) {
       __Pyx_AddTraceback("lxml.etree._Attrib.__richcmp__", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2348; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2345; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_9);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2349
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2346
  *                 other = dict(other)
  *         except (TypeError, ValueError):
  *             return NotImplemented             # <<<<<<<<<<<<<<
@@ -56822,7 +56859,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
     __pyx_L10_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2350
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2347
  *         except (TypeError, ValueError):
  *             return NotImplemented
  *         return python.PyObject_RichCompare(one, other, op)             # <<<<<<<<<<<<<<
@@ -56830,7 +56867,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_Attrib_44__richcmp__(PyObject *__pyx_v_
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_9 = PyObject_RichCompare(__pyx_v_one, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyObject_RichCompare(__pyx_v_one, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __pyx_r = __pyx_t_9;
   __pyx_t_9 = 0;
@@ -56863,7 +56900,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15_AttribIterator_1__iter__(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2362
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2359
  *     cdef xmlAttr* _c_attr
  *     cdef int _keysvalues # 1 - keys, 2 - values, 3 - items (key, value)
  *     def __iter__(self):             # <<<<<<<<<<<<<<
@@ -56876,7 +56913,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator___iter__(struct __pyx_o
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__iter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2363
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2360
  *     cdef int _keysvalues # 1 - keys, 2 - values, 3 - items (key, value)
  *     def __iter__(self):
  *         return self             # <<<<<<<<<<<<<<
@@ -56906,7 +56943,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15_AttribIterator_3__next__(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2365
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2362
  *         return self
  * 
  *     def __next__(self):             # <<<<<<<<<<<<<<
@@ -56930,7 +56967,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__next__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2367
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2364
  *     def __next__(self):
  *         cdef xmlAttr* c_attr
  *         if self._node is None:             # <<<<<<<<<<<<<<
@@ -56941,7 +56978,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2368
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2365
  *         cdef xmlAttr* c_attr
  *         if self._node is None:
  *             raise StopIteration             # <<<<<<<<<<<<<<
@@ -56949,12 +56986,12 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *         while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:
  */
     __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2369
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2366
  *         if self._node is None:
  *             raise StopIteration
  *         c_attr = self._c_attr             # <<<<<<<<<<<<<<
@@ -56964,7 +57001,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
   __pyx_t_3 = __pyx_v_self->_c_attr;
   __pyx_v_c_attr = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2370
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2367
  *             raise StopIteration
  *         c_attr = self._c_attr
  *         while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:             # <<<<<<<<<<<<<<
@@ -56981,7 +57018,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
     }
     if (!__pyx_t_4) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2371
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2368
  *         c_attr = self._c_attr
  *         while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:
  *             c_attr = c_attr.next             # <<<<<<<<<<<<<<
@@ -56992,7 +57029,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
     __pyx_v_c_attr = __pyx_t_3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2372
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2369
  *         while c_attr is not NULL and c_attr.type != tree.XML_ATTRIBUTE_NODE:
  *             c_attr = c_attr.next
  *         if c_attr is NULL:             # <<<<<<<<<<<<<<
@@ -57002,7 +57039,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
   __pyx_t_4 = ((__pyx_v_c_attr == NULL) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2373
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2370
  *             c_attr = c_attr.next
  *         if c_attr is NULL:
  *             self._node = None             # <<<<<<<<<<<<<<
@@ -57015,7 +57052,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_node));
     __pyx_v_self->_node = ((struct LxmlElement *)Py_None);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2374
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2371
  *         if c_attr is NULL:
  *             self._node = None
  *             raise StopIteration             # <<<<<<<<<<<<<<
@@ -57023,12 +57060,12 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *         self._c_attr = c_attr.next
  */
     __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L6;
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2376
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2373
  *             raise StopIteration
  * 
  *         self._c_attr = c_attr.next             # <<<<<<<<<<<<<<
@@ -57038,7 +57075,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
   __pyx_t_3 = __pyx_v_c_attr->next;
   __pyx_v_self->_c_attr = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2379
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2376
  *         if self._keysvalues == 1:
  *             return _namespacedName(<xmlNode*>c_attr)
  *         elif self._keysvalues == 2:             # <<<<<<<<<<<<<<
@@ -57047,7 +57084,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  */
   switch (__pyx_v_self->_keysvalues) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2377
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2374
  * 
  *         self._c_attr = c_attr.next
  *         if self._keysvalues == 1:             # <<<<<<<<<<<<<<
@@ -57056,7 +57093,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  */
     case 1:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2378
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2375
  *         self._c_attr = c_attr.next
  *         if self._keysvalues == 1:
  *             return _namespacedName(<xmlNode*>c_attr)             # <<<<<<<<<<<<<<
@@ -57064,14 +57101,14 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *             return _attributeValue(self._node._c_node, c_attr)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_r = __pyx_t_5;
     __pyx_t_5 = 0;
     goto __pyx_L0;
     break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2379
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2376
  *         if self._keysvalues == 1:
  *             return _namespacedName(<xmlNode*>c_attr)
  *         elif self._keysvalues == 2:             # <<<<<<<<<<<<<<
@@ -57080,7 +57117,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  */
     case 2:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2380
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2377
  *             return _namespacedName(<xmlNode*>c_attr)
  *         elif self._keysvalues == 2:
  *             return _attributeValue(self._node._c_node, c_attr)             # <<<<<<<<<<<<<<
@@ -57088,7 +57125,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  *             return (_namespacedName(<xmlNode*>c_attr),
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_self->_node->_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_self->_node->_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_r = __pyx_t_5;
     __pyx_t_5 = 0;
@@ -57096,7 +57133,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
     break;
     default:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2382
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2379
  *             return _attributeValue(self._node._c_node, c_attr)
  *         else:
  *             return (_namespacedName(<xmlNode*>c_attr),             # <<<<<<<<<<<<<<
@@ -57104,19 +57141,19 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
  * 
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__namespacedName(((xmlNode *)__pyx_v_c_attr)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2383
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2380
  *         else:
  *             return (_namespacedName(<xmlNode*>c_attr),
  *                     _attributeValue(self._node._c_node, c_attr))             # <<<<<<<<<<<<<<
  * 
  * cdef object _attributeIteratorFactory(_Element element, int keysvalues):
  */
-    __pyx_t_6 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_self->_node->_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_5etree__attributeValue(__pyx_v_self->_node->_c_node, __pyx_v_c_attr); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
     __Pyx_GIVEREF(__pyx_t_5);
@@ -57144,7 +57181,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_AttribIterator_2__next__(struct __pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2385
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2382
  *                     _attributeValue(self._node._c_node, c_attr))
  * 
  * cdef object _attributeIteratorFactory(_Element element, int keysvalues):             # <<<<<<<<<<<<<<
@@ -57164,7 +57201,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeIteratorFactory(struct LxmlEleme
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_attributeIteratorFactory", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2387
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2384
  * cdef object _attributeIteratorFactory(_Element element, int keysvalues):
  *     cdef _AttribIterator attribs
  *     if element._c_node.properties is NULL:             # <<<<<<<<<<<<<<
@@ -57174,7 +57211,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeIteratorFactory(struct LxmlEleme
   __pyx_t_1 = ((__pyx_v_element->_c_node->properties == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2388
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2385
  *     cdef _AttribIterator attribs
  *     if element._c_node.properties is NULL:
  *         return ITER_EMPTY             # <<<<<<<<<<<<<<
@@ -57189,19 +57226,19 @@ static PyObject *__pyx_f_4lxml_5etree__attributeIteratorFactory(struct LxmlEleme
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2389
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2386
  *     if element._c_node.properties is NULL:
  *         return ITER_EMPTY
  *     attribs = _AttribIterator()             # <<<<<<<<<<<<<<
  *     attribs._node = element
  *     attribs._c_attr = element._c_node.properties
  */
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__AttribIterator)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__AttribIterator)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_v_attribs = ((struct __pyx_obj_4lxml_5etree__AttribIterator *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2390
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2387
  *         return ITER_EMPTY
  *     attribs = _AttribIterator()
  *     attribs._node = element             # <<<<<<<<<<<<<<
@@ -57214,7 +57251,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeIteratorFactory(struct LxmlEleme
   __Pyx_DECREF(((PyObject *)__pyx_v_attribs->_node));
   __pyx_v_attribs->_node = __pyx_v_element;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2391
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2388
  *     attribs = _AttribIterator()
  *     attribs._node = element
  *     attribs._c_attr = element._c_node.properties             # <<<<<<<<<<<<<<
@@ -57224,7 +57261,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeIteratorFactory(struct LxmlEleme
   __pyx_t_3 = __pyx_v_element->_c_node->properties;
   __pyx_v_attribs->_c_attr = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2392
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2389
  *     attribs._node = element
  *     attribs._c_attr = element._c_node.properties
  *     attribs._keysvalues = keysvalues             # <<<<<<<<<<<<<<
@@ -57233,7 +57270,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeIteratorFactory(struct LxmlEleme
  */
   __pyx_v_attribs->_keysvalues = __pyx_v_keysvalues;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2393
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2390
  *     attribs._c_attr = element._c_node.properties
  *     attribs._keysvalues = keysvalues
  *     return attribs             # <<<<<<<<<<<<<<
@@ -57258,7 +57295,7 @@ static PyObject *__pyx_f_4lxml_5etree__attributeIteratorFactory(struct LxmlEleme
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2405
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2402
  *     cdef char* _href
  *     cdef char* _name
  *     cdef _initTagMatch(self, tag):             # <<<<<<<<<<<<<<
@@ -57278,7 +57315,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_initTagMatch", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2406
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2403
  *     cdef char* _name
  *     cdef _initTagMatch(self, tag):
  *         self._href = NULL             # <<<<<<<<<<<<<<
@@ -57287,7 +57324,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  */
   __pyx_v_self->_href = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2407
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2404
  *     cdef _initTagMatch(self, tag):
  *         self._href = NULL
  *         self._name = NULL             # <<<<<<<<<<<<<<
@@ -57296,7 +57333,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  */
   __pyx_v_self->_name = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2408
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2405
  *         self._href = NULL
  *         self._name = NULL
  *         if tag is None:             # <<<<<<<<<<<<<<
@@ -57307,7 +57344,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2409
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2406
  *         self._name = NULL
  *         if tag is None:
  *             self._node_type = 0             # <<<<<<<<<<<<<<
@@ -57318,21 +57355,21 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2410
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2407
  *         if tag is None:
  *             self._node_type = 0
  *         elif tag is Comment:             # <<<<<<<<<<<<<<
  *             self._node_type = tree.XML_COMMENT_NODE
  *         elif tag is ProcessingInstruction:
  */
-  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_t_2 = (__pyx_v_tag == __pyx_t_3);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2411
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2408
  *             self._node_type = 0
  *         elif tag is Comment:
  *             self._node_type = tree.XML_COMMENT_NODE             # <<<<<<<<<<<<<<
@@ -57343,21 +57380,21 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2412
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2409
  *         elif tag is Comment:
  *             self._node_type = tree.XML_COMMENT_NODE
  *         elif tag is ProcessingInstruction:             # <<<<<<<<<<<<<<
  *             self._node_type = tree.XML_PI_NODE
  *         elif tag is Entity:
  */
-  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_81); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2412; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_84); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_t_1 = (__pyx_v_tag == __pyx_t_3);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2413
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2410
  *             self._node_type = tree.XML_COMMENT_NODE
  *         elif tag is ProcessingInstruction:
  *             self._node_type = tree.XML_PI_NODE             # <<<<<<<<<<<<<<
@@ -57368,21 +57405,21 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2414
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2411
  *         elif tag is ProcessingInstruction:
  *             self._node_type = tree.XML_PI_NODE
  *         elif tag is Entity:             # <<<<<<<<<<<<<<
  *             self._node_type = tree.XML_ENTITY_REF_NODE
  *         elif tag is Element:
  */
-  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2411; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_t_2 = (__pyx_v_tag == __pyx_t_3);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2415
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2412
  *             self._node_type = tree.XML_PI_NODE
  *         elif tag is Entity:
  *             self._node_type = tree.XML_ENTITY_REF_NODE             # <<<<<<<<<<<<<<
@@ -57393,21 +57430,21 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2416
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2413
  *         elif tag is Entity:
  *             self._node_type = tree.XML_ENTITY_REF_NODE
  *         elif tag is Element:             # <<<<<<<<<<<<<<
  *             self._node_type = tree.XML_ELEMENT_NODE
  *         else:
  */
-  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_t_1 = (__pyx_v_tag == __pyx_t_3);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2417
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2414
  *             self._node_type = tree.XML_ENTITY_REF_NODE
  *         elif tag is Element:
  *             self._node_type = tree.XML_ELEMENT_NODE             # <<<<<<<<<<<<<<
@@ -57419,7 +57456,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2419
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2416
  *             self._node_type = tree.XML_ELEMENT_NODE
  *         else:
  *             self._node_type = tree.XML_ELEMENT_NODE             # <<<<<<<<<<<<<<
@@ -57428,14 +57465,14 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
  */
     __pyx_v_self->_node_type = XML_ELEMENT_NODE;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2420
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2417
  *         else:
  *             self._node_type = tree.XML_ELEMENT_NODE
  *             self._pystrings = _getNsTag(tag)             # <<<<<<<<<<<<<<
  *             if self._pystrings[0] is not None:
  *                 self._href = _cstr(self._pystrings[0])
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2417; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_self->_pystrings);
@@ -57443,28 +57480,28 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
     __pyx_v_self->_pystrings = __pyx_t_3;
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2421
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2418
  *             self._node_type = tree.XML_ELEMENT_NODE
  *             self._pystrings = _getNsTag(tag)
  *             if self._pystrings[0] is not None:             # <<<<<<<<<<<<<<
  *                 self._href = _cstr(self._pystrings[0])
  *             self._name = _cstr(self._pystrings[1])
  */
-    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2421; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_2 = (__pyx_t_3 != Py_None);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2422
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2419
  *             self._pystrings = _getNsTag(tag)
  *             if self._pystrings[0] is not None:
  *                 self._href = _cstr(self._pystrings[0])             # <<<<<<<<<<<<<<
  *             self._name = _cstr(self._pystrings[1])
  *             if self._name[0] == c'*' and self._name[1] == c'\0':
  */
-      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2422; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2419; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_v_self->_href = PyBytes_AS_STRING(__pyx_t_3);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -57472,19 +57509,19 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2423
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2420
  *             if self._pystrings[0] is not None:
  *                 self._href = _cstr(self._pystrings[0])
  *             self._name = _cstr(self._pystrings[1])             # <<<<<<<<<<<<<<
  *             if self._name[0] == c'*' and self._name[1] == c'\0':
  *                 self._name = NULL
  */
-    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_self->_pystrings, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2420; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_self->_name = PyBytes_AS_STRING(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2424
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2421
  *                 self._href = _cstr(self._pystrings[0])
  *             self._name = _cstr(self._pystrings[1])
  *             if self._name[0] == c'*' and self._name[1] == c'\0':             # <<<<<<<<<<<<<<
@@ -57500,7 +57537,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch(struct
     }
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2425
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2422
  *             self._name = _cstr(self._pystrings[1])
  *             if self._name[0] == c'*' and self._name[1] == c'\0':
  *                 self._name = NULL             # <<<<<<<<<<<<<<
@@ -57537,7 +57574,7 @@ static PyObject *__pyx_pw_4lxml_5etree_16_ElementIterator_1__iter__(PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2435
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2432
  *     cdef _Element _node
  *     cdef _node_to_node_function _next_element
  *     def __iter__(self):             # <<<<<<<<<<<<<<
@@ -57550,7 +57587,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator___iter__(struct LxmlEl
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__iter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2436
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2433
  *     cdef _node_to_node_function _next_element
  *     def __iter__(self):
  *         return self             # <<<<<<<<<<<<<<
@@ -57569,7 +57606,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator___iter__(struct LxmlEl
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2438
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2435
  *         return self
  * 
  *     cdef void _storeNext(self, _Element node):             # <<<<<<<<<<<<<<
@@ -57592,7 +57629,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_storeNext", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2440
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2437
  *     cdef void _storeNext(self, _Element node):
  *         cdef xmlNode* c_node
  *         c_node = self._next_element(node._c_node)             # <<<<<<<<<<<<<<
@@ -57601,7 +57638,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
  */
   __pyx_v_c_node = __pyx_v_self->_next_element(__pyx_v_node->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2441
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2438
  *         cdef xmlNode* c_node
  *         c_node = self._next_element(node._c_node)
  *         while c_node is not NULL and \             # <<<<<<<<<<<<<<
@@ -57612,7 +57649,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
     __pyx_t_1 = ((__pyx_v_c_node != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2442
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2439
  *         c_node = self._next_element(node._c_node)
  *         while c_node is not NULL and \
  *                   self._node_type != 0 and \             # <<<<<<<<<<<<<<
@@ -57622,7 +57659,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
       __pyx_t_2 = ((__pyx_v_self->__pyx_base._node_type != 0) != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2443
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2440
  *         while c_node is not NULL and \
  *                   self._node_type != 0 and \
  *                   (<tree.xmlElementType>self._node_type != c_node.type or             # <<<<<<<<<<<<<<
@@ -57632,7 +57669,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
         __pyx_t_3 = ((((xmlElementType)__pyx_v_self->__pyx_base._node_type) != __pyx_v_c_node->type) != 0);
         if (!__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2444
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2441
  *                   self._node_type != 0 and \
  *                   (<tree.xmlElementType>self._node_type != c_node.type or
  *                    not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)):             # <<<<<<<<<<<<<<
@@ -57654,7 +57691,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
     }
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2445
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2442
  *                   (<tree.xmlElementType>self._node_type != c_node.type or
  *                    not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)):
  *             c_node = self._next_element(c_node)             # <<<<<<<<<<<<<<
@@ -57664,7 +57701,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
     __pyx_v_c_node = __pyx_v_self->_next_element(__pyx_v_c_node);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2446
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2443
  *                    not _tagMatches(c_node, <const_xmlChar*>self._href, <const_xmlChar*>self._name)):
  *             c_node = self._next_element(c_node)
  *         if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -57674,7 +57711,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
   __pyx_t_2 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2447
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2444
  *             c_node = self._next_element(c_node)
  *         if c_node is NULL:
  *             self._node = None             # <<<<<<<<<<<<<<
@@ -57690,7 +57727,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2450
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2447
  *         else:
  *             # Python ref:
  *             self._node = _elementFactory(node._doc, c_node)             # <<<<<<<<<<<<<<
@@ -57699,7 +57736,7 @@ static void __pyx_f_4lxml_5etree_16_ElementIterator__storeNext(struct LxmlElemen
  */
     __pyx_t_6 = ((PyObject *)__pyx_v_node->_doc);
     __Pyx_INCREF(__pyx_t_6);
-    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __Pyx_GIVEREF(__pyx_t_7);
@@ -57730,7 +57767,7 @@ static PyObject *__pyx_pw_4lxml_5etree_16_ElementIterator_3__next__(PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2452
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2449
  *             self._node = _elementFactory(node._doc, c_node)
  * 
  *     def __next__(self):             # <<<<<<<<<<<<<<
@@ -57750,7 +57787,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__next__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2455
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2452
  *         cdef xmlNode* c_node
  *         cdef _Element current_node
  *         if self._node is None:             # <<<<<<<<<<<<<<
@@ -57761,7 +57798,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2456
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2453
  *         cdef _Element current_node
  *         if self._node is None:
  *             raise StopIteration             # <<<<<<<<<<<<<<
@@ -57769,12 +57806,12 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
  *         current_node = self._node
  */
     __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2458
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2455
  *             raise StopIteration
  *         # Python ref:
  *         current_node = self._node             # <<<<<<<<<<<<<<
@@ -57786,7 +57823,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
   __pyx_v_current_node = ((struct LxmlElement *)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2459
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2456
  *         # Python ref:
  *         current_node = self._node
  *         self._storeNext(current_node)             # <<<<<<<<<<<<<<
@@ -57795,7 +57832,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16_ElementIterator_2__next__(struct LxmlE
  */
   ((struct __pyx_vtabstruct_4lxml_5etree__ElementIterator *)__pyx_v_self->__pyx_base.__pyx_vtab)->_storeNext(__pyx_v_self, __pyx_v_current_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2460
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2457
  *         current_node = self._node
  *         self._storeNext(current_node)
  *         return current_node             # <<<<<<<<<<<<<<
@@ -57848,7 +57885,7 @@ static int __pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(PyObject *__pyx_v
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2472; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -57859,7 +57896,7 @@ static int __pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(PyObject *__pyx_v
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2475; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2472; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._MultiTagMatcher.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -57870,7 +57907,7 @@ static int __pyx_pw_4lxml_5etree_16_MultiTagMatcher_1__cinit__(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2475
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2472
  *     cdef int _node_types
  * 
  *     def __cinit__(self, tags):             # <<<<<<<<<<<<<<
@@ -57887,7 +57924,7 @@ static int __pyx_pf_4lxml_5etree_16_MultiTagMatcher___cinit__(struct __pyx_obj_4
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2476
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2473
  * 
  *     def __cinit__(self, tags):
  *         self._cached_tags = NULL             # <<<<<<<<<<<<<<
@@ -57896,7 +57933,7 @@ static int __pyx_pf_4lxml_5etree_16_MultiTagMatcher___cinit__(struct __pyx_obj_4
  */
   __pyx_v_self->_cached_tags = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2477
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2474
  *     def __cinit__(self, tags):
  *         self._cached_tags = NULL
  *         self._cached_size = 0             # <<<<<<<<<<<<<<
@@ -57905,7 +57942,7 @@ static int __pyx_pf_4lxml_5etree_16_MultiTagMatcher___cinit__(struct __pyx_obj_4
  */
   __pyx_v_self->_cached_size = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2478
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2475
  *         self._cached_tags = NULL
  *         self._cached_size = 0
  *         self._tag_count = 0             # <<<<<<<<<<<<<<
@@ -57914,7 +57951,7 @@ static int __pyx_pf_4lxml_5etree_16_MultiTagMatcher___cinit__(struct __pyx_obj_4
  */
   __pyx_v_self->_tag_count = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2479
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2476
  *         self._cached_size = 0
  *         self._tag_count = 0
  *         self._node_types = 0             # <<<<<<<<<<<<<<
@@ -57923,14 +57960,14 @@ static int __pyx_pf_4lxml_5etree_16_MultiTagMatcher___cinit__(struct __pyx_obj_4
  */
   __pyx_v_self->_node_types = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2480
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2477
  *         self._tag_count = 0
  *         self._node_types = 0
  *         self._py_tags = []             # <<<<<<<<<<<<<<
  *         self.initTagMatch(tags)
  * 
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
   __Pyx_GOTREF(__pyx_v_self->_py_tags);
@@ -57938,14 +57975,14 @@ static int __pyx_pf_4lxml_5etree_16_MultiTagMatcher___cinit__(struct __pyx_obj_4
   __pyx_v_self->_py_tags = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2481
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2478
  *         self._node_types = 0
  *         self._py_tags = []
  *         self.initTagMatch(tags)             # <<<<<<<<<<<<<<
  * 
  *     def __dealloc__(self):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(__pyx_v_self, __pyx_v_tags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(__pyx_v_self, __pyx_v_tags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -57969,7 +58006,7 @@ static void __pyx_pw_4lxml_5etree_16_MultiTagMatcher_3__dealloc__(PyObject *__py
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2483
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2480
  *         self.initTagMatch(tags)
  * 
  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
@@ -57981,7 +58018,7 @@ static void __pyx_pf_4lxml_5etree_16_MultiTagMatcher_2__dealloc__(struct __pyx_o
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__dealloc__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2484
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2481
  * 
  *     def __dealloc__(self):
  *         self._clear()             # <<<<<<<<<<<<<<
@@ -57993,7 +58030,7 @@ static void __pyx_pf_4lxml_5etree_16_MultiTagMatcher_2__dealloc__(struct __pyx_o
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2486
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2483
  *         self._clear()
  * 
  *     cdef bint rejectsAll(self):             # <<<<<<<<<<<<<<
@@ -58009,7 +58046,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll(struct __pyx_obj_4
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("rejectsAll", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2487
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2484
  * 
  *     cdef bint rejectsAll(self):
  *         return not self._tag_count and not self._node_types             # <<<<<<<<<<<<<<
@@ -58032,7 +58069,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll(struct __pyx_obj_4
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2489
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2486
  *         return not self._tag_count and not self._node_types
  * 
  *     cdef bint rejectsAllAttributes(self):             # <<<<<<<<<<<<<<
@@ -58045,7 +58082,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAllAttributes(struct _
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("rejectsAllAttributes", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2490
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2487
  * 
  *     cdef bint rejectsAllAttributes(self):
  *         return not self._tag_count             # <<<<<<<<<<<<<<
@@ -58061,7 +58098,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAllAttributes(struct _
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2492
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2489
  *         return not self._tag_count
  * 
  *     cdef bint matchesType(self, int node_type):             # <<<<<<<<<<<<<<
@@ -58076,7 +58113,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(struct __pyx_obj_
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("matchesType", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2493
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2490
  * 
  *     cdef bint matchesType(self, int node_type):
  *         if node_type == tree.XML_ELEMENT_NODE and self._tag_count:             # <<<<<<<<<<<<<<
@@ -58091,7 +58128,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(struct __pyx_obj_
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2494
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2491
  *     cdef bint matchesType(self, int node_type):
  *         if node_type == tree.XML_ELEMENT_NODE and self._tag_count:
  *             return True             # <<<<<<<<<<<<<<
@@ -58104,7 +58141,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(struct __pyx_obj_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2495
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2492
  *         if node_type == tree.XML_ELEMENT_NODE and self._tag_count:
  *             return True
  *         return self._node_types & (1 << node_type)             # <<<<<<<<<<<<<<
@@ -58120,7 +58157,7 @@ static int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesType(struct __pyx_obj_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2497
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2494
  *         return self._node_types & (1 << node_type)
  * 
  *     cdef void _clear(self):             # <<<<<<<<<<<<<<
@@ -58137,7 +58174,7 @@ static void __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(struct __pyx_obj_4lxm
   size_t __pyx_t_3;
   __Pyx_RefNannySetupContext("_clear", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2499
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2496
  *     cdef void _clear(self):
  *         cdef size_t i, count
  *         count = self._tag_count             # <<<<<<<<<<<<<<
@@ -58147,7 +58184,7 @@ static void __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(struct __pyx_obj_4lxm
   __pyx_t_1 = __pyx_v_self->_tag_count;
   __pyx_v_count = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2500
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2497
  *         cdef size_t i, count
  *         count = self._tag_count
  *         self._tag_count = 0             # <<<<<<<<<<<<<<
@@ -58156,7 +58193,7 @@ static void __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(struct __pyx_obj_4lxm
  */
   __pyx_v_self->_tag_count = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2501
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2498
  *         count = self._tag_count
  *         self._tag_count = 0
  *         if self._cached_tags:             # <<<<<<<<<<<<<<
@@ -58166,7 +58203,7 @@ static void __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(struct __pyx_obj_4lxm
   __pyx_t_2 = (__pyx_v_self->_cached_tags != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2502
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2499
  *         self._tag_count = 0
  *         if self._cached_tags:
  *             for i in xrange(count):             # <<<<<<<<<<<<<<
@@ -58177,7 +58214,7 @@ static void __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(struct __pyx_obj_4lxm
     for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_1; __pyx_t_3+=1) {
       __pyx_v_i = __pyx_t_3;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2503
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2500
  *         if self._cached_tags:
  *             for i in xrange(count):
  *                 cpython.ref.Py_XDECREF(self._cached_tags[i].href)             # <<<<<<<<<<<<<<
@@ -58187,7 +58224,7 @@ static void __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(struct __pyx_obj_4lxm
       Py_XDECREF((__pyx_v_self->_cached_tags[__pyx_v_i]).href);
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2504
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2501
  *             for i in xrange(count):
  *                 cpython.ref.Py_XDECREF(self._cached_tags[i].href)
  *             cpython.mem.PyMem_Free(self._cached_tags)             # <<<<<<<<<<<<<<
@@ -58196,7 +58233,7 @@ static void __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(struct __pyx_obj_4lxm
  */
     PyMem_Free(__pyx_v_self->_cached_tags);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2505
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2502
  *                 cpython.ref.Py_XDECREF(self._cached_tags[i].href)
  *             cpython.mem.PyMem_Free(self._cached_tags)
  *             self._cached_tags = NULL             # <<<<<<<<<<<<<<
@@ -58211,7 +58248,7 @@ static void __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(struct __pyx_obj_4lxm
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2507
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2504
  *             self._cached_tags = NULL
  * 
  *     cdef initTagMatch(self, tags):             # <<<<<<<<<<<<<<
@@ -58232,7 +58269,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("initTagMatch", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2508
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2505
  * 
  *     cdef initTagMatch(self, tags):
  *         self._cached_doc = None             # <<<<<<<<<<<<<<
@@ -58245,7 +58282,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_cached_doc));
   __pyx_v_self->_cached_doc = ((struct LxmlDocument *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2509
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2506
  *     cdef initTagMatch(self, tags):
  *         self._cached_doc = None
  *         del self._py_tags[:]             # <<<<<<<<<<<<<<
@@ -58254,11 +58291,11 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
  */
   if (unlikely(((PyObject *)__pyx_v_self->_py_tags) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_py_tags), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_py_tags), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2510
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2507
  *         self._cached_doc = None
  *         del self._py_tags[:]
  *         self._clear()             # <<<<<<<<<<<<<<
@@ -58267,7 +58304,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
  */
   __pyx_f_4lxml_5etree_16_MultiTagMatcher__clear(__pyx_v_self);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2511
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2508
  *         del self._py_tags[:]
  *         self._clear()
  *         if tags is None or tags == ():             # <<<<<<<<<<<<<<
@@ -58276,8 +58313,8 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
  */
   __pyx_t_1 = (__pyx_v_tags == Py_None);
   if (!__pyx_t_1) {
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_tags, ((PyObject *)__pyx_empty_tuple), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_tags, ((PyObject *)__pyx_empty_tuple), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __pyx_t_4 = __pyx_t_3;
   } else {
@@ -58285,7 +58322,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2513
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2510
  *         if tags is None or tags == ():
  *             # no selection in tags argument => match anything
  *             self._node_types = (             # <<<<<<<<<<<<<<
@@ -58297,7 +58334,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2519
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2516
  *                 1 << tree.XML_ELEMENT_NODE)
  *         else:
  *             self._node_types = 0             # <<<<<<<<<<<<<<
@@ -58306,16 +58343,16 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
  */
     __pyx_v_self->_node_types = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2520
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2517
  *         else:
  *             self._node_types = 0
  *             self._storeTags(tags, set())             # <<<<<<<<<<<<<<
  * 
  *     cdef _storeTags(self, tag, set seen):
  */
-    __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySet_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-    __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(__pyx_v_self, __pyx_v_tags, ((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(__pyx_v_self, __pyx_v_tags, ((PyObject*)__pyx_t_2)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -58335,7 +58372,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher_initTagMatch(struct __p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2522
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2519
  *             self._storeTags(tags, set())
  * 
  *     cdef _storeTags(self, tag, set seen):             # <<<<<<<<<<<<<<
@@ -58365,21 +58402,21 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_storeTags", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2523
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2520
  * 
  *     cdef _storeTags(self, tag, set seen):
  *         if tag is Comment:             # <<<<<<<<<<<<<<
  *             self._node_types |= 1 << tree.XML_COMMENT_NODE
  *         elif tag is ProcessingInstruction:
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = (__pyx_v_tag == __pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2524
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2521
  *     cdef _storeTags(self, tag, set seen):
  *         if tag is Comment:
  *             self._node_types |= 1 << tree.XML_COMMENT_NODE             # <<<<<<<<<<<<<<
@@ -58390,21 +58427,21 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2525
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2522
  *         if tag is Comment:
  *             self._node_types |= 1 << tree.XML_COMMENT_NODE
  *         elif tag is ProcessingInstruction:             # <<<<<<<<<<<<<<
  *             self._node_types |= 1 << tree.XML_PI_NODE
  *         elif tag is Entity:
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_81); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_84); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_3 = (__pyx_v_tag == __pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2526
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2523
  *             self._node_types |= 1 << tree.XML_COMMENT_NODE
  *         elif tag is ProcessingInstruction:
  *             self._node_types |= 1 << tree.XML_PI_NODE             # <<<<<<<<<<<<<<
@@ -58415,21 +58452,21 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2527
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2524
  *         elif tag is ProcessingInstruction:
  *             self._node_types |= 1 << tree.XML_PI_NODE
  *         elif tag is Entity:             # <<<<<<<<<<<<<<
  *             self._node_types |= 1 << tree.XML_ENTITY_REF_NODE
  *         elif tag is Element:
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Entity); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = (__pyx_v_tag == __pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2528
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2525
  *             self._node_types |= 1 << tree.XML_PI_NODE
  *         elif tag is Entity:
  *             self._node_types |= 1 << tree.XML_ENTITY_REF_NODE             # <<<<<<<<<<<<<<
@@ -58440,21 +58477,21 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2529
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2526
  *         elif tag is Entity:
  *             self._node_types |= 1 << tree.XML_ENTITY_REF_NODE
  *         elif tag is Element:             # <<<<<<<<<<<<<<
  *             self._node_types |= 1 << tree.XML_ELEMENT_NODE
  *         elif python._isString(tag):
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_3 = (__pyx_v_tag == __pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2530
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2527
  *             self._node_types |= 1 << tree.XML_ENTITY_REF_NODE
  *         elif tag is Element:
  *             self._node_types |= 1 << tree.XML_ELEMENT_NODE             # <<<<<<<<<<<<<<
@@ -58465,7 +58502,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2531
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2528
  *         elif tag is Element:
  *             self._node_types |= 1 << tree.XML_ELEMENT_NODE
  *         elif python._isString(tag):             # <<<<<<<<<<<<<<
@@ -58475,18 +58512,18 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
   __pyx_t_2 = (_isString(__pyx_v_tag) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2532
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2529
  *             self._node_types |= 1 << tree.XML_ELEMENT_NODE
  *         elif python._isString(tag):
  *             if tag in seen:             # <<<<<<<<<<<<<<
  *                 return
  *             seen.add(tag)
  */
-    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_tag, ((PyObject *)__pyx_v_seen), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_v_tag, ((PyObject *)__pyx_v_seen), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2529; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = (__pyx_t_2 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2533
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2530
  *         elif python._isString(tag):
  *             if tag in seen:
  *                 return             # <<<<<<<<<<<<<<
@@ -58500,7 +58537,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2534
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2531
  *             if tag in seen:
  *                 return
  *             seen.add(tag)             # <<<<<<<<<<<<<<
@@ -58509,11 +58546,11 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  */
     if (unlikely(((PyObject *)__pyx_v_seen) == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "add");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_4 = PySet_Add(__pyx_v_seen, __pyx_v_tag); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySet_Add(__pyx_v_seen, __pyx_v_tag); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2535
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2532
  *                 return
  *             seen.add(tag)
  *             if tag in ('*', '{*}*'):             # <<<<<<<<<<<<<<
@@ -58522,12 +58559,12 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  */
     __Pyx_INCREF(__pyx_v_tag);
     __pyx_t_1 = __pyx_v_tag;
-    __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_115), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_118), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     if (!((int)__pyx_t_3)) {
-      __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_116), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_s_119), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2532; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_t_6 = ((int)__pyx_t_2);
     } else {
@@ -58537,7 +58574,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
     __pyx_t_3 = (__pyx_t_6 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2536
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2533
  *             seen.add(tag)
  *             if tag in ('*', '{*}*'):
  *                 self._node_types |= 1 << tree.XML_ELEMENT_NODE             # <<<<<<<<<<<<<<
@@ -58549,14 +58586,14 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2538
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2535
  *                 self._node_types |= 1 << tree.XML_ELEMENT_NODE
  *             else:
  *                 href, name = _getNsTag(tag)             # <<<<<<<<<<<<<<
  *                 if name == b'*':
  *                     name = None
  */
-      __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       if (likely(PyTuple_CheckExact(__pyx_t_1))) {
         PyObject* sequence = __pyx_t_1;
@@ -58568,7 +58605,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
@@ -58576,18 +58613,18 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
         __Pyx_INCREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_t_7);
         #else
-        __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
-        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
         #endif
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       } else if (1) {
-        __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
@@ -58595,7 +58632,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
         __Pyx_GOTREF(__pyx_t_5);
         index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_7);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_9 = NULL;
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         goto __pyx_L7_unpacking_done;
@@ -58603,7 +58640,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         __pyx_t_9 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L7_unpacking_done:;
       }
       __pyx_v_href = __pyx_t_5;
@@ -58611,19 +58648,19 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
       __pyx_v_name = __pyx_t_7;
       __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2539
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2536
  *             else:
  *                 href, name = _getNsTag(tag)
  *                 if name == b'*':             # <<<<<<<<<<<<<<
  *                     name = None
  *                 if href is None:
  */
-      __pyx_t_1 = PyObject_RichCompare(__pyx_v_name, ((PyObject *)__pyx_kp_b_115), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_v_name, ((PyObject *)__pyx_kp_b_118), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2536; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2540
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2537
  *                 href, name = _getNsTag(tag)
  *                 if name == b'*':
  *                     name = None             # <<<<<<<<<<<<<<
@@ -58631,13 +58668,12 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *                     href = b''  # no namespace
  */
         __Pyx_INCREF(Py_None);
-        __Pyx_DECREF(__pyx_v_name);
-        __pyx_v_name = Py_None;
+        __Pyx_DECREF_SET(__pyx_v_name, Py_None);
         goto __pyx_L8;
       }
       __pyx_L8:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2541
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2538
  *                 if name == b'*':
  *                     name = None
  *                 if href is None:             # <<<<<<<<<<<<<<
@@ -58648,7 +58684,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
       __pyx_t_6 = (__pyx_t_3 != 0);
       if (__pyx_t_6) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2542
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2539
  *                     name = None
  *                 if href is None:
  *                     href = b''  # no namespace             # <<<<<<<<<<<<<<
@@ -58656,24 +58692,23 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *                     href = None  # wildcard: any namespace, including none
  */
         __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
-        __Pyx_DECREF(__pyx_v_href);
-        __pyx_v_href = ((PyObject *)__pyx_kp_b_25);
+        __Pyx_DECREF_SET(__pyx_v_href, ((PyObject *)__pyx_kp_b_25));
         goto __pyx_L9;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2543
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2540
  *                 if href is None:
  *                     href = b''  # no namespace
  *                 elif href == b'*':             # <<<<<<<<<<<<<<
  *                     href = None  # wildcard: any namespace, including none
  *                 self._py_tags.append((href, name))
  */
-      __pyx_t_1 = PyObject_RichCompare(__pyx_v_href, ((PyObject *)__pyx_kp_b_115), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2543; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_v_href, ((PyObject *)__pyx_kp_b_118), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2540; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       if (__pyx_t_6) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2544
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2541
  *                     href = b''  # no namespace
  *                 elif href == b'*':
  *                     href = None  # wildcard: any namespace, including none             # <<<<<<<<<<<<<<
@@ -58681,13 +58716,12 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  *         else:
  */
         __Pyx_INCREF(Py_None);
-        __Pyx_DECREF(__pyx_v_href);
-        __pyx_v_href = Py_None;
+        __Pyx_DECREF_SET(__pyx_v_href, Py_None);
         goto __pyx_L9;
       }
       __pyx_L9:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2545
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2542
  *                 elif href == b'*':
  *                     href = None  # wildcard: any namespace, including none
  *                 self._py_tags.append((href, name))             # <<<<<<<<<<<<<<
@@ -58696,9 +58730,9 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
  */
       if (unlikely(((PyObject *)__pyx_v_self->_py_tags) == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_INCREF(__pyx_v_href);
       PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_href);
@@ -58706,7 +58740,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
       __Pyx_INCREF(__pyx_v_name);
       PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_name);
       __Pyx_GIVEREF(__pyx_v_name);
-      __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_self->_py_tags, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyList_Append(__pyx_v_self->_py_tags, ((PyObject *)__pyx_t_1)); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
     }
     __pyx_L5:;
@@ -58714,7 +58748,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2548
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2545
  *         else:
  *             # support a sequence of tags
  *             for item in tag:             # <<<<<<<<<<<<<<
@@ -58725,7 +58759,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
       __pyx_t_1 = __pyx_v_tag; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
       __pyx_t_11 = NULL;
     } else {
-      __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext;
     }
@@ -58733,40 +58767,39 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
       if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_1)) {
         if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_1)) {
         if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_7 = __pyx_t_11(__pyx_t_1);
         if (unlikely(!__pyx_t_7)) {
           if (PyErr_Occurred()) {
             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2545; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
         __Pyx_GOTREF(__pyx_t_7);
       }
-      __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_7;
+      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7);
       __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2549
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2546
  *             # support a sequence of tags
  *             for item in tag:
  *                 self._storeTags(item, seen)             # <<<<<<<<<<<<<<
  * 
  *     cdef inline int cacheTags(self, _Document doc, bint force_into_dict=False) except -1:
  */
-      __pyx_t_7 = __pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(__pyx_v_self, __pyx_v_item, __pyx_v_seen); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(__pyx_v_self, __pyx_v_item, __pyx_v_seen); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     }
@@ -58792,7 +58825,7 @@ static PyObject *__pyx_f_4lxml_5etree_16_MultiTagMatcher__storeTags(struct __pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2551
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2548
  *                 self._storeTags(item, seen)
  * 
  *     cdef inline int cacheTags(self, _Document doc, bint force_into_dict=False) except -1:             # <<<<<<<<<<<<<<
@@ -58820,7 +58853,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2555
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2552
  *         Look up the tag names in the doc dict to enable string pointer comparisons.
  *         """
  *         cdef size_t dict_size = tree.xmlDictSize(doc._c_doc.dict)             # <<<<<<<<<<<<<<
@@ -58829,7 +58862,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  */
   __pyx_v_dict_size = xmlDictSize(__pyx_v_doc->_c_doc->dict);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2556
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2553
  *         """
  *         cdef size_t dict_size = tree.xmlDictSize(doc._c_doc.dict)
  *         if doc is self._cached_doc and dict_size == self._cached_size:             # <<<<<<<<<<<<<<
@@ -58845,7 +58878,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2558
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2555
  *         if doc is self._cached_doc and dict_size == self._cached_size:
  *             # doc and dict didn't change => names already cached
  *             return 0             # <<<<<<<<<<<<<<
@@ -58858,7 +58891,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2559
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2556
  *             # doc and dict didn't change => names already cached
  *             return 0
  *         self._tag_count = 0             # <<<<<<<<<<<<<<
@@ -58867,7 +58900,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  */
   __pyx_v_self->_tag_count = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2560
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2557
  *             return 0
  *         self._tag_count = 0
  *         if not self._py_tags:             # <<<<<<<<<<<<<<
@@ -58878,7 +58911,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
   __pyx_t_1 = ((!__pyx_t_3) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2561
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2558
  *         self._tag_count = 0
  *         if not self._py_tags:
  *             self._cached_doc = doc             # <<<<<<<<<<<<<<
@@ -58891,7 +58924,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_cached_doc));
     __pyx_v_self->_cached_doc = __pyx_v_doc;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2562
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2559
  *         if not self._py_tags:
  *             self._cached_doc = doc
  *             self._cached_size = dict_size             # <<<<<<<<<<<<<<
@@ -58900,7 +58933,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  */
     __pyx_v_self->_cached_size = __pyx_v_dict_size;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2563
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2560
  *             self._cached_doc = doc
  *             self._cached_size = dict_size
  *             return 0             # <<<<<<<<<<<<<<
@@ -58913,7 +58946,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2564
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2561
  *             self._cached_size = dict_size
  *             return 0
  *         if not self._cached_tags:             # <<<<<<<<<<<<<<
@@ -58923,7 +58956,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
   __pyx_t_1 = ((!(__pyx_v_self->_cached_tags != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2565
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2562
  *             return 0
  *         if not self._cached_tags:
  *             self._cached_tags = <qname*>cpython.mem.PyMem_Malloc(len(self._py_tags) * sizeof(qname))             # <<<<<<<<<<<<<<
@@ -58934,13 +58967,13 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
     __Pyx_INCREF(__pyx_t_4);
     if (unlikely(__pyx_t_4 == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_5 = PyList_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyList_GET_SIZE(__pyx_t_4); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_v_self->_cached_tags = ((struct __pyx_t_4lxml_5etree_qname *)PyMem_Malloc((__pyx_t_5 * (sizeof(struct __pyx_t_4lxml_5etree_qname)))));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2566
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2563
  *         if not self._cached_tags:
  *             self._cached_tags = <qname*>cpython.mem.PyMem_Malloc(len(self._py_tags) * sizeof(qname))
  *             if not self._cached_tags:             # <<<<<<<<<<<<<<
@@ -58950,7 +58983,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
     __pyx_t_1 = ((!(__pyx_v_self->_cached_tags != 0)) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2567
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2564
  *             self._cached_tags = <qname*>cpython.mem.PyMem_Malloc(len(self._py_tags) * sizeof(qname))
  *             if not self._cached_tags:
  *                 self._cached_doc = None             # <<<<<<<<<<<<<<
@@ -58963,14 +58996,14 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
       __Pyx_DECREF(((PyObject *)__pyx_v_self->_cached_doc));
       __pyx_v_self->_cached_doc = ((struct LxmlDocument *)Py_None);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2568
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2565
  *             if not self._cached_tags:
  *                 self._cached_doc = None
  *                 raise MemoryError()             # <<<<<<<<<<<<<<
  *         self._tag_count = <size_t>_mapTagsToQnameMatchArray(
  *             doc._c_doc, self._py_tags, self._cached_tags, force_into_dict)
  */
-      PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2568; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      PyErr_NoMemory(); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
@@ -58978,7 +59011,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2570
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2567
  *                 raise MemoryError()
  *         self._tag_count = <size_t>_mapTagsToQnameMatchArray(
  *             doc._c_doc, self._py_tags, self._cached_tags, force_into_dict)             # <<<<<<<<<<<<<<
@@ -58987,10 +59020,10 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  */
   __pyx_t_4 = ((PyObject *)__pyx_v_self->_py_tags);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(__pyx_v_doc->_c_doc, ((PyObject*)__pyx_t_4), __pyx_v_self->_cached_tags, __pyx_v_force_into_dict); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2569; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__mapTagsToQnameMatchArray(__pyx_v_doc->_c_doc, ((PyObject*)__pyx_t_4), __pyx_v_self->_cached_tags, __pyx_v_force_into_dict); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2566; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2569
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2566
  *                 self._cached_doc = None
  *                 raise MemoryError()
  *         self._tag_count = <size_t>_mapTagsToQnameMatchArray(             # <<<<<<<<<<<<<<
@@ -58999,7 +59032,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  */
   __pyx_v_self->_tag_count = ((size_t)__pyx_t_5);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2571
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2568
  *         self._tag_count = <size_t>_mapTagsToQnameMatchArray(
  *             doc._c_doc, self._py_tags, self._cached_tags, force_into_dict)
  *         self._cached_doc = doc             # <<<<<<<<<<<<<<
@@ -59012,7 +59045,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_cached_doc));
   __pyx_v_self->_cached_doc = __pyx_v_doc;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2572
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2569
  *             doc._c_doc, self._py_tags, self._cached_tags, force_into_dict)
  *         self._cached_doc = doc
  *         self._cached_size = dict_size             # <<<<<<<<<<<<<<
@@ -59021,7 +59054,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
  */
   __pyx_v_self->_cached_size = __pyx_v_dict_size;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2573
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2570
  *         self._cached_doc = doc
  *         self._cached_size = dict_size
  *         return 0             # <<<<<<<<<<<<<<
@@ -59042,7 +59075,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(struc
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2575
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2572
  *         return 0
  * 
  *     cdef inline bint matches(self, xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -59060,7 +59093,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
   struct __pyx_t_4lxml_5etree_qname *__pyx_t_4;
   __Pyx_RefNannySetupContext("matches", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2577
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2574
  *     cdef inline bint matches(self, xmlNode* c_node):
  *         cdef qname* c_qname
  *         if self._node_types & (1 << c_node.type):             # <<<<<<<<<<<<<<
@@ -59070,7 +59103,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
   __pyx_t_1 = ((__pyx_v_self->_node_types & (1 << __pyx_v_c_node->type)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2578
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2575
  *         cdef qname* c_qname
  *         if self._node_types & (1 << c_node.type):
  *             return True             # <<<<<<<<<<<<<<
@@ -59082,7 +59115,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2579
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2576
  *         if self._node_types & (1 << c_node.type):
  *             return True
  *         elif c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -59092,7 +59125,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
   __pyx_t_1 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2580
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2577
  *             return True
  *         elif c_node.type == tree.XML_ELEMENT_NODE:
  *             for c_qname in self._cached_tags[:self._tag_count]:             # <<<<<<<<<<<<<<
@@ -59104,7 +59137,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
       __pyx_t_2 = __pyx_t_4;
       __pyx_v_c_qname = __pyx_t_2;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2581
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2578
  *         elif c_node.type == tree.XML_ELEMENT_NODE:
  *             for c_qname in self._cached_tags[:self._tag_count]:
  *                 if _tagMatchesExactly(c_node, c_qname):             # <<<<<<<<<<<<<<
@@ -59114,7 +59147,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
       __pyx_t_1 = (__pyx_f_4lxml_5etree__tagMatchesExactly(__pyx_v_c_node, __pyx_v_c_qname) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2582
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2579
  *             for c_qname in self._cached_tags[:self._tag_count]:
  *                 if _tagMatchesExactly(c_node, c_qname):
  *                     return True             # <<<<<<<<<<<<<<
@@ -59131,7 +59164,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2583
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2580
  *                 if _tagMatchesExactly(c_node, c_qname):
  *                     return True
  *         return False             # <<<<<<<<<<<<<<
@@ -59147,7 +59180,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(struct
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2585
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2582
  *         return False
  * 
  *     cdef inline bint matchesAttribute(self, xmlAttr* c_attr):             # <<<<<<<<<<<<<<
@@ -59165,7 +59198,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribut
   int __pyx_t_4;
   __Pyx_RefNannySetupContext("matchesAttribute", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2590
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2587
  *         """
  *         cdef qname* c_qname
  *         for c_qname in self._cached_tags[:self._tag_count]:             # <<<<<<<<<<<<<<
@@ -59177,7 +59210,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribut
     __pyx_t_1 = __pyx_t_3;
     __pyx_v_c_qname = __pyx_t_1;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2591
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2588
  *         cdef qname* c_qname
  *         for c_qname in self._cached_tags[:self._tag_count]:
  *             if _tagMatchesExactly(<xmlNode*>c_attr, c_qname):             # <<<<<<<<<<<<<<
@@ -59187,7 +59220,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribut
     __pyx_t_4 = (__pyx_f_4lxml_5etree__tagMatchesExactly(((xmlNode *)__pyx_v_c_attr), __pyx_v_c_qname) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2592
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2589
  *         for c_qname in self._cached_tags[:self._tag_count]:
  *             if _tagMatchesExactly(<xmlNode*>c_attr, c_qname):
  *                 return True             # <<<<<<<<<<<<<<
@@ -59201,7 +59234,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribut
     __pyx_L5:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2593
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2590
  *             if _tagMatchesExactly(<xmlNode*>c_attr, c_qname):
  *                 return True
  *         return False             # <<<<<<<<<<<<<<
@@ -59217,7 +59250,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribut
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2601
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2598
  * 
  *     @cython.final
  *     cdef _initTagMatcher(self, tags):             # <<<<<<<<<<<<<<
@@ -59235,19 +59268,19 @@ static PyObject *__pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(st
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_initTagMatcher", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2602
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2599
  *     @cython.final
  *     cdef _initTagMatcher(self, tags):
  *         self._matcher = _MultiTagMatcher(tags)             # <<<<<<<<<<<<<<
  * 
  *     def __iter__(self):
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_tags);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tags);
   __Pyx_GIVEREF(__pyx_v_tags);
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__MultiTagMatcher)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__MultiTagMatcher)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_GIVEREF(__pyx_t_2);
@@ -59280,7 +59313,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21_ElementMatchIterator_1__iter__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2604
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2601
  *         self._matcher = _MultiTagMatcher(tags)
  * 
  *     def __iter__(self):             # <<<<<<<<<<<<<<
@@ -59293,7 +59326,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator___iter__(struct _
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__iter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2605
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2602
  * 
  *     def __iter__(self):
  *         return self             # <<<<<<<<<<<<<<
@@ -59312,7 +59345,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator___iter__(struct _
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2608
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2605
  * 
  *     @cython.final
  *     cdef int _storeNext(self, _Element node) except -1:             # <<<<<<<<<<<<<<
@@ -59336,7 +59369,7 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_storeNext", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2609
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2606
  *     @cython.final
  *     cdef int _storeNext(self, _Element node) except -1:
  *         self._matcher.cacheTags(node._doc)             # <<<<<<<<<<<<<<
@@ -59345,10 +59378,10 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_node->_doc);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2609; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2606; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2610
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2607
  *     cdef int _storeNext(self, _Element node) except -1:
  *         self._matcher.cacheTags(node._doc)
  *         c_node = self._next_element(node._c_node)             # <<<<<<<<<<<<<<
@@ -59357,7 +59390,7 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
  */
   __pyx_v_c_node = __pyx_v_self->_next_element(__pyx_v_node->_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2611
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2608
  *         self._matcher.cacheTags(node._doc)
  *         c_node = self._next_element(node._c_node)
  *         while c_node is not NULL and not self._matcher.matches(c_node):             # <<<<<<<<<<<<<<
@@ -59374,7 +59407,7 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
     }
     if (!__pyx_t_5) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2612
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2609
  *         c_node = self._next_element(node._c_node)
  *         while c_node is not NULL and not self._matcher.matches(c_node):
  *             c_node = self._next_element(c_node)             # <<<<<<<<<<<<<<
@@ -59384,7 +59417,7 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
     __pyx_v_c_node = __pyx_v_self->_next_element(__pyx_v_c_node);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2614
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2611
  *             c_node = self._next_element(c_node)
  *         # store Python ref to next node to make sure it's kept alive
  *         self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None             # <<<<<<<<<<<<<<
@@ -59394,7 +59427,7 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
   if (((__pyx_v_c_node != NULL) != 0)) {
     __pyx_t_6 = ((PyObject *)__pyx_v_node->_doc);
     __Pyx_INCREF(__pyx_t_6);
-    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_t_1 = __pyx_t_7;
@@ -59403,14 +59436,14 @@ static int __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(struct __pyx_
     __Pyx_INCREF(Py_None);
     __pyx_t_1 = Py_None;
   }
-  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->_node);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_node));
   __pyx_v_self->_node = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2615
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2612
  *         # store Python ref to next node to make sure it's kept alive
  *         self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None
  *         return 0             # <<<<<<<<<<<<<<
@@ -59444,7 +59477,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21_ElementMatchIterator_3__next__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2617
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2614
  *         return 0
  * 
  *     def __next__(self):             # <<<<<<<<<<<<<<
@@ -59465,7 +59498,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator_2__next__(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__next__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2618
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2615
  * 
  *     def __next__(self):
  *         cdef _Element current_node = self._node             # <<<<<<<<<<<<<<
@@ -59477,7 +59510,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator_2__next__(struct
   __pyx_v_current_node = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2619
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2616
  *     def __next__(self):
  *         cdef _Element current_node = self._node
  *         if current_node is None:             # <<<<<<<<<<<<<<
@@ -59488,7 +59521,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator_2__next__(struct
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2620
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2617
  *         cdef _Element current_node = self._node
  *         if current_node is None:
  *             raise StopIteration             # <<<<<<<<<<<<<<
@@ -59496,21 +59529,21 @@ static PyObject *__pyx_pf_4lxml_5etree_21_ElementMatchIterator_2__next__(struct
  *         return current_node
  */
     __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2621
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2618
  *         if current_node is None:
  *             raise StopIteration
  *         self._storeNext(current_node)             # <<<<<<<<<<<<<<
  *         return current_node
  * 
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(__pyx_v_self, __pyx_v_current_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(__pyx_v_self, __pyx_v_current_node); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2622
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2619
  *             raise StopIteration
  *         self._storeNext(current_node)
  *         return current_node             # <<<<<<<<<<<<<<
@@ -59551,7 +59584,7 @@ static int __pyx_pw_4lxml_5etree_20ElementChildIterator_1__cinit__(PyObject *__p
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__node,&__pyx_n_s__tag,&__pyx_n_s__reversed,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2628
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2625
  *     Iterates over the children of an element.
  *     """
  *     def __cinit__(self, _Element node not None, tag=None, *, reversed=False):             # <<<<<<<<<<<<<<
@@ -59559,7 +59592,7 @@ static int __pyx_pw_4lxml_5etree_20ElementChildIterator_1__cinit__(PyObject *__p
  *         _assertValidNode(node)
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_117;
+    values[2] = __pyx_k_120;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -59586,7 +59619,7 @@ static int __pyx_pw_4lxml_5etree_20ElementChildIterator_1__cinit__(PyObject *__p
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -59602,13 +59635,13 @@ static int __pyx_pw_4lxml_5etree_20ElementChildIterator_1__cinit__(PyObject *__p
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.ElementChildIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(((struct __pyx_obj_4lxml_5etree_ElementChildIterator *)__pyx_v_self), __pyx_v_node, __pyx_v_tag, __pyx_v_reversed);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -59634,37 +59667,37 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2630
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2627
  *     def __cinit__(self, _Element node not None, tag=None, *, reversed=False):
  *         cdef xmlNode* c_node
  *         _assertValidNode(node)             # <<<<<<<<<<<<<<
  *         self._initTagMatcher(tag)
  *         if reversed:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2630; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2631
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2628
  *         cdef xmlNode* c_node
  *         _assertValidNode(node)
  *         self._initTagMatcher(tag)             # <<<<<<<<<<<<<<
  *         if reversed:
  *             c_node = _findChildBackwards(node._c_node, 0)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2632
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2629
  *         _assertValidNode(node)
  *         self._initTagMatcher(tag)
  *         if reversed:             # <<<<<<<<<<<<<<
  *             c_node = _findChildBackwards(node._c_node, 0)
  *             self._next_element = _previousElement
  */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_reversed); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_reversed); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2633
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2630
  *         self._initTagMatcher(tag)
  *         if reversed:
  *             c_node = _findChildBackwards(node._c_node, 0)             # <<<<<<<<<<<<<<
@@ -59673,7 +59706,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
  */
     __pyx_v_c_node = __pyx_f_4lxml_5etree__findChildBackwards(__pyx_v_node->_c_node, 0);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2634
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2631
  *         if reversed:
  *             c_node = _findChildBackwards(node._c_node, 0)
  *             self._next_element = _previousElement             # <<<<<<<<<<<<<<
@@ -59685,7 +59718,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2636
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2633
  *             self._next_element = _previousElement
  *         else:
  *             c_node = _findChildForwards(node._c_node, 0)             # <<<<<<<<<<<<<<
@@ -59694,7 +59727,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
  */
     __pyx_v_c_node = __pyx_f_4lxml_5etree__findChildForwards(__pyx_v_node->_c_node, 0);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2637
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2634
  *         else:
  *             c_node = _findChildForwards(node._c_node, 0)
  *             self._next_element = _nextElement             # <<<<<<<<<<<<<<
@@ -59705,7 +59738,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2638
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2635
  *             c_node = _findChildForwards(node._c_node, 0)
  *             self._next_element = _nextElement
  *         self._matcher.cacheTags(node._doc)             # <<<<<<<<<<<<<<
@@ -59714,10 +59747,10 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
  */
   __pyx_t_2 = ((PyObject *)__pyx_v_node->_doc);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->__pyx_base._matcher, ((struct LxmlDocument *)__pyx_t_2), NULL); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->__pyx_base._matcher, ((struct LxmlDocument *)__pyx_t_2), NULL); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2639
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2636
  *             self._next_element = _nextElement
  *         self._matcher.cacheTags(node._doc)
  *         while c_node is not NULL and not self._matcher.matches(c_node):             # <<<<<<<<<<<<<<
@@ -59734,7 +59767,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
     }
     if (!__pyx_t_5) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2640
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2637
  *         self._matcher.cacheTags(node._doc)
  *         while c_node is not NULL and not self._matcher.matches(c_node):
  *             c_node = self._next_element(c_node)             # <<<<<<<<<<<<<<
@@ -59744,7 +59777,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
     __pyx_v_c_node = __pyx_v_self->__pyx_base._next_element(__pyx_v_c_node);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2642
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2639
  *             c_node = self._next_element(c_node)
  *         # store Python ref to next node to make sure it's kept alive
  *         self._node = _elementFactory(node._doc, c_node) if c_node is not NULL else None             # <<<<<<<<<<<<<<
@@ -59754,7 +59787,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
   if (((__pyx_v_c_node != NULL) != 0)) {
     __pyx_t_6 = ((PyObject *)__pyx_v_node->_doc);
     __Pyx_INCREF(__pyx_t_6);
-    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_t_2 = __pyx_t_7;
@@ -59763,7 +59796,7 @@ static int __pyx_pf_4lxml_5etree_20ElementChildIterator___cinit__(struct __pyx_o
     __Pyx_INCREF(Py_None);
     __pyx_t_2 = Py_None;
   }
-  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2639; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GIVEREF(__pyx_t_2);
   __Pyx_GOTREF(__pyx_v_self->__pyx_base._node);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->__pyx_base._node));
@@ -59799,7 +59832,7 @@ static int __pyx_pw_4lxml_5etree_16SiblingsIterator_1__cinit__(PyObject *__pyx_v
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__node,&__pyx_n_s__tag,&__pyx_n_s__preceding,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2650
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2647
  *     You can pass the boolean keyword ``preceding`` to specify the direction.
  *     """
  *     def __cinit__(self, _Element node not None, tag=None, *, preceding=False):             # <<<<<<<<<<<<<<
@@ -59807,7 +59840,7 @@ static int __pyx_pw_4lxml_5etree_16SiblingsIterator_1__cinit__(PyObject *__pyx_v
  *         self._initTagMatcher(tag)
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_118;
+    values[2] = __pyx_k_121;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -59834,7 +59867,7 @@ static int __pyx_pw_4lxml_5etree_16SiblingsIterator_1__cinit__(PyObject *__pyx_v
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2650; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2647; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -59850,13 +59883,13 @@ static int __pyx_pw_4lxml_5etree_16SiblingsIterator_1__cinit__(PyObject *__pyx_v
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2650; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2647; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.SiblingsIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_16SiblingsIterator___cinit__(((struct __pyx_obj_4lxml_5etree_SiblingsIterator *)__pyx_v_self), __pyx_v_node, __pyx_v_tag, __pyx_v_preceding);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -59877,37 +59910,37 @@ static int __pyx_pf_4lxml_5etree_16SiblingsIterator___cinit__(struct __pyx_obj_4
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2651
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2648
  *     """
  *     def __cinit__(self, _Element node not None, tag=None, *, preceding=False):
  *         _assertValidNode(node)             # <<<<<<<<<<<<<<
  *         self._initTagMatcher(tag)
  *         if preceding:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2652
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2649
  *     def __cinit__(self, _Element node not None, tag=None, *, preceding=False):
  *         _assertValidNode(node)
  *         self._initTagMatcher(tag)             # <<<<<<<<<<<<<<
  *         if preceding:
  *             self._next_element = _previousElement
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2653
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2650
  *         _assertValidNode(node)
  *         self._initTagMatcher(tag)
  *         if preceding:             # <<<<<<<<<<<<<<
  *             self._next_element = _previousElement
  *         else:
  */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_preceding); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_preceding); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2654
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2651
  *         self._initTagMatcher(tag)
  *         if preceding:
  *             self._next_element = _previousElement             # <<<<<<<<<<<<<<
@@ -59919,7 +59952,7 @@ static int __pyx_pf_4lxml_5etree_16SiblingsIterator___cinit__(struct __pyx_obj_4
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2656
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2653
  *             self._next_element = _previousElement
  *         else:
  *             self._next_element = _nextElement             # <<<<<<<<<<<<<<
@@ -59930,14 +59963,14 @@ static int __pyx_pf_4lxml_5etree_16SiblingsIterator___cinit__(struct __pyx_obj_4
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2657
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2654
  *         else:
  *             self._next_element = _nextElement
  *         self._storeNext(node)             # <<<<<<<<<<<<<<
  * 
  * cdef class AncestorsIterator(_ElementMatchIterator):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
   goto __pyx_L0;
@@ -59965,7 +59998,7 @@ static int __pyx_pw_4lxml_5etree_17AncestorsIterator_1__cinit__(PyObject *__pyx_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__node,&__pyx_n_s__tag,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2663
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2660
  *     Iterates over the ancestors of an element (from parent to parent).
  *     """
  *     def __cinit__(self, _Element node not None, tag=None):             # <<<<<<<<<<<<<<
@@ -59994,7 +60027,7 @@ static int __pyx_pw_4lxml_5etree_17AncestorsIterator_1__cinit__(PyObject *__pyx_
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2663; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -60009,13 +60042,13 @@ static int __pyx_pw_4lxml_5etree_17AncestorsIterator_1__cinit__(PyObject *__pyx_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2663; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.AncestorsIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2660; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_17AncestorsIterator___cinit__(((struct __pyx_obj_4lxml_5etree_AncestorsIterator *)__pyx_v_self), __pyx_v_node, __pyx_v_tag);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -60035,27 +60068,27 @@ static int __pyx_pf_4lxml_5etree_17AncestorsIterator___cinit__(struct __pyx_obj_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2664
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2661
  *     """
  *     def __cinit__(self, _Element node not None, tag=None):
  *         _assertValidNode(node)             # <<<<<<<<<<<<<<
  *         self._initTagMatcher(tag)
  *         self._next_element = _parentElement
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2665
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2662
  *     def __cinit__(self, _Element node not None, tag=None):
  *         _assertValidNode(node)
  *         self._initTagMatcher(tag)             # <<<<<<<<<<<<<<
  *         self._next_element = _parentElement
  *         self._storeNext(node)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2666
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2663
  *         _assertValidNode(node)
  *         self._initTagMatcher(tag)
  *         self._next_element = _parentElement             # <<<<<<<<<<<<<<
@@ -60064,14 +60097,14 @@ static int __pyx_pf_4lxml_5etree_17AncestorsIterator___cinit__(struct __pyx_obj_
  */
   __pyx_v_self->__pyx_base._next_element = __pyx_f_4lxml_5etree__parentElement;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2667
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2664
  *         self._initTagMatcher(tag)
  *         self._next_element = _parentElement
  *         self._storeNext(node)             # <<<<<<<<<<<<<<
  * 
  * cdef class ElementDepthFirstIterator:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext(((struct __pyx_obj_4lxml_5etree__ElementMatchIterator *)__pyx_v_self), __pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
   goto __pyx_L0;
@@ -60100,7 +60133,7 @@ static int __pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_1__cinit__(PyObject
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__node,&__pyx_n_s__tag,&__pyx_n_s__inclusive,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2694
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2691
  *     cdef _Element _top_node
  *     cdef _MultiTagMatcher _matcher
  *     def __cinit__(self, _Element node not None, tag=None, *, inclusive=True):             # <<<<<<<<<<<<<<
@@ -60108,7 +60141,7 @@ static int __pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_1__cinit__(PyObject
  *         self._top_node  = node
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_119;
+    values[2] = __pyx_k_122;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -60135,7 +60168,7 @@ static int __pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_1__cinit__(PyObject
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2691; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -60151,13 +60184,13 @@ static int __pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_1__cinit__(PyObject
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2691; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.ElementDepthFirstIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_node), __pyx_ptype_4lxml_5etree__Element, 0, "node", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(((struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *)__pyx_v_self), __pyx_v_node, __pyx_v_tag, __pyx_v_inclusive);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -60181,16 +60214,16 @@ static int __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2695
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2692
  *     cdef _MultiTagMatcher _matcher
  *     def __cinit__(self, _Element node not None, tag=None, *, inclusive=True):
  *         _assertValidNode(node)             # <<<<<<<<<<<<<<
  *         self._top_node  = node
  *         self._next_node = node
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_node); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2696
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2693
  *     def __cinit__(self, _Element node not None, tag=None, *, inclusive=True):
  *         _assertValidNode(node)
  *         self._top_node  = node             # <<<<<<<<<<<<<<
@@ -60203,7 +60236,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(struct __
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_top_node));
   __pyx_v_self->_top_node = __pyx_v_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2697
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2694
  *         _assertValidNode(node)
  *         self._top_node  = node
  *         self._next_node = node             # <<<<<<<<<<<<<<
@@ -60216,19 +60249,19 @@ static int __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(struct __
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_next_node));
   __pyx_v_self->_next_node = __pyx_v_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2698
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2695
  *         self._top_node  = node
  *         self._next_node = node
  *         self._matcher = _MultiTagMatcher(tag)             # <<<<<<<<<<<<<<
  *         self._matcher.cacheTags(node._doc)
  *         if not inclusive or not self._matcher.matches(node._c_node):
  */
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(__pyx_v_tag);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_tag);
   __Pyx_GIVEREF(__pyx_v_tag);
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__MultiTagMatcher)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__MultiTagMatcher)), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __Pyx_GIVEREF(__pyx_t_3);
@@ -60237,7 +60270,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(struct __
   __pyx_v_self->_matcher = ((struct __pyx_obj_4lxml_5etree__MultiTagMatcher *)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2699
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2696
  *         self._next_node = node
  *         self._matcher = _MultiTagMatcher(tag)
  *         self._matcher.cacheTags(node._doc)             # <<<<<<<<<<<<<<
@@ -60246,17 +60279,17 @@ static int __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(struct __
  */
   __pyx_t_3 = ((PyObject *)__pyx_v_node->_doc);
   __Pyx_INCREF(__pyx_t_3);
-  __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_3), NULL); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_3), NULL); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2696; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2700
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2697
  *         self._matcher = _MultiTagMatcher(tag)
  *         self._matcher.cacheTags(node._doc)
  *         if not inclusive or not self._matcher.matches(node._c_node):             # <<<<<<<<<<<<<<
  *             # find start node (this cannot raise StopIteration, self._next_node != None)
  *             next(self)
  */
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2700; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2697; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_5 = ((!__pyx_t_4) != 0);
   if (!__pyx_t_5) {
     __pyx_t_4 = ((!(__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_node->_c_node) != 0)) != 0);
@@ -60266,14 +60299,14 @@ static int __pyx_pf_4lxml_5etree_25ElementDepthFirstIterator___cinit__(struct __
   }
   if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2702
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2699
  *         if not inclusive or not self._matcher.matches(node._c_node):
  *             # find start node (this cannot raise StopIteration, self._next_node != None)
  *             next(self)             # <<<<<<<<<<<<<<
  * 
  *     def __iter__(self):
  */
-    __pyx_t_3 = __Pyx_PyIter_Next(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyIter_Next(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L3;
@@ -60303,7 +60336,7 @@ static PyObject *__pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_3__iter__(PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2704
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2701
  *             next(self)
  * 
  *     def __iter__(self):             # <<<<<<<<<<<<<<
@@ -60316,7 +60349,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_2__iter__(str
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__iter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2705
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2702
  * 
  *     def __iter__(self):
  *         return self             # <<<<<<<<<<<<<<
@@ -60346,7 +60379,7 @@ static PyObject *__pyx_pw_4lxml_5etree_25ElementDepthFirstIterator_5__next__(PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2707
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2704
  *         return self
  * 
  *     def __next__(self):             # <<<<<<<<<<<<<<
@@ -60370,7 +60403,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__next__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2709
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2706
  *     def __next__(self):
  *         cdef xmlNode* c_node
  *         cdef _Element current_node = self._next_node             # <<<<<<<<<<<<<<
@@ -60382,7 +60415,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   __pyx_v_current_node = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2710
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2707
  *         cdef xmlNode* c_node
  *         cdef _Element current_node = self._next_node
  *         if current_node is None:             # <<<<<<<<<<<<<<
@@ -60393,7 +60426,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2711
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2708
  *         cdef _Element current_node = self._next_node
  *         if current_node is None:
  *             raise StopIteration             # <<<<<<<<<<<<<<
@@ -60401,12 +60434,12 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  *         self._matcher.cacheTags(current_node._doc)
  */
     __Pyx_Raise(__pyx_builtin_StopIteration, 0, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2711; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2708; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2712
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2709
  *         if current_node is None:
  *             raise StopIteration
  *         c_node = current_node._c_node             # <<<<<<<<<<<<<<
@@ -60416,7 +60449,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   __pyx_t_4 = __pyx_v_current_node->_c_node;
   __pyx_v_c_node = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2713
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2710
  *             raise StopIteration
  *         c_node = current_node._c_node
  *         self._matcher.cacheTags(current_node._doc)             # <<<<<<<<<<<<<<
@@ -60425,10 +60458,10 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_current_node->_doc);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags(__pyx_v_self->_matcher, ((struct LxmlDocument *)__pyx_t_1), NULL); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2714
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2711
  *         c_node = current_node._c_node
  *         self._matcher.cacheTags(current_node._doc)
  *         if not self._matcher._tag_count:             # <<<<<<<<<<<<<<
@@ -60438,7 +60471,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   __pyx_t_3 = ((!(__pyx_v_self->_matcher->_tag_count != 0)) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2717
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2714
  *             # no tag name was found in the dict => not in document either
  *             # try to match by node type
  *             c_node = self._nextNodeAnyTag(c_node)             # <<<<<<<<<<<<<<
@@ -60450,7 +60483,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2719
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2716
  *             c_node = self._nextNodeAnyTag(c_node)
  *         else:
  *             c_node = self._nextNodeMatchTag(c_node)             # <<<<<<<<<<<<<<
@@ -60461,7 +60494,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2720
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2717
  *         else:
  *             c_node = self._nextNodeMatchTag(c_node)
  *         if c_node is NULL:             # <<<<<<<<<<<<<<
@@ -60471,7 +60504,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   __pyx_t_3 = ((__pyx_v_c_node == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2721
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2718
  *             c_node = self._nextNodeMatchTag(c_node)
  *         if c_node is NULL:
  *             self._next_node = None             # <<<<<<<<<<<<<<
@@ -60487,7 +60520,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2723
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2720
  *             self._next_node = None
  *         else:
  *             self._next_node = _elementFactory(current_node._doc, c_node)             # <<<<<<<<<<<<<<
@@ -60496,7 +60529,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
  */
     __pyx_t_1 = ((PyObject *)__pyx_v_current_node->_doc);
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_1), __pyx_v_c_node)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_GIVEREF(__pyx_t_6);
@@ -60507,7 +60540,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2724
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2721
  *         else:
  *             self._next_node = _elementFactory(current_node._doc, c_node)
  *         return current_node             # <<<<<<<<<<<<<<
@@ -60533,7 +60566,7 @@ static PyObject *__pyx_pf_4lxml_5etree_25ElementDepthFirstIterator_4__next__(str
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2727
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2724
  * 
  *     @cython.final
  *     cdef xmlNode* _nextNodeAnyTag(self, xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -60549,7 +60582,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_nextNodeAnyTag", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2728
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2725
  *     @cython.final
  *     cdef xmlNode* _nextNodeAnyTag(self, xmlNode* c_node):
  *         cdef int node_types = self._matcher._node_types             # <<<<<<<<<<<<<<
@@ -60559,7 +60592,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
   __pyx_t_1 = __pyx_v_self->_matcher->_node_types;
   __pyx_v_node_types = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2729
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2726
  *     cdef xmlNode* _nextNodeAnyTag(self, xmlNode* c_node):
  *         cdef int node_types = self._matcher._node_types
  *         if not node_types:             # <<<<<<<<<<<<<<
@@ -60569,7 +60602,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
   __pyx_t_2 = ((!(__pyx_v_node_types != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2730
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2727
  *         cdef int node_types = self._matcher._node_types
  *         if not node_types:
  *             return NULL             # <<<<<<<<<<<<<<
@@ -60582,7 +60615,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2731
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2728
  *         if not node_types:
  *             return NULL
  *         tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)             # <<<<<<<<<<<<<<
@@ -60591,7 +60624,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
  */
   BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_self->_top_node->_c_node, __pyx_v_c_node, 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2732
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2729
  *             return NULL
  *         tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
  *         if node_types & (1 << c_node.type):             # <<<<<<<<<<<<<<
@@ -60601,7 +60634,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
   __pyx_t_2 = ((__pyx_v_node_types & (1 << __pyx_v_c_node->type)) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2733
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2730
  *         tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
  *         if node_types & (1 << c_node.type):
  *             return c_node             # <<<<<<<<<<<<<<
@@ -60614,7 +60647,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2734
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2731
  *         if node_types & (1 << c_node.type):
  *             return c_node
  *         tree.END_FOR_EACH_ELEMENT_FROM(c_node)             # <<<<<<<<<<<<<<
@@ -60623,7 +60656,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
  */
   END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2735
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2732
  *             return c_node
  *         tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  *         return NULL             # <<<<<<<<<<<<<<
@@ -60639,7 +60672,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2738
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2735
  * 
  *     @cython.final
  *     cdef xmlNode* _nextNodeMatchTag(self, xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -60653,7 +60686,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchT
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_nextNodeMatchTag", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2739
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2736
  *     @cython.final
  *     cdef xmlNode* _nextNodeMatchTag(self, xmlNode* c_node):
  *         tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)             # <<<<<<<<<<<<<<
@@ -60662,7 +60695,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchT
  */
   BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_self->_top_node->_c_node, __pyx_v_c_node, 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2740
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2737
  *     cdef xmlNode* _nextNodeMatchTag(self, xmlNode* c_node):
  *         tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
  *         if self._matcher.matches(c_node):             # <<<<<<<<<<<<<<
@@ -60672,7 +60705,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchT
   __pyx_t_1 = (__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches(__pyx_v_self->_matcher, __pyx_v_c_node) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2741
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2738
  *         tree.BEGIN_FOR_EACH_ELEMENT_FROM(self._top_node._c_node, c_node, 0)
  *         if self._matcher.matches(c_node):
  *             return c_node             # <<<<<<<<<<<<<<
@@ -60685,7 +60718,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchT
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2742
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2739
  *         if self._matcher.matches(c_node):
  *             return c_node
  *         tree.END_FOR_EACH_ELEMENT_FROM(c_node)             # <<<<<<<<<<<<<<
@@ -60694,7 +60727,7 @@ static xmlNode *__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchT
  */
   END_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2743
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2740
  *             return c_node
  *         tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  *         return NULL             # <<<<<<<<<<<<<<
@@ -60726,7 +60759,7 @@ static int __pyx_pw_4lxml_5etree_19ElementTextIterator_1__cinit__(PyObject *__py
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element,&__pyx_n_s__tag,&__pyx_n_s__with_tail,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2757
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2754
  *     cdef object _nextEvent
  *     cdef _Element _start_element
  *     def __cinit__(self, _Element element not None, tag=None, *, with_tail=True):             # <<<<<<<<<<<<<<
@@ -60734,7 +60767,7 @@ static int __pyx_pw_4lxml_5etree_19ElementTextIterator_1__cinit__(PyObject *__py
  *         if with_tail:
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_120;
+    values[2] = __pyx_k_123;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -60761,7 +60794,7 @@ static int __pyx_pw_4lxml_5etree_19ElementTextIterator_1__cinit__(PyObject *__py
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2757; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -60777,13 +60810,13 @@ static int __pyx_pw_4lxml_5etree_19ElementTextIterator_1__cinit__(PyObject *__py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2757; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.ElementTextIterator.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_19ElementTextIterator___cinit__(((struct __pyx_obj_4lxml_5etree_ElementTextIterator *)__pyx_v_self), __pyx_v_element, __pyx_v_tag, __pyx_v_with_tail);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -60807,51 +60840,51 @@ static int __pyx_pf_4lxml_5etree_19ElementTextIterator___cinit__(struct __pyx_ob
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2758
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2755
  *     cdef _Element _start_element
  *     def __cinit__(self, _Element element not None, tag=None, *, with_tail=True):
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         if with_tail:
  *             events = (u"start", u"end")
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2759
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2756
  *     def __cinit__(self, _Element element not None, tag=None, *, with_tail=True):
  *         _assertValidNode(element)
  *         if with_tail:             # <<<<<<<<<<<<<<
  *             events = (u"start", u"end")
  *         else:
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_with_tail); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_with_tail); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2760
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2757
  *         _assertValidNode(element)
  *         if with_tail:
  *             events = (u"start", u"end")             # <<<<<<<<<<<<<<
  *         else:
  *             events = (u"start",)
  */
-    __Pyx_INCREF(((PyObject *)__pyx_k_tuple_121));
-    __pyx_v_events = __pyx_k_tuple_121;
+    __Pyx_INCREF(((PyObject *)__pyx_k_tuple_124));
+    __pyx_v_events = __pyx_k_tuple_124;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2762
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2759
  *             events = (u"start", u"end")
  *         else:
  *             events = (u"start",)             # <<<<<<<<<<<<<<
  *         self._start_element = element
  *         self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
  */
-    __Pyx_INCREF(((PyObject *)__pyx_k_tuple_122));
-    __pyx_v_events = __pyx_k_tuple_122;
+    __Pyx_INCREF(((PyObject *)__pyx_k_tuple_125));
+    __pyx_v_events = __pyx_k_tuple_125;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2763
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2760
  *         else:
  *             events = (u"start",)
  *         self._start_element = element             # <<<<<<<<<<<<<<
@@ -60864,27 +60897,27 @@ static int __pyx_pf_4lxml_5etree_19ElementTextIterator___cinit__(struct __pyx_ob
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_start_element));
   __pyx_v_self->_start_element = __pyx_v_element;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2764
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2761
  *             events = (u"start",)
  *         self._start_element = element
  *         self._nextEvent = iterwalk(element, events=events, tag=tag).__next__             # <<<<<<<<<<<<<<
  * 
  *     def __iter__(self):
  */
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_v_element));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_element));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_element));
-  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__events), ((PyObject *)__pyx_v_events)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__tag), __pyx_v_tag) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_iterwalk)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__events), ((PyObject *)__pyx_v_events)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__tag), __pyx_v_tag) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_iterwalk)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s____next__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s____next__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_GIVEREF(__pyx_t_4);
@@ -60918,7 +60951,7 @@ static PyObject *__pyx_pw_4lxml_5etree_19ElementTextIterator_3__iter__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2766
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2763
  *         self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
  * 
  *     def __iter__(self):             # <<<<<<<<<<<<<<
@@ -60931,7 +60964,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_2__iter__(struct __
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__iter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2767
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2764
  * 
  *     def __iter__(self):
  *         return self             # <<<<<<<<<<<<<<
@@ -60961,7 +60994,7 @@ static PyObject *__pyx_pw_4lxml_5etree_19ElementTextIterator_5__next__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2769
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2766
  *         return self
  * 
  *     def __next__(self):             # <<<<<<<<<<<<<<
@@ -60987,7 +61020,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__next__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2771
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2768
  *     def __next__(self):
  *         cdef _Element element
  *         result = None             # <<<<<<<<<<<<<<
@@ -60997,7 +61030,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
   __Pyx_INCREF(Py_None);
   __pyx_v_result = Py_None;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2772
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2769
  *         cdef _Element element
  *         result = None
  *         while result is None:             # <<<<<<<<<<<<<<
@@ -61009,14 +61042,14 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2773
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2770
  *         result = None
  *         while result is None:
  *             event, element = self._nextEvent() # raises StopIteration             # <<<<<<<<<<<<<<
  *             if event == u"start":
  *                 result = element.text
  */
-    __pyx_t_3 = PyObject_Call(__pyx_v_self->_nextEvent, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_v_self->_nextEvent, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
       PyObject* sequence = __pyx_t_3;
@@ -61028,7 +61061,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -61041,16 +61074,16 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
       __Pyx_INCREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_t_5);
       #else
-      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       #endif
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
@@ -61058,7 +61091,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
       __Pyx_GOTREF(__pyx_t_4);
       index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_5);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_7 = NULL;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L6_unpacking_done;
@@ -61066,45 +61099,42 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __pyx_t_7 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(__pyx_v_event);
-    __pyx_v_event = __pyx_t_4;
+    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_XDECREF_SET(__pyx_v_event, __pyx_t_4);
     __pyx_t_4 = 0;
-    __Pyx_XDECREF(((PyObject *)__pyx_v_element));
-    __pyx_v_element = ((struct LxmlElement *)__pyx_t_5);
+    __Pyx_XDECREF_SET(__pyx_v_element, ((struct LxmlElement *)__pyx_t_5));
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2774
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2771
  *         while result is None:
  *             event, element = self._nextEvent() # raises StopIteration
  *             if event == u"start":             # <<<<<<<<<<<<<<
  *                 result = element.text
  *             elif element is not self._start_element:
  */
-    __pyx_t_3 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_n_u__start), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_n_u__start), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2775
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2772
  *             event, element = self._nextEvent() # raises StopIteration
  *             if event == u"start":
  *                 result = element.text             # <<<<<<<<<<<<<<
  *             elif element is not self._start_element:
  *                 result = element.tail
  */
-      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__text); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__text); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_result);
-      __pyx_v_result = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L7;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2776
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2773
  *             if event == u"start":
  *                 result = element.text
  *             elif element is not self._start_element:             # <<<<<<<<<<<<<<
@@ -61115,24 +61145,23 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2777
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2774
  *                 result = element.text
  *             elif element is not self._start_element:
  *                 result = element.tail             # <<<<<<<<<<<<<<
  *         return result
  * 
  */
-      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_result);
-      __pyx_v_result = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L7;
     }
     __pyx_L7:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2778
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2775
  *             elif element is not self._start_element:
  *                 result = element.tail
  *         return result             # <<<<<<<<<<<<<<
@@ -61162,7 +61191,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19ElementTextIterator_4__next__(struct __
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2780
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2777
  *         return result
  * 
  * cdef xmlNode* _createElement(xmlDoc* c_doc, object name_utf) except NULL:             # <<<<<<<<<<<<<<
@@ -61176,7 +61205,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createElement(xmlDoc *__pyx_v_c_doc, PyObj
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_createElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2782
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2779
  * cdef xmlNode* _createElement(xmlDoc* c_doc, object name_utf) except NULL:
  *     cdef xmlNode* c_node
  *     c_node = tree.xmlNewDocNode(c_doc, NULL, _xcstr(name_utf), NULL)             # <<<<<<<<<<<<<<
@@ -61185,7 +61214,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createElement(xmlDoc *__pyx_v_c_doc, PyObj
  */
   __pyx_v_c_node = xmlNewDocNode(__pyx_v_c_doc, NULL, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_name_utf), NULL);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2783
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2780
  *     cdef xmlNode* c_node
  *     c_node = tree.xmlNewDocNode(c_doc, NULL, _xcstr(name_utf), NULL)
  *     return c_node             # <<<<<<<<<<<<<<
@@ -61201,7 +61230,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createElement(xmlDoc *__pyx_v_c_doc, PyObj
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2785
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2782
  *     return c_node
  * 
  * cdef xmlNode* _createComment(xmlDoc* c_doc, const_xmlChar* text):             # <<<<<<<<<<<<<<
@@ -61215,7 +61244,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createComment(xmlDoc *__pyx_v_c_doc, const
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_createComment", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2787
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2784
  * cdef xmlNode* _createComment(xmlDoc* c_doc, const_xmlChar* text):
  *     cdef xmlNode* c_node
  *     c_node = tree.xmlNewDocComment(c_doc, text)             # <<<<<<<<<<<<<<
@@ -61224,7 +61253,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createComment(xmlDoc *__pyx_v_c_doc, const
  */
   __pyx_v_c_node = xmlNewDocComment(__pyx_v_c_doc, __pyx_v_text);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2788
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2785
  *     cdef xmlNode* c_node
  *     c_node = tree.xmlNewDocComment(c_doc, text)
  *     return c_node             # <<<<<<<<<<<<<<
@@ -61240,7 +61269,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createComment(xmlDoc *__pyx_v_c_doc, const
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2790
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2787
  *     return c_node
  * 
  * cdef xmlNode* _createPI(xmlDoc* c_doc, const_xmlChar* target, const_xmlChar* text):             # <<<<<<<<<<<<<<
@@ -61254,7 +61283,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createPI(xmlDoc *__pyx_v_c_doc, const xmlC
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_createPI", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2792
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2789
  * cdef xmlNode* _createPI(xmlDoc* c_doc, const_xmlChar* target, const_xmlChar* text):
  *     cdef xmlNode* c_node
  *     c_node = tree.xmlNewDocPI(c_doc, target, text)             # <<<<<<<<<<<<<<
@@ -61263,7 +61292,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createPI(xmlDoc *__pyx_v_c_doc, const xmlC
  */
   __pyx_v_c_node = xmlNewDocPI(__pyx_v_c_doc, __pyx_v_target, __pyx_v_text);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2793
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2790
  *     cdef xmlNode* c_node
  *     c_node = tree.xmlNewDocPI(c_doc, target, text)
  *     return c_node             # <<<<<<<<<<<<<<
@@ -61279,7 +61308,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createPI(xmlDoc *__pyx_v_c_doc, const xmlC
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2795
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2792
  *     return c_node
  * 
  * cdef xmlNode* _createEntity(xmlDoc* c_doc, const_xmlChar* name):             # <<<<<<<<<<<<<<
@@ -61293,7 +61322,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createEntity(xmlDoc *__pyx_v_c_doc, const
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_createEntity", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2797
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2794
  * cdef xmlNode* _createEntity(xmlDoc* c_doc, const_xmlChar* name):
  *     cdef xmlNode* c_node
  *     c_node = tree.xmlNewReference(c_doc, name)             # <<<<<<<<<<<<<<
@@ -61302,7 +61331,7 @@ static xmlNode *__pyx_f_4lxml_5etree__createEntity(xmlDoc *__pyx_v_c_doc, const
  */
   __pyx_v_c_node = xmlNewReference(__pyx_v_c_doc, __pyx_v_name);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2798
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2795
  *     cdef xmlNode* c_node
  *     c_node = tree.xmlNewReference(c_doc, name)
  *     return c_node             # <<<<<<<<<<<<<<
@@ -61339,7 +61368,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7Element(PyObject *__pyx_self, PyObject *
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___tag,&__pyx_n_s__attrib,&__pyx_n_s__nsmap,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2802
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2799
  * # module-level API for ElementTree
  * 
  * def Element(_tag, attrib=None, nsmap=None, **_extra):             # <<<<<<<<<<<<<<
@@ -61375,7 +61404,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7Element(PyObject *__pyx_self, PyObject *
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "Element") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "Element") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2799; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -61392,7 +61421,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7Element(PyObject *__pyx_self, PyObject *
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("Element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("Element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2799; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__extra); __pyx_v__extra = 0;
   __Pyx_AddTraceback("lxml.etree.Element", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -61414,7 +61443,7 @@ static PyObject *__pyx_pf_4lxml_5etree_6Element(CYTHON_UNUSED PyObject *__pyx_se
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("Element", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2812
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2809
  *     create an Element within a specific document or parser context.
  *     """
  *     return _makeElement(_tag, NULL, None, None, None, None,             # <<<<<<<<<<<<<<
@@ -61423,14 +61452,14 @@ static PyObject *__pyx_pf_4lxml_5etree_6Element(CYTHON_UNUSED PyObject *__pyx_se
  */
   __Pyx_XDECREF(__pyx_r);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2813
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2810
  *     """
  *     return _makeElement(_tag, NULL, None, None, None, None,
  *                         attrib, nsmap, _extra)             # <<<<<<<<<<<<<<
  * 
  * def Comment(text=None):
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, ((PyObject *)__pyx_v__extra))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v__tag, NULL, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, ((PyObject *)__pyx_v__extra))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -61464,7 +61493,7 @@ static PyObject *__pyx_pw_4lxml_5etree_9Comment(PyObject *__pyx_self, PyObject *
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__text,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2815
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2812
  *                         attrib, nsmap, _extra)
  * 
  * def Comment(text=None):             # <<<<<<<<<<<<<<
@@ -61489,7 +61518,7 @@ static PyObject *__pyx_pw_4lxml_5etree_9Comment(PyObject *__pyx_self, PyObject *
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Comment") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "Comment") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -61502,7 +61531,7 @@ static PyObject *__pyx_pw_4lxml_5etree_9Comment(PyObject *__pyx_self, PyObject *
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("Comment", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("Comment", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.Comment", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -61529,7 +61558,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
   __Pyx_RefNannySetupContext("Comment", 0);
   __Pyx_INCREF(__pyx_v_text);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2824
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2821
  *     cdef xmlNode*  c_node
  *     cdef xmlDoc*   c_doc
  *     if text is None:             # <<<<<<<<<<<<<<
@@ -61540,7 +61569,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2825
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2822
  *     cdef xmlDoc*   c_doc
  *     if text is None:
  *         text = b''             # <<<<<<<<<<<<<<
@@ -61548,50 +61577,48 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  *         text = _utf8(text)
  */
     __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
-    __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = ((PyObject *)__pyx_kp_b_25);
+    __Pyx_DECREF_SET(__pyx_v_text, ((PyObject *)__pyx_kp_b_25));
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2827
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2824
  *         text = b''
  *     else:
  *         text = _utf8(text)             # <<<<<<<<<<<<<<
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_text, __pyx_t_3);
     __pyx_t_3 = 0;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2828
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2825
  *     else:
  *         text = _utf8(text)
  *     c_doc = _newXMLDoc()             # <<<<<<<<<<<<<<
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createComment(c_doc, _xcstr(text))
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2829
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2826
  *         text = _utf8(text)
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)             # <<<<<<<<<<<<<<
  *     c_node = _createComment(c_doc, _xcstr(text))
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)
  */
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2830
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2827
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createComment(c_doc, _xcstr(text))             # <<<<<<<<<<<<<<
@@ -61600,7 +61627,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  */
   __pyx_v_c_node = __pyx_f_4lxml_5etree__createComment(__pyx_v_c_doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_text));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2831
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2828
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createComment(c_doc, _xcstr(text))
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)             # <<<<<<<<<<<<<<
@@ -61609,7 +61636,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  */
   xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2832
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2829
  *     c_node = _createComment(c_doc, _xcstr(text))
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)
  *     return _elementFactory(doc, c_node)             # <<<<<<<<<<<<<<
@@ -61617,7 +61644,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Comment(CYTHON_UNUSED PyObject *__pyx_se
  * def ProcessingInstruction(target, text=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_r = __pyx_t_3;
   __pyx_t_3 = 0;
@@ -61654,7 +61681,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11ProcessingInstruction(PyObject *__pyx_s
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__target,&__pyx_n_s__text,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2834
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2831
  *     return _elementFactory(doc, c_node)
  * 
  * def ProcessingInstruction(target, text=None):             # <<<<<<<<<<<<<<
@@ -61683,7 +61710,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11ProcessingInstruction(PyObject *__pyx_s
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ProcessingInstruction") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2834; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ProcessingInstruction") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -61698,7 +61725,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11ProcessingInstruction(PyObject *__pyx_s
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("ProcessingInstruction", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2834; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("ProcessingInstruction", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.ProcessingInstruction", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -61726,20 +61753,19 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
   __Pyx_INCREF(__pyx_v_target);
   __Pyx_INCREF(__pyx_v_text);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2843
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2840
  *     cdef xmlNode*  c_node
  *     cdef xmlDoc*   c_doc
  *     target = _utf8(target)             # <<<<<<<<<<<<<<
  *     if text is None:
  *         text = b''
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_target)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_target)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_target);
-  __pyx_v_target = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2844
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2841
  *     cdef xmlDoc*   c_doc
  *     target = _utf8(target)
  *     if text is None:             # <<<<<<<<<<<<<<
@@ -61750,7 +61776,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2845
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2842
  *     target = _utf8(target)
  *     if text is None:
  *         text = b''             # <<<<<<<<<<<<<<
@@ -61758,50 +61784,48 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
  *         text = _utf8(text)
  */
     __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
-    __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = ((PyObject *)__pyx_kp_b_25);
+    __Pyx_DECREF_SET(__pyx_v_text, ((PyObject *)__pyx_kp_b_25));
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2847
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2844
  *         text = b''
  *     else:
  *         text = _utf8(text)             # <<<<<<<<<<<<<<
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)
  */
-    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = __pyx_t_1;
+    __Pyx_DECREF_SET(__pyx_v_text, __pyx_t_1);
     __pyx_t_1 = 0;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2848
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2845
  *     else:
  *         text = _utf8(text)
  *     c_doc = _newXMLDoc()             # <<<<<<<<<<<<<<
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2849
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2846
  *         text = _utf8(text)
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)             # <<<<<<<<<<<<<<
  *     c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2850
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2847
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))             # <<<<<<<<<<<<<<
@@ -61810,7 +61834,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
  */
   __pyx_v_c_node = __pyx_f_4lxml_5etree__createPI(__pyx_v_c_doc, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_target), (const xmlChar*)PyBytes_AS_STRING(__pyx_v_text));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2851
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2848
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)             # <<<<<<<<<<<<<<
@@ -61819,7 +61843,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
  */
   xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2852
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2849
  *     c_node = _createPI(c_doc, _xcstr(target), _xcstr(text))
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)
  *     return _elementFactory(doc, c_node)             # <<<<<<<<<<<<<<
@@ -61827,7 +61851,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10ProcessingInstruction(CYTHON_UNUSED PyO
  * PI = ProcessingInstruction
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -61876,7 +61900,7 @@ static int __pyx_pw_4lxml_5etree_5CDATA_1__cinit__(PyObject *__pyx_v_self, PyObj
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -61887,7 +61911,7 @@ static int __pyx_pw_4lxml_5etree_5CDATA_1__cinit__(PyObject *__pyx_v_self, PyObj
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2864; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.CDATA.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -61898,7 +61922,7 @@ static int __pyx_pw_4lxml_5etree_5CDATA_1__cinit__(PyObject *__pyx_v_self, PyObj
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2867
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2864
  *     """
  *     cdef bytes _utf8_data
  *     def __cinit__(self, data):             # <<<<<<<<<<<<<<
@@ -61915,14 +61939,14 @@ static int __pyx_pf_4lxml_5etree_5CDATA___cinit__(struct __pyx_obj_4lxml_5etree_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2868
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2865
  *     cdef bytes _utf8_data
  *     def __cinit__(self, data):
  *         self._utf8_data = _utf8(data)             # <<<<<<<<<<<<<<
  * 
  * def Entity(name):
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_data)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_data)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->_utf8_data);
@@ -61954,7 +61978,7 @@ static PyObject *__pyx_pw_4lxml_5etree_13Entity(PyObject *__pyx_self, PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2870
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2867
  *         self._utf8_data = _utf8(data)
  * 
  * def Entity(name):             # <<<<<<<<<<<<<<
@@ -61978,19 +62002,19 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("Entity", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2882
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2879
  *     cdef xmlNode*  c_node
  *     cdef xmlDoc*   c_doc
  *     name_utf = _utf8(name)             # <<<<<<<<<<<<<<
  *     c_name = _xcstr(name_utf)
  *     if c_name[0] == c'#':
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_name_utf = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2883
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2880
  *     cdef xmlDoc*   c_doc
  *     name_utf = _utf8(name)
  *     c_name = _xcstr(name_utf)             # <<<<<<<<<<<<<<
@@ -61999,7 +62023,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
  */
   __pyx_v_c_name = (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_name_utf));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2884
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2881
  *     name_utf = _utf8(name)
  *     c_name = _xcstr(name_utf)
  *     if c_name[0] == c'#':             # <<<<<<<<<<<<<<
@@ -62009,7 +62033,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
   __pyx_t_2 = (((__pyx_v_c_name[0]) == '#') != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2885
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2882
  *     c_name = _xcstr(name_utf)
  *     if c_name[0] == c'#':
  *         if not _characterReferenceIsValid(c_name + 1):             # <<<<<<<<<<<<<<
@@ -62019,25 +62043,25 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
     __pyx_t_2 = ((!(__pyx_f_4lxml_5etree__characterReferenceIsValid((__pyx_v_c_name + 1)) != 0)) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2886
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2883
  *     if c_name[0] == c'#':
  *         if not _characterReferenceIsValid(c_name + 1):
  *             raise ValueError, u"Invalid character reference: '%s'" % name             # <<<<<<<<<<<<<<
  *     elif not _xmlNameIsValid(c_name):
  *         raise ValueError, u"Invalid entity reference: '%s'" % name
  */
-      __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_123), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_126), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
       __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), 0, 0);
       __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
     __pyx_L4:;
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2887
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2884
  *         if not _characterReferenceIsValid(c_name + 1):
  *             raise ValueError, u"Invalid character reference: '%s'" % name
  *     elif not _xmlNameIsValid(c_name):             # <<<<<<<<<<<<<<
@@ -62047,45 +62071,45 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
   __pyx_t_2 = ((!(__pyx_f_4lxml_5etree__xmlNameIsValid(__pyx_v_c_name) != 0)) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2888
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2885
  *             raise ValueError, u"Invalid character reference: '%s'" % name
  *     elif not _xmlNameIsValid(c_name):
  *         raise ValueError, u"Invalid entity reference: '%s'" % name             # <<<<<<<<<<<<<<
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)
  */
-    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_124), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_127), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2889
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2886
  *     elif not _xmlNameIsValid(c_name):
  *         raise ValueError, u"Invalid entity reference: '%s'" % name
  *     c_doc = _newXMLDoc()             # <<<<<<<<<<<<<<
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createEntity(c_doc, c_name)
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2890
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2887
  *         raise ValueError, u"Invalid entity reference: '%s'" % name
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)             # <<<<<<<<<<<<<<
  *     c_node = _createEntity(c_doc, c_name)
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2891
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2888
  *     c_doc = _newXMLDoc()
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createEntity(c_doc, c_name)             # <<<<<<<<<<<<<<
@@ -62094,7 +62118,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
  */
   __pyx_v_c_node = __pyx_f_4lxml_5etree__createEntity(__pyx_v_c_doc, __pyx_v_c_name);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2892
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2889
  *     doc = _documentFactory(c_doc, None)
  *     c_node = _createEntity(c_doc, c_name)
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)             # <<<<<<<<<<<<<<
@@ -62103,7 +62127,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
  */
   xmlAddChild(((xmlNode *)__pyx_v_c_doc), __pyx_v_c_node);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2893
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2890
  *     c_node = _createEntity(c_doc, c_name)
  *     tree.xmlAddChild(<xmlNode*>c_doc, c_node)
  *     return _elementFactory(doc, c_node)             # <<<<<<<<<<<<<<
@@ -62111,7 +62135,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12Entity(CYTHON_UNUSED PyObject *__pyx_se
  * def SubElement(_Element _parent not None, _tag,
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(__pyx_v_doc, __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -62153,7 +62177,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15SubElement(PyObject *__pyx_self, PyObje
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___parent,&__pyx_n_s___tag,&__pyx_n_s__attrib,&__pyx_n_s__nsmap,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2896
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2893
  * 
  * def SubElement(_Element _parent not None, _tag,
  *                attrib=None, nsmap=None, **_extra):             # <<<<<<<<<<<<<<
@@ -62181,7 +62205,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15SubElement(PyObject *__pyx_self, PyObje
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s___tag)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("SubElement", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("SubElement", 0, 2, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (kw_args > 0) {
@@ -62195,7 +62219,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15SubElement(PyObject *__pyx_self, PyObje
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "SubElement") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "SubElement") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -62214,14 +62238,14 @@ static PyObject *__pyx_pw_4lxml_5etree_15SubElement(PyObject *__pyx_self, PyObje
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("SubElement", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("SubElement", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__extra); __pyx_v__extra = 0;
   __Pyx_AddTraceback("lxml.etree.SubElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v__parent), __pyx_ptype_4lxml_5etree__Element, 0, "_parent", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v__parent), __pyx_ptype_4lxml_5etree__Element, 0, "_parent", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_14SubElement(__pyx_self, __pyx_v__parent, __pyx_v__tag, __pyx_v_attrib, __pyx_v_nsmap, __pyx_v__extra);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -62232,7 +62256,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15SubElement(PyObject *__pyx_self, PyObje
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2895
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2892
  *     return _elementFactory(doc, c_node)
  * 
  * def SubElement(_Element _parent not None, _tag,             # <<<<<<<<<<<<<<
@@ -62249,7 +62273,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14SubElement(CYTHON_UNUSED PyObject *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("SubElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2902
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2899
  *     appends it to an existing element.
  *     """
  *     return _makeSubElement(_parent, _tag, None, None, attrib, nsmap, _extra)             # <<<<<<<<<<<<<<
@@ -62257,7 +62281,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14SubElement(CYTHON_UNUSED PyObject *__py
  * def ElementTree(_Element element=None, *, file=None, _BaseParser parser=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeSubElement(__pyx_v__parent, __pyx_v__tag, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, ((PyObject *)__pyx_v__extra))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2902; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__makeSubElement(__pyx_v__parent, __pyx_v__tag, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, ((PyObject *)__pyx_v__extra))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -62293,7 +62317,7 @@ static PyObject *__pyx_pw_4lxml_5etree_17ElementTree(PyObject *__pyx_self, PyObj
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element,&__pyx_n_s__file,&__pyx_n_s__parser,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2904
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2901
  *     return _makeSubElement(_parent, _tag, None, None, attrib, nsmap, _extra)
  * 
  * def ElementTree(_Element element=None, *, file=None, _BaseParser parser=None):             # <<<<<<<<<<<<<<
@@ -62327,7 +62351,7 @@ static PyObject *__pyx_pw_4lxml_5etree_17ElementTree(PyObject *__pyx_self, PyObj
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ElementTree") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ElementTree") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2901; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -62342,14 +62366,14 @@ static PyObject *__pyx_pw_4lxml_5etree_17ElementTree(PyObject *__pyx_self, PyObj
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("ElementTree", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("ElementTree", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2901; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.ElementTree", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 1, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 1, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_16ElementTree(__pyx_self, __pyx_v_element, __pyx_v_file, __pyx_v_parser);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -62381,7 +62405,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("ElementTree", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2916
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2913
  *     cdef _Document doc
  * 
  *     if element is not None:             # <<<<<<<<<<<<<<
@@ -62392,7 +62416,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2917
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2914
  * 
  *     if element is not None:
  *         doc  = element._doc             # <<<<<<<<<<<<<<
@@ -62406,7 +62430,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2918
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2915
  *     if element is not None:
  *         doc  = element._doc
  *     elif file is not None:             # <<<<<<<<<<<<<<
@@ -62417,7 +62441,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2919
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2916
  *         doc  = element._doc
  *     elif file is not None:
  *         try:             # <<<<<<<<<<<<<<
@@ -62431,14 +62455,14 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
       __Pyx_XGOTREF(__pyx_t_6);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2920
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2917
  *     elif file is not None:
  *         try:
  *             doc = _parseDocument(file, parser, None)             # <<<<<<<<<<<<<<
  *         except _TargetParserResult, result_container:
  *             return result_container.result
  */
-        __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_file, __pyx_v_parser, Py_None)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2920; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_file, __pyx_v_parser, Py_None)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2917; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
         __pyx_t_3 = 0;
@@ -62450,27 +62474,27 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
       __pyx_L4_error:;
       __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2921
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2918
  *         try:
  *             doc = _parseDocument(file, parser, None)
  *         except _TargetParserResult, result_container:             # <<<<<<<<<<<<<<
  *             return result_container.result
  *     else:
  */
-      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2921; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_3);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       if (__pyx_t_7) {
         __Pyx_AddTraceback("lxml.etree.ElementTree", __pyx_clineno, __pyx_lineno, __pyx_filename);
-        if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2921; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+        if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2918; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_INCREF(__pyx_t_8);
         __pyx_v_result_container = __pyx_t_8;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2922
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2919
  *             doc = _parseDocument(file, parser, None)
  *         except _TargetParserResult, result_container:
  *             return result_container.result             # <<<<<<<<<<<<<<
@@ -62478,7 +62502,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  *         c_doc = _newXMLDoc()
  */
         __Pyx_XDECREF(__pyx_r);
-        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2922; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2919; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
         __Pyx_GOTREF(__pyx_t_10);
         __pyx_r = __pyx_t_10;
         __pyx_t_10 = 0;
@@ -62514,31 +62538,31 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2924
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2921
  *             return result_container.result
  *     else:
  *         c_doc = _newXMLDoc()             # <<<<<<<<<<<<<<
  *         doc = _documentFactory(c_doc, parser)
  * 
  */
-    __pyx_t_11 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_11 = __pyx_f_4lxml_5etree__newXMLDoc(); if (unlikely(__pyx_t_11 == NULL)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_doc = __pyx_t_11;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2925
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2922
  *     else:
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, parser)             # <<<<<<<<<<<<<<
  * 
  *     return _elementTreeFactory(doc, element)
  */
-    __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_doc, __pyx_v_parser)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_9);
     __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_9);
     __pyx_t_9 = 0;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2927
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2924
  *         doc = _documentFactory(c_doc, parser)
  * 
  *     return _elementTreeFactory(doc, element)             # <<<<<<<<<<<<<<
@@ -62546,7 +62570,7 @@ static PyObject *__pyx_pf_4lxml_5etree_16ElementTree(CYTHON_UNUSED PyObject *__p
  * def HTML(text, _BaseParser parser=None, *, base_url=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, __pyx_v_element)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, __pyx_v_element)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __pyx_r = __pyx_t_9;
   __pyx_t_9 = 0;
@@ -62587,7 +62611,7 @@ static PyObject *__pyx_pw_4lxml_5etree_19HTML(PyObject *__pyx_self, PyObject *__
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__text,&__pyx_n_s__parser,&__pyx_n_s__base_url,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2929
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2926
  *     return _elementTreeFactory(doc, element)
  * 
  * def HTML(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
@@ -62622,7 +62646,7 @@ static PyObject *__pyx_pw_4lxml_5etree_19HTML(PyObject *__pyx_self, PyObject *__
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "HTML") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2929; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "HTML") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2926; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -62638,13 +62662,13 @@ static PyObject *__pyx_pw_4lxml_5etree_19HTML(PyObject *__pyx_self, PyObject *__
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("HTML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2929; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("HTML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2926; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.HTML", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_18HTML(__pyx_self, __pyx_v_text, __pyx_v_parser, __pyx_v_base_url);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -62675,7 +62699,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
   __Pyx_RefNannySetupContext("HTML", 0);
   __Pyx_INCREF((PyObject *)__pyx_v_parser);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2944
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2941
  *     """
  *     cdef _Document doc
  *     if parser is None:             # <<<<<<<<<<<<<<
@@ -62686,20 +62710,19 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2945
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2942
  *     cdef _Document doc
  *     if parser is None:
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()             # <<<<<<<<<<<<<<
  *         if not isinstance(parser, HTMLParser):
  *             parser = __DEFAULT_HTML_PARSER
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3));
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2946
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2943
  *     if parser is None:
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  *         if not isinstance(parser, HTMLParser):             # <<<<<<<<<<<<<<
@@ -62710,7 +62733,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
     __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2947
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2944
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  *         if not isinstance(parser, HTMLParser):
  *             parser = __DEFAULT_HTML_PARSER             # <<<<<<<<<<<<<<
@@ -62718,8 +62741,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  *         doc = _parseMemoryDocument(text, base_url, parser)
  */
       __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER));
-      __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-      __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER);
+      __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER));
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -62727,7 +62749,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2948
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2945
  *         if not isinstance(parser, HTMLParser):
  *             parser = __DEFAULT_HTML_PARSER
  *     try:             # <<<<<<<<<<<<<<
@@ -62741,19 +62763,19 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
     __Pyx_XGOTREF(__pyx_t_6);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2949
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2946
  *             parser = __DEFAULT_HTML_PARSER
  *     try:
  *         doc = _parseMemoryDocument(text, base_url, parser)             # <<<<<<<<<<<<<<
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:
  */
-      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2949; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2946; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
       __pyx_t_3 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2950
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2947
  *     try:
  *         doc = _parseMemoryDocument(text, base_url, parser)
  *         return doc.getroot()             # <<<<<<<<<<<<<<
@@ -62761,7 +62783,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  *         return result_container.result
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2950; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2947; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_r = __pyx_t_3;
       __pyx_t_3 = 0;
@@ -62780,27 +62802,27 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
     __pyx_L5_error:;
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2951
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2948
  *         doc = _parseMemoryDocument(text, base_url, parser)
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:             # <<<<<<<<<<<<<<
  *         return result_container.result
  * 
  */
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2948; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_7) {
       __Pyx_AddTraceback("lxml.etree.HTML", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2948; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_8);
       __pyx_v_result_container = __pyx_t_8;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2952
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2949
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:
  *         return result_container.result             # <<<<<<<<<<<<<<
@@ -62808,7 +62830,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18HTML(CYTHON_UNUSED PyObject *__pyx_self
  * def XML(text, _BaseParser parser=None, *, base_url=None):
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2952; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2949; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_10);
       __pyx_r = __pyx_t_10;
       __pyx_t_10 = 0;
@@ -62877,7 +62899,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21XML(PyObject *__pyx_self, PyObject *__p
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__text,&__pyx_n_s__parser,&__pyx_n_s__base_url,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2954
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2951
  *         return result_container.result
  * 
  * def XML(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
@@ -62912,7 +62934,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21XML(PyObject *__pyx_self, PyObject *__p
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XML") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XML") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -62928,13 +62950,13 @@ static PyObject *__pyx_pw_4lxml_5etree_21XML(PyObject *__pyx_self, PyObject *__p
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("XML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("XML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XML", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_20XML(__pyx_self, __pyx_v_text, __pyx_v_parser, __pyx_v_base_url);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -62965,7 +62987,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
   __Pyx_RefNannySetupContext("XML", 0);
   __Pyx_INCREF((PyObject *)__pyx_v_parser);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2972
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2969
  *     """
  *     cdef _Document doc
  *     if parser is None:             # <<<<<<<<<<<<<<
@@ -62976,20 +62998,19 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2973
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2970
  *     cdef _Document doc
  *     if parser is None:
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()             # <<<<<<<<<<<<<<
  *         if not isinstance(parser, XMLParser):
  *             parser = __DEFAULT_XML_PARSER
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3));
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2974
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2971
  *     if parser is None:
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  *         if not isinstance(parser, XMLParser):             # <<<<<<<<<<<<<<
@@ -63000,7 +63021,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
     __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2975
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2972
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  *         if not isinstance(parser, XMLParser):
  *             parser = __DEFAULT_XML_PARSER             # <<<<<<<<<<<<<<
@@ -63008,8 +63029,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  *         doc = _parseMemoryDocument(text, base_url, parser)
  */
       __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
-      __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-      __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER);
+      __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -63017,7 +63037,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2976
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2973
  *         if not isinstance(parser, XMLParser):
  *             parser = __DEFAULT_XML_PARSER
  *     try:             # <<<<<<<<<<<<<<
@@ -63031,19 +63051,19 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
     __Pyx_XGOTREF(__pyx_t_6);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2977
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2974
  *             parser = __DEFAULT_XML_PARSER
  *     try:
  *         doc = _parseMemoryDocument(text, base_url, parser)             # <<<<<<<<<<<<<<
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:
  */
-      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2974; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
       __pyx_t_3 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2978
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2975
  *     try:
  *         doc = _parseMemoryDocument(text, base_url, parser)
  *         return doc.getroot()             # <<<<<<<<<<<<<<
@@ -63051,7 +63071,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  *         return result_container.result
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2978; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2975; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_r = __pyx_t_3;
       __pyx_t_3 = 0;
@@ -63070,27 +63090,27 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
     __pyx_L5_error:;
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2979
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2976
  *         doc = _parseMemoryDocument(text, base_url, parser)
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:             # <<<<<<<<<<<<<<
  *         return result_container.result
  * 
  */
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_7 = PyErr_ExceptionMatches(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_7) {
       __Pyx_AddTraceback("lxml.etree.XML", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_3, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2976; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_8);
       __pyx_v_result_container = __pyx_t_8;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2980
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2977
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:
  *         return result_container.result             # <<<<<<<<<<<<<<
@@ -63098,7 +63118,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20XML(CYTHON_UNUSED PyObject *__pyx_self,
  * def fromstring(text, _BaseParser parser=None, *, base_url=None):
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2980; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2977; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_10);
       __pyx_r = __pyx_t_10;
       __pyx_t_10 = 0;
@@ -63167,7 +63187,7 @@ static PyObject *__pyx_pw_4lxml_5etree_23fromstring(PyObject *__pyx_self, PyObje
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__text,&__pyx_n_s__parser,&__pyx_n_s__base_url,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2982
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2979
  *         return result_container.result
  * 
  * def fromstring(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
@@ -63202,7 +63222,7 @@ static PyObject *__pyx_pw_4lxml_5etree_23fromstring(PyObject *__pyx_self, PyObje
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstring") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2982; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstring") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -63218,13 +63238,13 @@ static PyObject *__pyx_pw_4lxml_5etree_23fromstring(PyObject *__pyx_self, PyObje
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("fromstring", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2982; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("fromstring", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.fromstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_22fromstring(__pyx_self, __pyx_v_text, __pyx_v_parser, __pyx_v_base_url);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -63252,7 +63272,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22fromstring(CYTHON_UNUSED PyObject *__py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("fromstring", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2996
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2993
  *     """
  *     cdef _Document doc
  *     try:             # <<<<<<<<<<<<<<
@@ -63266,19 +63286,19 @@ static PyObject *__pyx_pf_4lxml_5etree_22fromstring(CYTHON_UNUSED PyObject *__py
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2997
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2994
  *     cdef _Document doc
  *     try:
  *         doc = _parseMemoryDocument(text, base_url, parser)             # <<<<<<<<<<<<<<
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:
  */
-      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2997; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseMemoryDocument(__pyx_v_text, __pyx_v_base_url, __pyx_v_parser)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2994; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2998
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2995
  *     try:
  *         doc = _parseMemoryDocument(text, base_url, parser)
  *         return doc.getroot()             # <<<<<<<<<<<<<<
@@ -63286,7 +63306,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22fromstring(CYTHON_UNUSED PyObject *__py
  *         return result_container.result
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2998; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_4 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_doc); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2995; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_r = __pyx_t_4;
       __pyx_t_4 = 0;
@@ -63305,27 +63325,27 @@ static PyObject *__pyx_pf_4lxml_5etree_22fromstring(CYTHON_UNUSED PyObject *__py
     __pyx_L3_error:;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2999
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2996
  *         doc = _parseMemoryDocument(text, base_url, parser)
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:             # <<<<<<<<<<<<<<
  *         return result_container.result
  * 
  */
-    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2996; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     if (__pyx_t_5) {
       __Pyx_AddTraceback("lxml.etree.fromstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2996; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_INCREF(__pyx_t_6);
       __pyx_v_result_container = __pyx_t_6;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3000
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2997
  *         return doc.getroot()
  *     except _TargetParserResult, result_container:
  *         return result_container.result             # <<<<<<<<<<<<<<
@@ -63333,7 +63353,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22fromstring(CYTHON_UNUSED PyObject *__py
  * def fromstringlist(strings, _BaseParser parser=None):
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3000; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2997; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __pyx_r = __pyx_t_8;
       __pyx_t_8 = 0;
@@ -63400,7 +63420,7 @@ static PyObject *__pyx_pw_4lxml_5etree_25fromstringlist(PyObject *__pyx_self, Py
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__strings,&__pyx_n_s__parser,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3002
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2999
  *         return result_container.result
  * 
  * def fromstringlist(strings, _BaseParser parser=None):             # <<<<<<<<<<<<<<
@@ -63429,7 +63449,7 @@ static PyObject *__pyx_pw_4lxml_5etree_25fromstringlist(PyObject *__pyx_self, Py
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstringlist") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstringlist") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -63444,13 +63464,13 @@ static PyObject *__pyx_pw_4lxml_5etree_25fromstringlist(PyObject *__pyx_self, Py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("fromstringlist", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("fromstringlist", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.fromstringlist", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_24fromstringlist(__pyx_self, __pyx_v_strings, __pyx_v_parser);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -63478,7 +63498,7 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
   __Pyx_RefNannySetupContext("fromstringlist", 0);
   __Pyx_INCREF((PyObject *)__pyx_v_parser);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3012
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3009
  *     """
  *     cdef _Document doc
  *     if parser is None:             # <<<<<<<<<<<<<<
@@ -63489,35 +63509,34 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3013
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3010
  *     cdef _Document doc
  *     if parser is None:
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()             # <<<<<<<<<<<<<<
  *     feed = parser.feed
  *     for data in strings:
  */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3010; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3));
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3014
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3011
  *     if parser is None:
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  *     feed = parser.feed             # <<<<<<<<<<<<<<
  *     for data in strings:
  *         feed(data)
  */
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__feed); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__feed); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_v_feed = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3015
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3012
  *         parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  *     feed = parser.feed
  *     for data in strings:             # <<<<<<<<<<<<<<
@@ -63528,7 +63547,7 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
     __pyx_t_3 = __pyx_v_strings; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
     __pyx_t_5 = NULL;
   } else {
-    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_strings); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_v_strings); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext;
   }
@@ -63536,52 +63555,51 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
     if (!__pyx_t_5 && PyList_CheckExact(__pyx_t_3)) {
       if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_5 && PyTuple_CheckExact(__pyx_t_3)) {
       if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_6 = __pyx_t_5(__pyx_t_3);
       if (unlikely(!__pyx_t_6)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3015; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3012; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
       __Pyx_GOTREF(__pyx_t_6);
     }
-    __Pyx_XDECREF(__pyx_v_data);
-    __pyx_v_data = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_data, __pyx_t_6);
     __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3016
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3013
  *     feed = parser.feed
  *     for data in strings:
  *         feed(data)             # <<<<<<<<<<<<<<
  *     return parser.close()
  * 
  */
-    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_INCREF(__pyx_v_data);
     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_data);
     __Pyx_GIVEREF(__pyx_v_data);
-    __pyx_t_7 = PyObject_Call(__pyx_v_feed, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyObject_Call(__pyx_v_feed, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   }
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3017
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3014
  *     for data in strings:
  *         feed(data)
  *     return parser.close()             # <<<<<<<<<<<<<<
@@ -63589,9 +63607,9 @@ static PyObject *__pyx_pf_4lxml_5etree_24fromstringlist(CYTHON_UNUSED PyObject *
  * def iselement(element):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__close); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_parser), __pyx_n_s__close); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_7 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3014; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_r = __pyx_t_7;
@@ -63628,7 +63646,7 @@ static PyObject *__pyx_pw_4lxml_5etree_27iselement(PyObject *__pyx_self, PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3019
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3016
  *     return parser.close()
  * 
  * def iselement(element):             # <<<<<<<<<<<<<<
@@ -63648,7 +63666,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26iselement(CYTHON_UNUSED PyObject *__pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("iselement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3024
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3021
  *     Checks if an object appears to be a valid element object.
  *     """
  *     return isinstance(element, _Element) and (<_Element>element)._c_node is not NULL             # <<<<<<<<<<<<<<
@@ -63663,7 +63681,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26iselement(CYTHON_UNUSED PyObject *__pyx
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
-  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3021; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __pyx_r = __pyx_t_4;
   __pyx_t_4 = 0;
@@ -63698,7 +63716,7 @@ static PyObject *__pyx_pw_4lxml_5etree_29dump(PyObject *__pyx_self, PyObject *__
   {
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__elem,&__pyx_n_s__pretty_print,&__pyx_n_s__with_tail,0};
     PyObject* values[3] = {0,0,0};
-    values[2] = __pyx_k_125;
+    values[2] = __pyx_k_128;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -63721,7 +63739,7 @@ static PyObject *__pyx_pw_4lxml_5etree_29dump(PyObject *__pyx_self, PyObject *__
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dump") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "dump") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -63730,10 +63748,10 @@ static PyObject *__pyx_pw_4lxml_5etree_29dump(PyObject *__pyx_self, PyObject *__
     }
     __pyx_v_elem = ((struct LxmlElement *)values[0]);
     if (values[1]) {
-      __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3026
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3023
  *     return isinstance(element, _Element) and (<_Element>element)._c_node is not NULL
  * 
  * def dump(_Element elem not None, *, bint pretty_print=True, with_tail=True):             # <<<<<<<<<<<<<<
@@ -63746,13 +63764,13 @@ static PyObject *__pyx_pw_4lxml_5etree_29dump(PyObject *__pyx_self, PyObject *__
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("dump", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("dump", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.dump", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elem), __pyx_ptype_4lxml_5etree__Element, 0, "elem", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_elem), __pyx_ptype_4lxml_5etree__Element, 0, "elem", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_28dump(__pyx_self, __pyx_v_elem, __pyx_v_pretty_print, __pyx_v_with_tail);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -63776,29 +63794,29 @@ static PyObject *__pyx_pf_4lxml_5etree_28dump(CYTHON_UNUSED PyObject *__pyx_self
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("dump", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3032
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3029
  *     should be used for debugging only.
  *     """
  *     xml = tostring(elem, pretty_print=pretty_print, with_tail=with_tail,             # <<<<<<<<<<<<<<
  *                    encoding=u'unicode' if python.IS_PYTHON3 else None)
  *     if not pretty_print:
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__tostring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__tostring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject *)__pyx_v_elem));
   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_elem));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_elem));
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_pretty_print); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_v_pretty_print); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__pretty_print), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__pretty_print), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__with_tail), __pyx_v_with_tail) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__with_tail), __pyx_v_with_tail) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3033
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3030
  *     """
  *     xml = tostring(elem, pretty_print=pretty_print, with_tail=with_tail,
  *                    encoding=u'unicode' if python.IS_PYTHON3 else None)             # <<<<<<<<<<<<<<
@@ -63812,9 +63830,9 @@ static PyObject *__pyx_pf_4lxml_5etree_28dump(CYTHON_UNUSED PyObject *__pyx_self
     __Pyx_INCREF(Py_None);
     __pyx_t_4 = Py_None;
   }
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__encoding), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__encoding), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -63822,7 +63840,7 @@ static PyObject *__pyx_pf_4lxml_5etree_28dump(CYTHON_UNUSED PyObject *__pyx_self
   __pyx_v_xml = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3034
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3031
  *     xml = tostring(elem, pretty_print=pretty_print, with_tail=with_tail,
  *                    encoding=u'unicode' if python.IS_PYTHON3 else None)
  *     if not pretty_print:             # <<<<<<<<<<<<<<
@@ -63832,40 +63850,39 @@ static PyObject *__pyx_pf_4lxml_5etree_28dump(CYTHON_UNUSED PyObject *__pyx_self
   __pyx_t_5 = ((!(__pyx_v_pretty_print != 0)) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3035
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3032
  *                    encoding=u'unicode' if python.IS_PYTHON3 else None)
  *     if not pretty_print:
  *         xml += '\n'             # <<<<<<<<<<<<<<
  *     sys.stdout.write(xml)
  * 
  */
-    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_xml, ((PyObject *)__pyx_kp_s_49)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_xml, ((PyObject *)__pyx_kp_s_52)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_xml);
-    __pyx_v_xml = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_xml, __pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3036
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3033
  *     if not pretty_print:
  *         xml += '\n'
  *     sys.stdout.write(xml)             # <<<<<<<<<<<<<<
  * 
  * def tostring(element_or_tree, *, encoding=None, method=u"xml",
  */
-  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__stdout); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__stdout); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s__write); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s__write); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(__pyx_v_xml);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_xml);
   __Pyx_GIVEREF(__pyx_v_xml);
-  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -63910,10 +63927,10 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("tostring (wrapper)", 0);
   {
-    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element_or_tree,&__pyx_n_s__encoding,&__pyx_n_s__method,&__pyx_n_s__xml_declaration,&__pyx_n_s__pretty_print,&__pyx_n_s__with_tail,&__pyx_n_s__standalone,&__pyx_n_s__doctype,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s_92,0};
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element_or_tree,&__pyx_n_s__encoding,&__pyx_n_s__method,&__pyx_n_s__xml_declaration,&__pyx_n_s__pretty_print,&__pyx_n_s__with_tail,&__pyx_n_s__standalone,&__pyx_n_s__doctype,&__pyx_n_s__exclusive,&__pyx_n_s__with_comments,&__pyx_n_s_95,0};
     PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3038
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3035
  *     sys.stdout.write(xml)
  * 
  * def tostring(element_or_tree, *, encoding=None, method=u"xml",             # <<<<<<<<<<<<<<
@@ -63923,7 +63940,7 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)__pyx_n_u__xml);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3039
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3036
  * 
  * def tostring(element_or_tree, *, encoding=None, method=u"xml",
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,             # <<<<<<<<<<<<<<
@@ -63932,7 +63949,7 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
  */
     values[3] = ((PyObject *)Py_None);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3040
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3037
  * def tostring(element_or_tree, *, encoding=None, method=u"xml",
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,
  *              standalone=None, doctype=None,             # <<<<<<<<<<<<<<
@@ -63942,7 +63959,7 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
     values[6] = ((PyObject *)Py_None);
     values[7] = ((PyObject *)Py_None);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3041
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3038
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,
  *              standalone=None, doctype=None,
  *              bint exclusive=False, bint with_comments=True, inclusive_ns_prefixes=None):             # <<<<<<<<<<<<<<
@@ -63972,7 +63989,7 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tostring") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tostring") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3035; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -63984,10 +64001,10 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
     __pyx_v_method = values[2];
     __pyx_v_xml_declaration = values[3];
     if (values[4]) {
-      __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3039; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3036; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3039
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3036
  * 
  * def tostring(element_or_tree, *, encoding=None, method=u"xml",
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,             # <<<<<<<<<<<<<<
@@ -63997,17 +64014,17 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
       __pyx_v_pretty_print = ((int)0);
     }
     if (values[5]) {
-      __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3039; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[5]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3036; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_with_tail = ((int)1);
     }
     __pyx_v_standalone = values[6];
     __pyx_v_doctype = values[7];
     if (values[8]) {
-      __pyx_v_exclusive = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_exclusive == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_exclusive = __Pyx_PyObject_IsTrue(values[8]); if (unlikely((__pyx_v_exclusive == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3041
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3038
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,
  *              standalone=None, doctype=None,
  *              bint exclusive=False, bint with_comments=True, inclusive_ns_prefixes=None):             # <<<<<<<<<<<<<<
@@ -64017,7 +64034,7 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
       __pyx_v_exclusive = ((int)0);
     }
     if (values[9]) {
-      __pyx_v_with_comments = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_with_comments == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3041; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_with_comments = __Pyx_PyObject_IsTrue(values[9]); if (unlikely((__pyx_v_with_comments == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_with_comments = ((int)1);
     }
@@ -64025,7 +64042,7 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("tostring", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("tostring", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3035; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.tostring", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -64036,7 +64053,7 @@ static PyObject *__pyx_pw_4lxml_5etree_31tostring(PyObject *__pyx_self, PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3038
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3035
  *     sys.stdout.write(xml)
  * 
  * def tostring(element_or_tree, *, encoding=None, method=u"xml",             # <<<<<<<<<<<<<<
@@ -64061,19 +64078,19 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   __Pyx_RefNannySetupContext("tostring", 0);
   __Pyx_INCREF(__pyx_v_encoding);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3087
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3084
  *     cdef int is_standalone
  *     # C14N serialisation
  *     if method == 'c14n':             # <<<<<<<<<<<<<<
  *         if encoding is not None:
  *             raise ValueError("Cannot specify encoding with C14N")
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__c14n), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__c14n), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3088
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3085
  *     # C14N serialisation
  *     if method == 'c14n':
  *         if encoding is not None:             # <<<<<<<<<<<<<<
@@ -64084,49 +64101,49 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
     __pyx_t_3 = (__pyx_t_2 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3089
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3086
  *     if method == 'c14n':
  *         if encoding is not None:
  *             raise ValueError("Cannot specify encoding with C14N")             # <<<<<<<<<<<<<<
  *         if xml_declaration:
  *             raise ValueError("Cannot enable XML declaration in C14N")
  */
-      __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_126), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_129), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_Raise(__pyx_t_1, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3090
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3087
  *         if encoding is not None:
  *             raise ValueError("Cannot specify encoding with C14N")
  *         if xml_declaration:             # <<<<<<<<<<<<<<
  *             raise ValueError("Cannot enable XML declaration in C14N")
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  */
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3090; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3091
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3088
  *             raise ValueError("Cannot specify encoding with C14N")
  *         if xml_declaration:
  *             raise ValueError("Cannot enable XML declaration in C14N")             # <<<<<<<<<<<<<<
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  *     if not with_comments:
  */
-      __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_127), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_130), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_Raise(__pyx_t_1, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3092
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3089
  *         if xml_declaration:
  *             raise ValueError("Cannot enable XML declaration in C14N")
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)             # <<<<<<<<<<<<<<
@@ -64134,7 +64151,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         raise ValueError("Can only discard comments in C14N serialisation")
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__tostringC14N(__pyx_v_element_or_tree, __pyx_v_exclusive, __pyx_v_with_comments, __pyx_v_inclusive_ns_prefixes)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__tostringC14N(__pyx_v_element_or_tree, __pyx_v_exclusive, __pyx_v_with_comments, __pyx_v_inclusive_ns_prefixes)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_r = __pyx_t_1;
     __pyx_t_1 = 0;
@@ -64143,7 +64160,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3093
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3090
  *             raise ValueError("Cannot enable XML declaration in C14N")
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  *     if not with_comments:             # <<<<<<<<<<<<<<
@@ -64153,23 +64170,23 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   __pyx_t_3 = ((!(__pyx_v_with_comments != 0)) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3094
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3091
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  *     if not with_comments:
  *         raise ValueError("Can only discard comments in C14N serialisation")             # <<<<<<<<<<<<<<
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
  *         if xml_declaration:
  */
-    __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_128), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_131), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L6;
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3095
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3092
  *     if not with_comments:
  *         raise ValueError("Can only discard comments in C14N serialisation")
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):             # <<<<<<<<<<<<<<
@@ -64180,14 +64197,14 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   if (!__pyx_t_3) {
     __pyx_t_2 = (__pyx_v_encoding != Py_None);
     if (__pyx_t_2) {
-      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_n_s__UNICODE), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_n_s__UNICODE), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3095; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3092; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_6 = __pyx_t_5;
     } else {
@@ -64199,30 +64216,30 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3096
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3093
  *         raise ValueError("Can only discard comments in C14N serialisation")
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
  *         if xml_declaration:             # <<<<<<<<<<<<<<
  *             raise ValueError, \
  *                 u"Serialisation to unicode must not request an XML declaration"
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3093; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3097
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3094
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
  *         if xml_declaration:
  *             raise ValueError, \             # <<<<<<<<<<<<<<
  *                 u"Serialisation to unicode must not request an XML declaration"
  *         write_declaration = 0
  */
-      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_129), 0, 0);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3097; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_132), 0, 0);
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L8;
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3099
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3096
  *             raise ValueError, \
  *                 u"Serialisation to unicode must not request an XML declaration"
  *         write_declaration = 0             # <<<<<<<<<<<<<<
@@ -64231,7 +64248,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  */
     __pyx_v_write_declaration = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3100
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3097
  *                 u"Serialisation to unicode must not request an XML declaration"
  *         write_declaration = 0
  *         encoding = _unicode             # <<<<<<<<<<<<<<
@@ -64239,12 +64256,11 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         # by default, write an XML declaration only for non-standard encodings
  */
     __Pyx_INCREF(__pyx_v_4lxml_5etree__unicode);
-    __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = __pyx_v_4lxml_5etree__unicode;
+    __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_v_4lxml_5etree__unicode);
     goto __pyx_L7;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3101
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3098
  *         write_declaration = 0
  *         encoding = _unicode
  *     elif xml_declaration is None:             # <<<<<<<<<<<<<<
@@ -64255,7 +64271,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3103
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3100
  *     elif xml_declaration is None:
  *         # by default, write an XML declaration only for non-standard encodings
  *         write_declaration = encoding is not None and encoding.upper() not in \             # <<<<<<<<<<<<<<
@@ -64264,33 +64280,33 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  */
     __pyx_t_3 = (__pyx_v_encoding != Py_None);
     if (__pyx_t_3) {
-      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__upper); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_n_u__ASCII), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_n_u__ASCII), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       if (((int)__pyx_t_2)) {
-        __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_kp_u_104), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_kp_u_107), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         __pyx_t_5 = ((int)__pyx_t_6);
       } else {
         __pyx_t_5 = ((int)__pyx_t_2);
       }
       if (__pyx_t_5) {
-        __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_n_u__UTF8), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_n_u__UTF8), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         __pyx_t_6 = ((int)__pyx_t_2);
       } else {
         __pyx_t_6 = __pyx_t_5;
       }
       if (__pyx_t_6) {
-        __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_kp_u_103), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, ((PyObject *)__pyx_kp_u_106), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         __pyx_t_2 = ((int)__pyx_t_5);
       } else {
@@ -64307,19 +64323,19 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3106
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3103
  *                             (u'ASCII', u'UTF-8', u'UTF8', u'US-ASCII')
  *     else:
  *         write_declaration = xml_declaration             # <<<<<<<<<<<<<<
  *     if encoding is None:
  *         encoding = u'ASCII'
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3106; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_xml_declaration); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_write_declaration = __pyx_t_2;
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3107
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3104
  *     else:
  *         write_declaration = xml_declaration
  *     if encoding is None:             # <<<<<<<<<<<<<<
@@ -64330,7 +64346,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3108
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3105
  *         write_declaration = xml_declaration
  *     if encoding is None:
  *         encoding = u'ASCII'             # <<<<<<<<<<<<<<
@@ -64338,13 +64354,12 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  *         is_standalone = -1
  */
     __Pyx_INCREF(((PyObject *)__pyx_n_u__ASCII));
-    __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = ((PyObject *)__pyx_n_u__ASCII);
+    __Pyx_DECREF_SET(__pyx_v_encoding, ((PyObject *)__pyx_n_u__ASCII));
     goto __pyx_L9;
   }
   __pyx_L9:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3109
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3106
  *     if encoding is None:
  *         encoding = u'ASCII'
  *     if standalone is None:             # <<<<<<<<<<<<<<
@@ -64355,7 +64370,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3110
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3107
  *         encoding = u'ASCII'
  *     if standalone is None:
  *         is_standalone = -1             # <<<<<<<<<<<<<<
@@ -64366,17 +64381,17 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
     goto __pyx_L10;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3111
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3108
  *     if standalone is None:
  *         is_standalone = -1
  *     elif standalone:             # <<<<<<<<<<<<<<
  *         write_declaration = 1
  *         is_standalone = 1
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3112
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3109
  *         is_standalone = -1
  *     elif standalone:
  *         write_declaration = 1             # <<<<<<<<<<<<<<
@@ -64385,7 +64400,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  */
     __pyx_v_write_declaration = 1;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3113
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3110
  *     elif standalone:
  *         write_declaration = 1
  *         is_standalone = 1             # <<<<<<<<<<<<<<
@@ -64397,7 +64412,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3115
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3112
  *         is_standalone = 1
  *     else:
  *         write_declaration = 1             # <<<<<<<<<<<<<<
@@ -64406,7 +64421,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  */
     __pyx_v_write_declaration = 1;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3116
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3113
  *     else:
  *         write_declaration = 1
  *         is_standalone = 0             # <<<<<<<<<<<<<<
@@ -64417,7 +64432,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   }
   __pyx_L10:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3118
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3115
  *         is_standalone = 0
  * 
  *     if isinstance(element_or_tree, _Element):             # <<<<<<<<<<<<<<
@@ -64428,7 +64443,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3119
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3116
  * 
  *     if isinstance(element_or_tree, _Element):
  *         return _tostring(<_Element>element_or_tree, encoding, doctype, method,             # <<<<<<<<<<<<<<
@@ -64437,14 +64452,14 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
  */
     __Pyx_XDECREF(__pyx_r);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3121
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3118
  *         return _tostring(<_Element>element_or_tree, encoding, doctype, method,
  *                          write_declaration, 0, pretty_print, with_tail,
  *                          is_standalone)             # <<<<<<<<<<<<<<
  *     elif isinstance(element_or_tree, _ElementTree):
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 0, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_is_standalone); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3119; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 0, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_is_standalone); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
@@ -64452,7 +64467,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
     goto __pyx_L11;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3122
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3119
  *                          write_declaration, 0, pretty_print, with_tail,
  *                          is_standalone)
  *     elif isinstance(element_or_tree, _ElementTree):             # <<<<<<<<<<<<<<
@@ -64463,7 +64478,7 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3123
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3120
  *                          is_standalone)
  *     elif isinstance(element_or_tree, _ElementTree):
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,             # <<<<<<<<<<<<<<
@@ -64474,14 +64489,14 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
     __pyx_t_4 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_element_or_tree)->_context_node);
     __Pyx_INCREF(__pyx_t_4);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3125
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3122
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
  *                          encoding, doctype, method, write_declaration, 1,
  *                          pretty_print, with_tail, is_standalone)             # <<<<<<<<<<<<<<
  *     else:
  *         raise TypeError, u"Type '%s' cannot be serialized." % \
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_4), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_is_standalone); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_4), __pyx_v_encoding, __pyx_v_doctype, __pyx_v_method, __pyx_v_write_declaration, 1, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_is_standalone); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_r = __pyx_t_1;
@@ -64491,21 +64506,21 @@ static PyObject *__pyx_pf_4lxml_5etree_30tostring(CYTHON_UNUSED PyObject *__pyx_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3128
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3125
  *     else:
  *         raise TypeError, u"Type '%s' cannot be serialized." % \
  *             python._fqtypename(element_or_tree)             # <<<<<<<<<<<<<<
  * 
  * def tostringlist(element_or_tree, *args, **kwargs):
  */
-    __pyx_t_1 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_130), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_133), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3124; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L11:;
 
@@ -64569,7 +64584,7 @@ static PyObject *__pyx_pw_4lxml_5etree_33tostringlist(PyObject *__pyx_self, PyOb
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "tostringlist") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "tostringlist") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
       goto __pyx_L5_argtuple_error;
@@ -64580,7 +64595,7 @@ static PyObject *__pyx_pw_4lxml_5etree_33tostringlist(PyObject *__pyx_self, PyOb
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("tostringlist", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("tostringlist", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
   __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
@@ -64595,7 +64610,7 @@ static PyObject *__pyx_pw_4lxml_5etree_33tostringlist(PyObject *__pyx_self, PyOb
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3130
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3127
  *             python._fqtypename(element_or_tree)
  * 
  * def tostringlist(element_or_tree, *args, **kwargs):             # <<<<<<<<<<<<<<
@@ -64615,7 +64630,7 @@ static PyObject *__pyx_pf_4lxml_5etree_32tostringlist(CYTHON_UNUSED PyObject *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("tostringlist", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3139
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3136
  *     single string wrapped in a list.
  *     """
  *     return [tostring(element_or_tree, *args, **kwargs)]             # <<<<<<<<<<<<<<
@@ -64623,27 +64638,27 @@ static PyObject *__pyx_pf_4lxml_5etree_32tostringlist(CYTHON_UNUSED PyObject *__
  * def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__tostring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__tostring); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(__pyx_v_element_or_tree);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_element_or_tree);
   __Pyx_GIVEREF(__pyx_v_element_or_tree);
-  __pyx_t_3 = PySequence_Tuple(((PyObject *)__pyx_v_args)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PySequence_Tuple(((PyObject *)__pyx_v_args)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __pyx_t_4 = PyNumber_Add(((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyNumber_Add(((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __pyx_t_3 = ((PyObject *)__pyx_v_kwargs);
   __Pyx_INCREF(__pyx_t_3);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
@@ -64688,7 +64703,7 @@ static PyObject *__pyx_pw_4lxml_5etree_35tounicode(PyObject *__pyx_self, PyObjec
     PyObject* values[5] = {0,0,0,0,0};
     values[1] = ((PyObject *)__pyx_n_u__xml);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3142
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3139
  * 
  * def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,
  *               bint with_tail=True, doctype=None):             # <<<<<<<<<<<<<<
@@ -64718,7 +64733,7 @@ static PyObject *__pyx_pw_4lxml_5etree_35tounicode(PyObject *__pyx_self, PyObjec
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tounicode") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tounicode") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -64728,10 +64743,10 @@ static PyObject *__pyx_pw_4lxml_5etree_35tounicode(PyObject *__pyx_self, PyObjec
     __pyx_v_element_or_tree = values[0];
     __pyx_v_method = values[1];
     if (values[2]) {
-      __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3141
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3138
  *     return [tostring(element_or_tree, *args, **kwargs)]
  * 
  * def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,             # <<<<<<<<<<<<<<
@@ -64741,10 +64756,10 @@ static PyObject *__pyx_pw_4lxml_5etree_35tounicode(PyObject *__pyx_self, PyObjec
       __pyx_v_pretty_print = ((int)0);
     }
     if (values[3]) {
-      __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3142; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3139; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3142
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3139
  * 
  * def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,
  *               bint with_tail=True, doctype=None):             # <<<<<<<<<<<<<<
@@ -64757,7 +64772,7 @@ static PyObject *__pyx_pw_4lxml_5etree_35tounicode(PyObject *__pyx_self, PyObjec
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("tounicode", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3141; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("tounicode", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.tounicode", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -64768,7 +64783,7 @@ static PyObject *__pyx_pw_4lxml_5etree_35tounicode(PyObject *__pyx_self, PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3141
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3138
  *     return [tostring(element_or_tree, *args, **kwargs)]
  * 
  * def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,             # <<<<<<<<<<<<<<
@@ -64789,7 +64804,7 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("tounicode", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3164
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3161
  *     on the tail text of children, which will always be serialised.
  *     """
  *     if isinstance(element_or_tree, _Element):             # <<<<<<<<<<<<<<
@@ -64800,7 +64815,7 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3165
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3162
  *     """
  *     if isinstance(element_or_tree, _Element):
  *         return _tostring(<_Element>element_or_tree, _unicode, doctype, method,             # <<<<<<<<<<<<<<
@@ -64811,14 +64826,14 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
     __pyx_t_3 = __pyx_v_4lxml_5etree__unicode;
     __Pyx_INCREF(__pyx_t_3);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3166
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3163
  *     if isinstance(element_or_tree, _Element):
  *         return _tostring(<_Element>element_or_tree, _unicode, doctype, method,
  *                           0, 0, pretty_print, with_tail, -1)             # <<<<<<<<<<<<<<
  *     elif isinstance(element_or_tree, _ElementTree):
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), __pyx_t_3, __pyx_v_doctype, __pyx_v_method, 0, 0, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_v_element_or_tree), __pyx_t_3, __pyx_v_doctype, __pyx_v_method, 0, 0, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_r = __pyx_t_4;
@@ -64827,7 +64842,7 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3167
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3164
  *         return _tostring(<_Element>element_or_tree, _unicode, doctype, method,
  *                           0, 0, pretty_print, with_tail, -1)
  *     elif isinstance(element_or_tree, _ElementTree):             # <<<<<<<<<<<<<<
@@ -64838,7 +64853,7 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3168
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3165
  *                           0, 0, pretty_print, with_tail, -1)
  *     elif isinstance(element_or_tree, _ElementTree):
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,             # <<<<<<<<<<<<<<
@@ -64849,7 +64864,7 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
     __pyx_t_4 = ((PyObject *)((struct LxmlElementTree *)__pyx_v_element_or_tree)->_context_node);
     __Pyx_INCREF(__pyx_t_4);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3169
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3166
  *     elif isinstance(element_or_tree, _ElementTree):
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
  *                          _unicode, doctype, method, 0, 1, pretty_print,             # <<<<<<<<<<<<<<
@@ -64859,14 +64874,14 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
     __pyx_t_3 = __pyx_v_4lxml_5etree__unicode;
     __Pyx_INCREF(__pyx_t_3);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3170
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3167
  *         return _tostring((<_ElementTree>element_or_tree)._context_node,
  *                          _unicode, doctype, method, 0, 1, pretty_print,
  *                          with_tail, -1)             # <<<<<<<<<<<<<<
  *     else:
  *         raise TypeError, u"Type '%s' cannot be serialized." % \
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_4), __pyx_t_3, __pyx_v_doctype, __pyx_v_method, 0, 1, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__tostring(((struct LxmlElement *)__pyx_t_4), __pyx_t_3, __pyx_v_doctype, __pyx_v_method, 0, 1, __pyx_v_pretty_print, __pyx_v_with_tail, -1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -64877,18 +64892,18 @@ static PyObject *__pyx_pf_4lxml_5etree_34tounicode(CYTHON_UNUSED PyObject *__pyx
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3173
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3170
  *     else:
  *         raise TypeError, u"Type '%s' cannot be serialized." % \
  *             type(element_or_tree)             # <<<<<<<<<<<<<<
  * 
  * def parse(source, _BaseParser parser=None, *, base_url=None):
  */
-    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_130), ((PyObject *)Py_TYPE(__pyx_v_element_or_tree))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_133), ((PyObject *)Py_TYPE(__pyx_v_element_or_tree))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
@@ -64924,7 +64939,7 @@ static PyObject *__pyx_pw_4lxml_5etree_37parse(PyObject *__pyx_self, PyObject *_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__source,&__pyx_n_s__parser,&__pyx_n_s__base_url,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3175
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3172
  *             type(element_or_tree)
  * 
  * def parse(source, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
@@ -64959,7 +64974,7 @@ static PyObject *__pyx_pw_4lxml_5etree_37parse(PyObject *__pyx_self, PyObject *_
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -64975,13 +64990,13 @@ static PyObject *__pyx_pw_4lxml_5etree_37parse(PyObject *__pyx_self, PyObject *_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3175; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return NULL;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_parser), __pyx_ptype_4lxml_5etree__BaseParser, 1, "parser", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_36parse(__pyx_self, __pyx_v_source, __pyx_v_parser, __pyx_v_base_url);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -65009,7 +65024,7 @@ static PyObject *__pyx_pf_4lxml_5etree_36parse(CYTHON_UNUSED PyObject *__pyx_sel
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("parse", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3200
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3197
  *     """
  *     cdef _Document doc
  *     try:             # <<<<<<<<<<<<<<
@@ -65023,19 +65038,19 @@ static PyObject *__pyx_pf_4lxml_5etree_36parse(CYTHON_UNUSED PyObject *__pyx_sel
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3201
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3198
  *     cdef _Document doc
  *     try:
  *         doc = _parseDocument(source, parser, base_url)             # <<<<<<<<<<<<<<
  *         return _elementTreeFactory(doc, None)
  *     except _TargetParserResult, result_container:
  */
-      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_source, __pyx_v_parser, __pyx_v_base_url)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3201; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocument(__pyx_v_source, __pyx_v_parser, __pyx_v_base_url)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3198; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3202
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3199
  *     try:
  *         doc = _parseDocument(source, parser, base_url)
  *         return _elementTreeFactory(doc, None)             # <<<<<<<<<<<<<<
@@ -65043,7 +65058,7 @@ static PyObject *__pyx_pf_4lxml_5etree_36parse(CYTHON_UNUSED PyObject *__pyx_sel
  *         return result_container.result
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3202; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3199; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_r = __pyx_t_4;
       __pyx_t_4 = 0;
@@ -65062,27 +65077,27 @@ static PyObject *__pyx_pf_4lxml_5etree_36parse(CYTHON_UNUSED PyObject *__pyx_sel
     __pyx_L3_error:;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3203
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3200
  *         doc = _parseDocument(source, parser, base_url)
  *         return _elementTreeFactory(doc, None)
  *     except _TargetParserResult, result_container:             # <<<<<<<<<<<<<<
  *         return result_container.result
  * 
  */
-    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3203; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s___TargetParserResult); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3200; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     if (__pyx_t_5) {
       __Pyx_AddTraceback("lxml.etree.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3203; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3200; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_INCREF(__pyx_t_6);
       __pyx_v_result_container = __pyx_t_6;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3204
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3201
  *         return _elementTreeFactory(doc, None)
  *     except _TargetParserResult, result_container:
  *         return result_container.result             # <<<<<<<<<<<<<<
@@ -65090,7 +65105,7 @@ static PyObject *__pyx_pf_4lxml_5etree_36parse(CYTHON_UNUSED PyObject *__pyx_sel
  * 
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3204; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_result_container, __pyx_n_s__result); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3201; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __pyx_r = __pyx_t_8;
       __pyx_t_8 = 0;
@@ -65215,7 +65230,7 @@ static int __pyx_f_4lxml_5etree_14_ReadOnlyProxy__assertNode(struct __pyx_obj_4l
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_node != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_131));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_134));
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 17; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -65267,7 +65282,7 @@ static int __pyx_f_4lxml_5etree_14_ReadOnlyProxy__raise_unsupported_type(struct
  */
   __pyx_t_1 = PyInt_FromLong(__pyx_v_self->_c_node->type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_132), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_135), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -65401,7 +65416,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_3tag___get__(struct __py
  *                 return Comment
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_81); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_84); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -65643,7 +65658,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4text___get__(struct __p
     __Pyx_XDECREF(__pyx_r);
     __pyx_t_3 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_87), __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_90), __pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_r = ((PyObject *)__pyx_t_7);
@@ -65921,7 +65936,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
     __Pyx_GIVEREF(__pyx_t_5);
     __pyx_t_3 = 0;
     __pyx_t_5 = 0;
-    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_71), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_74), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __pyx_r = ((PyObject *)__pyx_t_5);
@@ -65950,7 +65965,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
     __Pyx_XDECREF(__pyx_r);
     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_80), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_r = ((PyObject *)__pyx_t_4);
@@ -65979,7 +65994,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
     __Pyx_XDECREF(__pyx_r);
     __pyx_t_4 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->_c_node->name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_87), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_90), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_r = ((PyObject *)__pyx_t_5);
@@ -66038,7 +66053,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
       PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_text);
       __Pyx_GIVEREF(__pyx_v_text);
       __pyx_t_5 = 0;
-      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_82), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_85), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __pyx_r = ((PyObject *)__pyx_t_5);
@@ -66058,7 +66073,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_2__repr__(struct __pyx_o
       __Pyx_XDECREF(__pyx_r);
       __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__target); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_83), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_86), __pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_r = ((PyObject *)__pyx_t_4);
@@ -66427,7 +66442,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_4__getitem__(struct __py
  *             return _newReadOnlyProxy(self._source_proxy, c_node)
  * 
  */
-      __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_67), 0, 0);
+      __Pyx_Raise(__pyx_builtin_IndexError, ((PyObject *)__pyx_kp_u_70), 0, 0);
       {__pyx_filename = __pyx_f[8]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L11;
     }
@@ -67068,7 +67083,7 @@ static PyObject *__pyx_pw_4lxml_5etree_14_ReadOnlyProxy_17iterchildren(PyObject
  * 
  */
     values[0] = ((PyObject *)Py_None);
-    values[1] = __pyx_k_133;
+    values[1] = __pyx_k_136;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -67156,7 +67171,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_16iterchildren(struct __
  */
   __pyx_t_2 = (__pyx_v_tag != Py_None);
   if (__pyx_t_2) {
-    __pyx_t_1 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_115), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_118), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_4 = __pyx_t_3;
@@ -67208,8 +67223,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_16iterchildren(struct __
         }
         __Pyx_GOTREF(__pyx_t_8);
       }
-      __Pyx_XDECREF(__pyx_v_el);
-      __pyx_v_el = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_v_el, __pyx_t_8);
       __pyx_t_8 = 0;
       __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_el, __pyx_n_s__tag); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
@@ -67224,8 +67238,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_16iterchildren(struct __
       __pyx_L6:;
     }
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __Pyx_DECREF(__pyx_v_children);
-    __pyx_v_children = ((PyObject *)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_children, ((PyObject *)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
@@ -67248,10 +67261,9 @@ static PyObject *__pyx_pf_4lxml_5etree_14_ReadOnlyProxy_16iterchildren(struct __
  *         return iter(children)
  * 
  */
-    __pyx_t_1 = PyObject_GetItem(__pyx_v_children, __pyx_k_slice_134); if (!__pyx_t_1) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_GetItem(__pyx_v_children, __pyx_k_slice_137); if (!__pyx_t_1) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(__pyx_v_children);
-    __pyx_v_children = __pyx_t_1;
+    __Pyx_DECREF_SET(__pyx_v_children, __pyx_t_1);
     __pyx_t_1 = 0;
     goto __pyx_L7;
   }
@@ -67984,9 +67996,9 @@ static int __pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4name_2__set__(struct __
  *                 raise ValueError(u"Invalid entity name '%s'" % value)
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  */
-  __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_84), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_87), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!(__pyx_t_2 != 0)) {
-    __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_85), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_88), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = (__pyx_t_3 != 0);
   } else {
     __pyx_t_4 = (__pyx_t_2 != 0);
@@ -68000,7 +68012,7 @@ static int __pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4name_2__set__(struct __
  *             tree.xmlNodeSetName(self._c_node, _xcstr(value_utf))
  * 
  */
-    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_86), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_89), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
@@ -68078,7 +68090,7 @@ static PyObject *__pyx_pf_4lxml_5etree_20_ReadOnlyEntityProxy_4text___get__(stru
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_self->__pyx_base._c_node->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_87), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_90), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = ((PyObject *)__pyx_t_2);
@@ -68710,7 +68722,7 @@ static struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_f_4lxml_5etree__newRe
  */
     __pyx_t_2 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_135), __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_138), __pyx_t_2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -68972,8 +68984,7 @@ static PyObject *__pyx_f_4lxml_5etree__freeReadOnlyProxies(struct __pyx_obj_4lxm
     __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__ReadOnlyProxy))))) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_el));
-    __pyx_v_el = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_5);
+    __Pyx_XDECREF_SET(__pyx_v_el, ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_5));
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":352
@@ -69083,7 +69094,7 @@ static int __pyx_pf_4lxml_5etree_18_OpaqueNodeWrapper___init__(CYTHON_UNUSED str
  * 
  * @cython.final
  */
-  __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_136), 0, 0);
+  __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_139), 0, 0);
   {__pyx_filename = __pyx_f[8]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
@@ -69121,7 +69132,7 @@ static int __pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper__assertNode(struct __py
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->__pyx_base._c_node != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_131));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_134));
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -69219,7 +69230,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append(struct __p
  *         elif c_node.type not in (tree.XML_PI_NODE, tree.XML_COMMENT_NODE):
  *             raise TypeError, u"unsupported element type for top-level node: %d" % c_node.type
  */
-      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_137), 0, 0);
+      __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_140), 0, 0);
       {__pyx_filename = __pyx_f[8]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
@@ -69254,7 +69265,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper_append(struct __p
  */
     __pyx_t_7 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
-    __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_138), __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_141), __pyx_t_7); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_8));
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_8), 0, 0);
@@ -69446,8 +69457,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_OpaqueDocumentWrapper_2extend(struct _
       }
       __Pyx_GOTREF(__pyx_t_5);
     }
-    __Pyx_XDECREF(__pyx_v_element);
-    __pyx_v_element = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_5);
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":401
@@ -69748,8 +69758,7 @@ static int __pyx_pf_4lxml_5etree_23_ModifyContentOnlyProxy_4text_2__set__(struct
  */
     __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_4);
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":433
@@ -69897,8 +69906,7 @@ static int __pyx_pf_4lxml_5etree_25_ModifyContentOnlyPIProxy_6target_2__set__(st
  */
   __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(__pyx_v_value);
-  __pyx_v_value = __pyx_t_2;
+  __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_2);
   __pyx_t_2 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":450
@@ -70027,8 +70035,7 @@ static int __pyx_pf_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_2__set__(
  */
   __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_value);
-  __pyx_v_value = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":463
@@ -70039,9 +70046,9 @@ static int __pyx_pf_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_2__set__(
  *             c_text = _xcstr(value)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_84), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_87), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if ((__pyx_t_2 != 0)) {
-    __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_85), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_88), __pyx_v_value, Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 463; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = (__pyx_t_3 != 0);
   } else {
     __pyx_t_4 = (__pyx_t_2 != 0);
@@ -70055,7 +70062,7 @@ static int __pyx_pf_4lxml_5etree_29_ModifyContentOnlyEntityProxy_4name_2__set__(
  *             c_text = _xcstr(value)
  *             tree.xmlNodeSetName(self._c_node, c_text)
  */
-    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_86), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_89), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_1));
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -70313,8 +70320,7 @@ static PyObject *__pyx_pf_4lxml_5etree_23_AppendOnlyElementProxy_2extend(struct
       }
       __Pyx_GOTREF(__pyx_t_5);
     }
-    __Pyx_XDECREF(__pyx_v_element);
-    __pyx_v_element = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_element, __pyx_t_5);
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":493
@@ -70478,8 +70484,7 @@ static int __pyx_pf_4lxml_5etree_23_AppendOnlyElementProxy_4text_2__set__(struct
     __pyx_t_5 = ((PyObject *)__Pyx_decode_bytes(__pyx_t_4, 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_5));
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = ((PyObject *)__pyx_t_5);
+    __Pyx_DECREF_SET(__pyx_v_value, ((PyObject *)__pyx_t_5));
     __pyx_t_5 = 0;
     goto __pyx_L3;
   }
@@ -70612,7 +70617,7 @@ static struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *__pyx_f_4lxml_5etree__newAp
  */
     __pyx_t_2 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_135), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_138), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -70773,7 +70778,7 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  * 
  *     if c_node is NULL:
  */
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_139), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_142), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -70798,7 +70803,7 @@ static xmlNode *__pyx_f_4lxml_5etree__roNodeOf(PyObject *__pyx_v_element) {
  *     return c_node
  * 
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_140), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_143), 0, 0);
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 537; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -70923,7 +70928,7 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  * 
  *     if c_node is NULL:
  */
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_139), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_142), ((PyObject *)Py_TYPE(__pyx_v_element))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -70947,7 +70952,7 @@ static xmlNode *__pyx_f_4lxml_5etree__nonRoNodeOf(PyObject *__pyx_v_element) {
  *         raise TypeError, u"invalid element"             # <<<<<<<<<<<<<<
  *     return c_node
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_140), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_143), 0, 0);
     {__pyx_filename = __pyx_f[8]; __pyx_lineno = 552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -71177,8 +71182,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *             ns, tag = _getNsTag(_getattr(self, 'TAG'))
  */
       __Pyx_INCREF(Py_None);
-      __Pyx_XDECREF(__pyx_v_namespace);
-      __pyx_v_namespace = Py_None;
+      __Pyx_XDECREF_SET(__pyx_v_namespace, Py_None);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
@@ -71305,8 +71309,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *             tag = _utf8(_getattr(_getattr(self, '__class__'), '__name__'))
  */
         __Pyx_INCREF(__pyx_v_ns);
-        __Pyx_DECREF(__pyx_v_namespace);
-        __pyx_v_namespace = __pyx_v_ns;
+        __Pyx_DECREF_SET(__pyx_v_namespace, __pyx_v_ns);
         goto __pyx_L23;
       }
       __pyx_L23:;
@@ -71368,8 +71371,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
       __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_12)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-      __Pyx_XDECREF(__pyx_v_tag);
-      __pyx_v_tag = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_8);
       __pyx_t_8 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":60
@@ -71392,14 +71394,13 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  */
         __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_tag, __pyx_n_s__split); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
         __Pyx_GOTREF(__pyx_t_8);
-        __pyx_t_12 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_141), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+        __pyx_t_12 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_144), NULL); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
         __Pyx_GOTREF(__pyx_t_12);
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_12, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_8) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-        __Pyx_DECREF(__pyx_v_tag);
-        __pyx_v_tag = __pyx_t_8;
+        __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_8);
         __pyx_t_8 = 0;
         goto __pyx_L26;
       }
@@ -71493,8 +71494,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  *                 if isinstance(child, _Element):
  */
       __Pyx_INCREF(Py_None);
-      __Pyx_XDECREF(((PyObject *)__pyx_v_parser));
-      __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None);
+      __Pyx_XDECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None));
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":66
  *         except AttributeError:
@@ -71511,8 +71511,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
         #else
         __pyx_t_12 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L29_except_error;}
         #endif
-        __Pyx_XDECREF(__pyx_v_child);
-        __pyx_v_child = __pyx_t_12;
+        __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_12);
         __pyx_t_12 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":67
@@ -71535,8 +71534,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  */
           __pyx_t_12 = ((PyObject *)((struct LxmlElement *)__pyx_v_child)->_doc->_parser);
           __Pyx_INCREF(__pyx_t_12);
-          __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-          __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_12);
+          __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_12));
           __pyx_t_12 = 0;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":69
@@ -71715,8 +71713,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
     #else
     __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 80; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    __Pyx_XDECREF(__pyx_v_child);
-    __pyx_v_child = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_7);
     __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":81
@@ -71815,8 +71812,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  */
       if (!(likely(((__pyx_v_child) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_child, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_INCREF(__pyx_v_child);
-      __Pyx_DECREF(((PyObject *)__pyx_v_last_child));
-      __pyx_v_last_child = ((struct LxmlElement *)__pyx_v_child);
+      __Pyx_DECREF_SET(__pyx_v_last_child, ((struct LxmlElement *)__pyx_v_child));
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":90
  *             elif isinstance(child, _Element):
@@ -71855,8 +71851,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
       __pyx_t_7 = PyObject_Call(__pyx_v_child, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       if (!(likely(((__pyx_t_7) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_7, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(((PyObject *)__pyx_v_last_child));
-      __pyx_v_last_child = ((struct LxmlElement *)__pyx_t_7);
+      __Pyx_DECREF_SET(__pyx_v_last_child, ((struct LxmlElement *)__pyx_t_7));
       __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":93
@@ -71878,7 +71873,7 @@ static int __pyx_pf_4lxml_5etree_11ElementBase___init__(struct LxmlElementBase *
  * 
  * cdef class CommentBase(_Comment):
  */
-      __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_142), ((PyObject *)Py_TYPE(__pyx_v_child))); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_145), ((PyObject *)Py_TYPE(__pyx_v_child))); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
       __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_7), 0, 0);
       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
@@ -72004,8 +71999,7 @@ static int __pyx_pf_4lxml_5etree_11CommentBase___init__(struct __pyx_obj_4lxml_5
  *             text = _utf8(text)
  */
     __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
-    __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = ((PyObject *)__pyx_kp_b_25);
+    __Pyx_DECREF_SET(__pyx_v_text, ((PyObject *)__pyx_kp_b_25));
     goto __pyx_L3;
   }
   /*else*/ {
@@ -72019,8 +72013,7 @@ static int __pyx_pf_4lxml_5etree_11CommentBase___init__(struct __pyx_obj_4lxml_5
  */
     __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_text, __pyx_t_3);
     __pyx_t_3 = 0;
   }
   __pyx_L3:;
@@ -72221,8 +72214,7 @@ static int __pyx_pf_4lxml_5etree_6PIBase___init__(struct __pyx_obj_4lxml_5etree_
  */
   __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_target)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_target);
-  __pyx_v_target = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":144
@@ -72244,8 +72236,7 @@ static int __pyx_pf_4lxml_5etree_6PIBase___init__(struct __pyx_obj_4lxml_5etree_
  *             text = _utf8(text)
  */
     __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
-    __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = ((PyObject *)__pyx_kp_b_25);
+    __Pyx_DECREF_SET(__pyx_v_text, ((PyObject *)__pyx_kp_b_25));
     goto __pyx_L3;
   }
   /*else*/ {
@@ -72259,8 +72250,7 @@ static int __pyx_pf_4lxml_5etree_6PIBase___init__(struct __pyx_obj_4lxml_5etree_
  */
     __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_text)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(__pyx_v_text);
-    __pyx_v_text = __pyx_t_1;
+    __Pyx_DECREF_SET(__pyx_v_text, __pyx_t_1);
     __pyx_t_1 = 0;
   }
   __pyx_L3:;
@@ -72488,7 +72478,7 @@ static int __pyx_pf_4lxml_5etree_10EntityBase___init__(struct __pyx_obj_4lxml_5e
  *         elif not _xmlNameIsValid(c_name):
  *             raise ValueError, u"Invalid entity reference: '%s'" % name
  */
-      __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_123), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_126), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
       __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), 0, 0);
       __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -72516,7 +72506,7 @@ static int __pyx_pf_4lxml_5etree_10EntityBase___init__(struct __pyx_obj_4lxml_5e
  *         c_doc = _newXMLDoc()
  *         doc = _documentFactory(c_doc, None)
  */
-    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_124), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_127), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_1), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -72746,7 +72736,7 @@ static int __pyx_f_4lxml_5etree__validateNodeClass(xmlNode *__pyx_v_c_node, PyOb
     if (unlikely(!0)) {
       __pyx_t_2 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_143), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_146), __pyx_t_2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_3));
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_3));
@@ -72790,7 +72780,7 @@ static int __pyx_f_4lxml_5etree__validateNodeClass(xmlNode *__pyx_v_c_node, PyOb
     __Pyx_INCREF(((PyObject *)Py_TYPE(__pyx_v_cls)));
     PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)Py_TYPE(__pyx_v_cls)));
     __Pyx_GIVEREF(((PyObject *)Py_TYPE(__pyx_v_cls)));
-    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_144), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_147), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 204; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -73424,7 +73414,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  * 
  *         if comment is None:
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_145), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_148), 0, 0);
     {__pyx_filename = __pyx_f[9]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -73489,7 +73479,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  * 
  *         if entity is None:
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_146), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_149), 0, 0);
     {__pyx_filename = __pyx_f[9]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L4:;
@@ -73554,7 +73544,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  * 
  *         if pi is None:
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_147), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_150), 0, 0);
     {__pyx_filename = __pyx_f[9]; __pyx_lineno = 300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L5:;
@@ -73619,7 +73609,7 @@ static int __pyx_pf_4lxml_5etree_25ElementDefaultClassLookup_2__init__(struct __
  * 
  * cdef object _lookupDefaultElementClass(state, _Document _doc, xmlNode* c_node):
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_148), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_151), 0, 0);
     {__pyx_filename = __pyx_f[9]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L6:;
@@ -74000,7 +73990,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
  *                     if tree.xmlStrstr(c_node.content, <unsigned char*>"text/xsl") is not NULL or \
  *                            tree.xmlStrstr(c_node.content, <unsigned char*>"text/xml") is not NULL:
  */
-        __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_node->name, ((unsigned char *)((unsigned char *)__pyx_k_149))) == 0) != 0);
+        __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_node->name, ((unsigned char *)((unsigned char *)__pyx_k_152))) == 0) != 0);
         if (__pyx_t_1) {
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":331
@@ -74010,7 +74000,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
  *                            tree.xmlStrstr(c_node.content, <unsigned char*>"text/xml") is not NULL:
  *                         return _XSLTProcessingInstruction
  */
-          __pyx_t_1 = ((xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_150))) != NULL) != 0);
+          __pyx_t_1 = ((xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_153))) != NULL) != 0);
           if (!__pyx_t_1) {
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":332
@@ -74020,7 +74010,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
  *                         return _XSLTProcessingInstruction
  *             return _ProcessingInstruction
  */
-            __pyx_t_3 = ((xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_151))) != NULL) != 0);
+            __pyx_t_3 = ((xmlStrstr(__pyx_v_c_node->content, ((unsigned char *)((unsigned char *)__pyx_k_154))) != NULL) != 0);
             __pyx_t_2 = __pyx_t_3;
           } else {
             __pyx_t_2 = __pyx_t_1;
@@ -74091,7 +74081,7 @@ static PyObject *__pyx_f_4lxml_5etree__lookupDefaultElementClass(PyObject *__pyx
     if (unlikely(!0)) {
       __pyx_t_4 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_143), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_146), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_5));
@@ -74276,8 +74266,8 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->_pytag);
-  __Pyx_DECREF(__pyx_v_self->_pytag);
-  __pyx_v_self->_pytag = __pyx_t_1;
+  __Pyx_DECREF(((PyObject *)__pyx_v_self->_pytag));
+  __pyx_v_self->_pytag = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":367
@@ -74287,9 +74277,9 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
  *         if ns is None:
  *             self._c_ns = NULL
  */
-  __pyx_t_1 = __pyx_v_self->_pytag;
+  __pyx_t_1 = ((PyObject *)__pyx_v_self->_pytag);
   __Pyx_INCREF(__pyx_t_1);
-  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
+  if (likely(PyTuple_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
     #if CYTHON_COMPILING_IN_CPYTHON
     Py_ssize_t size = Py_SIZE(sequence);
@@ -74302,13 +74292,8 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
       {__pyx_filename = __pyx_f[9]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
-    if (likely(PyTuple_CheckExact(sequence))) {
-      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
-      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
-    } else {
-      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
-      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
-    }
+    __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
+    __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
@@ -74318,6 +74303,8 @@ static int __pyx_pf_4lxml_5etree_32AttributeBasedElementClassLookup_2__init__(st
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  } else if (1) {
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[9]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   } else
   {
     Py_ssize_t index = -1;
@@ -75486,8 +75473,7 @@ static void __pyx_f_4lxml_5etree__setElementClassLookupFunction(_element_class_l
  * 
  */
     __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
-    __Pyx_DECREF(__pyx_v_state);
-    __pyx_v_state = ((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP);
+    __Pyx_DECREF_SET(__pyx_v_state, ((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":546
  *     if function is NULL:
@@ -75511,9 +75497,8 @@ static void __pyx_f_4lxml_5etree__setElementClassLookupFunction(_element_class_l
  */
   __Pyx_INCREF(__pyx_v_state);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_ELEMENT_CLASS_LOOKUP_STATE);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_ELEMENT_CLASS_LOOKUP_STATE);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_ELEMENT_CLASS_LOOKUP_STATE, __pyx_v_state);
   __Pyx_GIVEREF(__pyx_v_state);
-  __pyx_v_4lxml_5etree_ELEMENT_CLASS_LOOKUP_STATE = __pyx_v_state;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":549
  * 
@@ -75889,8 +75874,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
     __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __Pyx_DECREF(__pyx_v_class_dict_iterable);
-    __pyx_v_class_dict_iterable = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_class_dict_iterable, __pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
@@ -75988,11 +75972,9 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
       {__pyx_filename = __pyx_f[10]; __pyx_lineno = 45; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_7);
     __pyx_t_7 = 0;
-    __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_8;
+    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_8);
     __pyx_t_8 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":46
@@ -76004,7 +75986,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_2update(struct __pyx
  */
     __pyx_t_2 = (__pyx_v_name == Py_None);
     if (!__pyx_t_2) {
-      __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 1, NULL, NULL, &__pyx_k_slice_152, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_name, 0, 1, NULL, NULL, &__pyx_k_slice_155, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, ((PyObject *)__pyx_n_s___), Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -76106,8 +76088,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18_NamespaceRegistry_4__getitem__(struct
  */
     __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -76191,8 +76172,7 @@ static int __pyx_pf_4lxml_5etree_18_NamespaceRegistry_6__delitem__(CYTHON_UNUSED
  */
     __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -76271,7 +76251,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_NamespaceRegistry__get(struct __pyx_obj
  *         return <object>dict_result
  * 
  */
-    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_153), 0, 0);
+    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_156), 0, 0);
     {__pyx_filename = __pyx_f[10]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -76353,7 +76333,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_NamespaceRegistry__getForString(struct
  *         return <object>dict_result
  * 
  */
-    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_153), 0, 0);
+    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_156), 0, 0);
     {__pyx_filename = __pyx_f[10]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -76682,9 +76662,9 @@ static int __pyx_pf_4lxml_5etree_23_ClassNamespaceRegistry___setitem__(struct __
  *                 u"Registered element classes must be subtypes of ElementBase"
  *         if name is not None:
  */
-    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_154); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_157); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_155), 0, 0);
+    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_158), 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     {__pyx_filename = __pyx_f[10]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
@@ -76711,8 +76691,7 @@ static int __pyx_pf_4lxml_5etree_23_ClassNamespaceRegistry___setitem__(struct __
  */
     __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_name)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L4;
   }
@@ -76779,7 +76758,7 @@ static PyObject *__pyx_pf_4lxml_5etree_23_ClassNamespaceRegistry_2__repr__(struc
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_156), __pyx_v_self->__pyx_base._ns_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_159), __pyx_v_self->__pyx_base._ns_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_r = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -77752,9 +77731,9 @@ static int __pyx_pf_4lxml_5etree_26_FunctionNamespaceRegistry___setitem__(struct
  *                 u"Registered functions must be callable."
  *         if not name:
  */
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_154); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_157); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_157), 0, 0);
+    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_160), 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     {__pyx_filename = __pyx_f[10]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
@@ -77779,7 +77758,7 @@ static int __pyx_pf_4lxml_5etree_26_FunctionNamespaceRegistry___setitem__(struct
  *                 u"extensions must have non empty names"
  *         self._entries[_utf8(name)] = item
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_158), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_161), 0, 0);
     {__pyx_filename = __pyx_f[10]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -77848,7 +77827,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_FunctionNamespaceRegistry_2__repr__(st
  * @cython.final
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_159), __pyx_v_self->__pyx_base._ns_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_162), __pyx_v_self->__pyx_base._ns_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 203; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_r = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -77913,8 +77892,8 @@ static int __pyx_pf_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix___del
   __Pyx_INCREF(Py_None);
   __Pyx_GIVEREF(Py_None);
   __Pyx_GOTREF(__pyx_v_self->_prefix_utf);
-  __Pyx_DECREF(__pyx_v_self->_prefix_utf);
-  __pyx_v_self->_prefix_utf = Py_None;
+  __Pyx_DECREF(((PyObject *)__pyx_v_self->_prefix_utf));
+  __pyx_v_self->_prefix_utf = ((PyObject*)Py_None);
 
   __pyx_r = 0;
   __Pyx_RefNannyFinishContext();
@@ -78045,8 +78024,7 @@ static int __pyx_pf_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_4__se
  *                 self._prefix_utf = None
  */
     __Pyx_INCREF(Py_None);
-    __Pyx_DECREF(__pyx_v_prefix);
-    __pyx_v_prefix = Py_None;
+    __Pyx_DECREF_SET(__pyx_v_prefix, Py_None);
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -78072,8 +78050,8 @@ static int __pyx_pf_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_4__se
     __Pyx_INCREF(Py_None);
     __Pyx_GIVEREF(Py_None);
     __Pyx_GOTREF(__pyx_v_self->_prefix_utf);
-    __Pyx_DECREF(__pyx_v_self->_prefix_utf);
-    __pyx_v_self->_prefix_utf = Py_None;
+    __Pyx_DECREF(((PyObject *)__pyx_v_self->_prefix_utf));
+    __pyx_v_self->_prefix_utf = ((PyObject*)Py_None);
     goto __pyx_L4;
   }
   /*else*/ {
@@ -78089,8 +78067,8 @@ static int __pyx_pf_4lxml_5etree_31_XPathFunctionNamespaceRegistry_6prefix_4__se
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_GIVEREF(__pyx_t_1);
     __Pyx_GOTREF(__pyx_v_self->_prefix_utf);
-    __Pyx_DECREF(__pyx_v_self->_prefix_utf);
-    __pyx_v_self->_prefix_utf = __pyx_t_1;
+    __Pyx_DECREF(((PyObject *)__pyx_v_self->_prefix_utf));
+    __pyx_v_self->_prefix_utf = ((PyObject*)__pyx_t_1);
     __pyx_t_1 = 0;
   }
   __pyx_L4:;
@@ -78182,8 +78160,7 @@ static PyObject *__pyx_f_4lxml_5etree__find_all_extension_prefixes(void) {
     if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__XPathFunctionNamespaceRegistry))))) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_registry));
-    __pyx_v_registry = ((struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)__pyx_t_5);
+    __Pyx_XDECREF_SET(__pyx_v_registry, ((struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)__pyx_t_5));
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":235
@@ -78193,7 +78170,7 @@ static PyObject *__pyx_f_4lxml_5etree__find_all_extension_prefixes(void) {
  *             if registry._ns_uri_utf is not None:
  *                 ns_prefixes.append(
  */
-    __pyx_t_7 = (__pyx_v_registry->_prefix_utf != Py_None);
+    __pyx_t_7 = (__pyx_v_registry->_prefix_utf != ((PyObject*)Py_None));
     __pyx_t_8 = (__pyx_t_7 != 0);
     if (__pyx_t_8) {
 
@@ -78216,9 +78193,9 @@ static PyObject *__pyx_f_4lxml_5etree__find_all_extension_prefixes(void) {
  */
         __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_INCREF(__pyx_v_registry->_prefix_utf);
-        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_registry->_prefix_utf);
-        __Pyx_GIVEREF(__pyx_v_registry->_prefix_utf);
+        __Pyx_INCREF(((PyObject *)__pyx_v_registry->_prefix_utf));
+        PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_registry->_prefix_utf));
+        __Pyx_GIVEREF(((PyObject *)__pyx_v_registry->_prefix_utf));
         __Pyx_INCREF(((PyObject *)__pyx_v_registry->__pyx_base.__pyx_base._ns_uri_utf));
         PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_registry->__pyx_base.__pyx_base._ns_uri_utf));
         __Pyx_GIVEREF(((PyObject *)__pyx_v_registry->__pyx_base.__pyx_base._ns_uri_utf));
@@ -78589,8 +78566,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
     }
     __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_string))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __Pyx_DECREF(__pyx_v_string);
-    __pyx_v_string = ((PyObject *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_string, ((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -78613,7 +78589,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
  *         doc_ref = _InputDocument()
  *         doc_ref._type = PARSER_DATA_STRING
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_160), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_s_163), 0, 0);
     {__pyx_filename = __pyx_f[11]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -78647,11 +78623,12 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_4resolve_string(CYTHON_UNUSED s
  *         if base_url is not None:
  *             doc_ref._filename = _encodeFilename(base_url)
  */
+  if (!(likely(PyBytes_CheckExact(__pyx_v_string))||((__pyx_v_string) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_string)->tp_name), 0))) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_INCREF(__pyx_v_string);
   __Pyx_GIVEREF(__pyx_v_string);
   __Pyx_GOTREF(__pyx_v_doc_ref->_data_bytes);
-  __Pyx_DECREF(__pyx_v_doc_ref->_data_bytes);
-  __pyx_v_doc_ref->_data_bytes = __pyx_v_string;
+  __Pyx_DECREF(((PyObject *)__pyx_v_doc_ref->_data_bytes));
+  __pyx_v_doc_ref->_data_bytes = ((PyObject*)__pyx_v_string);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":65
  *         doc_ref._type = PARSER_DATA_STRING
@@ -79003,7 +78980,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8Resolver_8resolve_file(CYTHON_UNUSED str
  *         doc_ref = _InputDocument()
  *         doc_ref._type = PARSER_DATA_FILE
  */
-      __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_161), 0, 0);
+      __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_164), 0, 0);
       {__pyx_filename = __pyx_f[11]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -79666,8 +79643,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_ResolverRegistry_8resolve(struct __pyx
       }
       __Pyx_GOTREF(__pyx_t_4);
     }
-    __Pyx_XDECREF(__pyx_v_resolver);
-    __pyx_v_resolver = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_resolver, __pyx_t_4);
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":150
@@ -79694,8 +79670,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_ResolverRegistry_8resolve(struct __pyx
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_result);
-    __pyx_v_result = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_result, __pyx_t_6);
     __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/docloader.pxi":151
@@ -80364,7 +80339,7 @@ static void __pyx_f_4lxml_5etree_24_ParserDictionaryContext_initMainParserContex
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
       {__pyx_filename = __pyx_f[5]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    if (PyDict_SetItem(((PyObject *)((PyObject*)__pyx_v_thread_dict)), ((PyObject *)__pyx_n_u_162), ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(((PyObject *)((PyObject*)__pyx_v_thread_dict)), ((PyObject *)__pyx_n_u_165), ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -80449,7 +80424,7 @@ static struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *__pyx_f_4lxml_5et
  *         if result is not NULL:
  *             return <object>result
  */
-  __pyx_v_result = PyDict_GetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_162));
+  __pyx_v_result = PyDict_GetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_165));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":83
  *         d = <dict>thread_dict
@@ -80500,7 +80475,7 @@ static struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *__pyx_f_4lxml_5et
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_162), ((PyObject *)__pyx_v_context)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(((PyObject *)__pyx_v_d), ((PyObject *)__pyx_n_u_165), ((PyObject *)__pyx_v_context)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":87
  *         context = _ParserDictionaryContext()
@@ -81334,7 +81309,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *     l = python.PyUnicode_GET_DATA_SIZE(utext)
  *     buffer = python.PyUnicode_AS_DATA(utext)
  */
-  __pyx_t_1 = ((PyObject *)PyUnicode_DecodeUTF8(__pyx_k_163, 7, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)PyUnicode_DecodeUTF8(__pyx_k_166, 7, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_utext = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -81433,7 +81408,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *         elif l >= 4 and \
  *                buffer[0] == c'\0' and buffer[1] == c'<' and \
  */
-      __pyx_v_enc = __pyx_k_164;
+      __pyx_v_enc = __pyx_k_167;
       goto __pyx_L4;
     }
 
@@ -81494,7 +81469,7 @@ static int __pyx_f_4lxml_5etree__setupPythonUnicode(void) {
  *         else:
  *             # not my fault, it's YOUR broken system :)
  */
-      __pyx_v_enc = __pyx_k_165;
+      __pyx_v_enc = __pyx_k_168;
       goto __pyx_L4;
     }
     /*else*/ {
@@ -81617,7 +81592,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *     elif enc == tree.XML_CHAR_ENCODING_UTF16BE:
  *         return "UTF-16BE"
  */
-    __pyx_r = __pyx_k_164;
+    __pyx_r = __pyx_k_167;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -81639,7 +81614,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *     elif enc == tree.XML_CHAR_ENCODING_UCS4LE:
  *         return "UCS-4LE"
  */
-    __pyx_r = __pyx_k_165;
+    __pyx_r = __pyx_k_168;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -81661,7 +81636,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *     elif enc == tree.XML_CHAR_ENCODING_UCS4BE:
  *         return "UCS-4BE"
  */
-    __pyx_r = __pyx_k_166;
+    __pyx_r = __pyx_k_169;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -81683,7 +81658,7 @@ static const char *__pyx_f_4lxml_5etree__findEncodingName(const char *__pyx_v_bu
  *     elif enc == tree.XML_CHAR_ENCODING_NONE:
  *         return NULL
  */
-    __pyx_r = __pyx_k_167;
+    __pyx_r = __pyx_k_170;
     goto __pyx_L0;
     goto __pyx_L3;
   }
@@ -81923,8 +81898,7 @@ static int __pyx_pf_4lxml_5etree_18_FileReaderContext___cinit__(struct __pyx_obj
  */
     __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_url);
-    __pyx_v_url = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_url, __pyx_t_3);
     __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":274
@@ -82099,8 +82073,7 @@ static PyObject *__pyx_f_4lxml_5etree_18_FileReaderContext__close_file(struct __
  *             self._filelike = None
  */
         __Pyx_INCREF(Py_None);
-        __Pyx_XDECREF(__pyx_v_close);
-        __pyx_v_close = Py_None;
+        __Pyx_XDECREF_SET(__pyx_v_close, Py_None);
         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
@@ -82997,7 +82970,7 @@ static int __pyx_f_4lxml_5etree_18_FileReaderContext_copyToBuffer(struct __pyx_o
  *                             u"reading from file-like objects must return byte strings or unicode strings"
  * 
  */
-            __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_168), 0, 0);
+            __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_171), 0, 0);
             {__pyx_filename = __pyx_f[5]; __pyx_lineno = 382; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           }
           __pyx_L15:;
@@ -83673,7 +83646,7 @@ static xmlParserInput *__pyx_f_4lxml_5etree__local_resolver(const char *__pyx_v_
  *             c_input = xmlparser.xmlNewInputStream(c_context)
  *             if c_input is not NULL:
  */
-      __pyx_t_2 = __pyx_v_doc_ref->_data_bytes;
+      __pyx_t_2 = ((PyObject *)__pyx_v_doc_ref->_data_bytes);
       __Pyx_INCREF(__pyx_t_2);
       __pyx_v_data = __pyx_t_2;
       __pyx_t_2 = 0;
@@ -84544,7 +84517,7 @@ static int __pyx_f_4lxml_5etree_14_ParserContext_prepare(struct __pyx_obj_4lxml_
  */
       __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParserError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_169), 0, 0);
+      __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_172), 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       {__pyx_filename = __pyx_f[5]; __pyx_lineno = 547; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L7;
@@ -85075,8 +85048,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
       __pyx_t_5 = PyBytes_GET_SIZE(((PyObject *)((PyObject*)__pyx_v_filename))); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 603; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_6 = __pyx_f_4lxml_5etree__decodeFilenameWithLength(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_DECREF(__pyx_v_filename);
-      __pyx_v_filename = __pyx_t_6;
+      __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_6);
       __pyx_t_6 = 0;
       goto __pyx_L4;
     }
@@ -85153,8 +85125,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
           __pyx_t_14 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_10, 0, strlen(__pyx_t_10), NULL, NULL, PyUnicode_DecodeLatin1)); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 609; __pyx_clineno = __LINE__; goto __pyx_L8_except_error;}
           __Pyx_GOTREF(((PyObject *)__pyx_t_14));
           __Pyx_INCREF(((PyObject *)__pyx_t_14));
-          __Pyx_XDECREF(__pyx_v_message);
-          __pyx_v_message = ((PyObject *)__pyx_t_14);
+          __Pyx_XDECREF_SET(__pyx_v_message, ((PyObject *)__pyx_t_14));
           __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
@@ -85195,11 +85166,10 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
       PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_12);
       __Pyx_GIVEREF(__pyx_t_12);
       __pyx_t_12 = 0;
-      __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_170), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_173), ((PyObject *)__pyx_t_13)); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 610; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_12));
       __Pyx_DECREF(((PyObject *)__pyx_t_13)); __pyx_t_13 = 0;
-      __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_12);
+      __Pyx_DECREF_SET(__pyx_v_message, ((PyObject *)__pyx_t_12));
       __pyx_t_12 = 0;
       goto __pyx_L5;
     }
@@ -85212,7 +85182,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  *         raise IOError, message
  *     elif error_log:
  */
-      __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_171), __pyx_v_filename); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_174), __pyx_v_filename); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 613; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_12));
       __pyx_v_message = ((PyObject *)__pyx_t_12);
       __pyx_t_12 = 0;
@@ -85250,7 +85220,7 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
  */
     __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSyntaxError); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_12);
-    __pyx_t_13 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_error_log), __pyx_t_12, ((PyObject *)__pyx_kp_u_172)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_13 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildParseException(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_error_log), __pyx_t_12, ((PyObject *)__pyx_kp_u_175)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_13);
     __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
     __Pyx_Raise(__pyx_t_13, 0, 0, 0);
@@ -85344,11 +85314,10 @@ static int __pyx_f_4lxml_5etree__raiseParseError(xmlParserCtxt *__pyx_v_ctxt, Py
       PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_message);
       __Pyx_GIVEREF(__pyx_v_message);
       __pyx_t_13 = 0;
-      __pyx_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_173), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_176), ((PyObject *)__pyx_t_12)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_13));
       __Pyx_DECREF(((PyObject *)__pyx_t_12)); __pyx_t_12 = 0;
-      __Pyx_DECREF(__pyx_v_message);
-      __pyx_v_message = ((PyObject *)__pyx_t_13);
+      __Pyx_DECREF_SET(__pyx_v_message, ((PyObject *)__pyx_t_13));
       __pyx_t_13 = 0;
       goto __pyx_L16;
     }
@@ -85711,8 +85680,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
           }
           __Pyx_GOTREF(__pyx_t_6);
         }
-        __Pyx_XDECREF(__pyx_v_error);
-        __pyx_v_error = __pyx_t_6;
+        __Pyx_XDECREF_SET(__pyx_v_error, __pyx_t_6);
         __pyx_t_6 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":654
@@ -85726,7 +85694,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
         __Pyx_GOTREF(__pyx_t_6);
         __pyx_t_9 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
-        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_174); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_177); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         __pyx_t_9 = PyObject_RichCompare(__pyx_t_6, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -85747,7 +85715,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
           __Pyx_GOTREF(__pyx_t_9);
           __pyx_t_10 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_10);
-          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_175); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_178); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_6);
           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
           __pyx_t_10 = PyObject_RichCompare(__pyx_t_9, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -85998,7 +85966,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__handleParseResult(struct __pyx_obj_4lxml_5e
  * 
  *     if context._validator is not None and \
  */
-      __pyx_v_result->encoding = xmlStrdup(((unsigned char *)((unsigned char *)__pyx_k_104)));
+      __pyx_v_result->encoding = xmlStrdup(((unsigned char *)((unsigned char *)__pyx_k_107)));
       goto __pyx_L18;
     }
     __pyx_L18:;
@@ -86551,7 +86519,7 @@ static int __pyx_pf_4lxml_5etree_11_BaseParser___init__(struct __pyx_obj_4lxml_5
  * 
  *         self._parse_options = parse_options
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_176), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_179), 0, 0);
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -86695,8 +86663,7 @@ static int __pyx_pf_4lxml_5etree_11_BaseParser___init__(struct __pyx_obj_4lxml_5
  */
     __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = __pyx_t_5;
+    __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_5);
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":765
@@ -86725,7 +86692,7 @@ static int __pyx_pf_4lxml_5etree_11_BaseParser___init__(struct __pyx_obj_4lxml_5
  *             tree.xmlCharEncCloseFunc(enchandler)
  *             self._default_encoding = encoding
  */
-      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_177), __pyx_v_encoding); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_180), __pyx_v_encoding); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
       __Pyx_Raise(__pyx_builtin_LookupError, ((PyObject *)__pyx_t_5), 0, 0);
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
@@ -87888,7 +87855,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_BaseParser_7version___get__(CYTHON_UNU
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__LIBXML_VERSION); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_178), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_181), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = ((PyObject *)__pyx_t_2);
@@ -87995,7 +87962,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_BaseParser_2setElementClassLookup(stru
  * 
  *     def set_element_class_lookup(self, ElementClassLookup lookup = None):
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_179); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_182); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
@@ -88902,7 +88869,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDoc(struct __pyx_obj_4lx
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParserError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_180), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_183), 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
@@ -89557,8 +89524,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_11_BaseParser__parseDocFromFilelike(struct _
  *         context = self._getParserContext()
  */
     __Pyx_INCREF(Py_None);
-    __Pyx_DECREF(__pyx_v_filename);
-    __pyx_v_filename = Py_None;
+    __Pyx_DECREF_SET(__pyx_v_filename, Py_None);
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -89979,7 +89945,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  */
       __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParserError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_181), 0, 0);
+      __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_184), 0, 0);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
@@ -90023,7 +89989,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
  * 
  *         context = self._getPushParserContext()
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_182), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_185), 0, 0);
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
@@ -90345,8 +90311,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
           }
           __Pyx_GOTREF(__pyx_t_8);
         }
-        __Pyx_XDECREF(__pyx_v_entry);
-        __pyx_v_entry = __pyx_t_8;
+        __Pyx_XDECREF_SET(__pyx_v_entry, __pyx_t_8);
         __pyx_t_8 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1168
@@ -90360,7 +90325,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
         __Pyx_GOTREF(__pyx_t_8);
         __pyx_t_11 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_11);
-        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_174); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_177); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_12);
         __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
         __pyx_t_11 = PyObject_RichCompare(__pyx_t_8, __pyx_t_12, Py_NE); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -90381,7 +90346,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_feed(struct __pyx_obj_4lxml
           __Pyx_GOTREF(__pyx_t_11);
           __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_12);
-          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_175); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_178); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_8);
           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
           __pyx_t_12 = PyObject_RichCompare(__pyx_t_11, __pyx_t_8, Py_NE); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -90611,9 +90576,9 @@ static PyObject *__pyx_pf_4lxml_5etree_11_FeedParser_2close(struct __pyx_obj_4lx
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_4 = PyTuple_New(4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_183));
-    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_183));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_183));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_186));
+    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_186));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_186));
     PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_int_0);
@@ -91018,12 +90983,12 @@ static int __pyx_pw_4lxml_5etree_9XMLParser_1__init__(PyObject *__pyx_v_self, Py
  *                  ns_clean=False, recover=False, XMLSchema schema=None,
  */
     values[0] = ((PyObject *)Py_None);
-    values[1] = __pyx_k_184;
-    values[2] = __pyx_k_185;
-    values[3] = __pyx_k_186;
-    values[4] = __pyx_k_187;
-    values[5] = __pyx_k_188;
-    values[6] = __pyx_k_189;
+    values[1] = __pyx_k_187;
+    values[2] = __pyx_k_188;
+    values[3] = __pyx_k_189;
+    values[4] = __pyx_k_190;
+    values[5] = __pyx_k_191;
+    values[6] = __pyx_k_192;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1299
  *     def __init__(self, *, encoding=None, attribute_defaults=False,
@@ -91033,12 +90998,12 @@ static int __pyx_pw_4lxml_5etree_9XMLParser_1__init__(PyObject *__pyx_v_self, Py
  *                  remove_comments=False, remove_pis=False, strip_cdata=True,
  */
     values[7] = (PyObject *)((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None);
-    values[8] = __pyx_k_190;
-    values[9] = __pyx_k_191;
-    values[10] = __pyx_k_192;
-    values[11] = __pyx_k_193;
-    values[12] = __pyx_k_194;
-    values[13] = __pyx_k_195;
+    values[8] = __pyx_k_193;
+    values[9] = __pyx_k_194;
+    values[10] = __pyx_k_195;
+    values[11] = __pyx_k_196;
+    values[12] = __pyx_k_197;
+    values[13] = __pyx_k_198;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1302
  *                  huge_tree=False, remove_blank_text=False, resolve_entities=True,
@@ -91048,7 +91013,7 @@ static int __pyx_pw_4lxml_5etree_9XMLParser_1__init__(PyObject *__pyx_v_self, Py
  *         parse_options = _XML_DEFAULT_PARSE_OPTIONS
  */
     values[14] = ((PyObject *)Py_None);
-    values[15] = __pyx_k_196;
+    values[15] = __pyx_k_199;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -91513,12 +91478,12 @@ static int __pyx_pw_4lxml_5etree_17ETCompatXMLParser_1__init__(PyObject *__pyx_v
  *                  ns_clean=False, recover=False, schema=None,
  */
     values[0] = ((PyObject *)Py_None);
-    values[1] = __pyx_k_197;
-    values[2] = __pyx_k_198;
-    values[3] = __pyx_k_199;
-    values[4] = __pyx_k_200;
-    values[5] = __pyx_k_201;
-    values[6] = __pyx_k_202;
+    values[1] = __pyx_k_200;
+    values[2] = __pyx_k_201;
+    values[3] = __pyx_k_202;
+    values[4] = __pyx_k_203;
+    values[5] = __pyx_k_204;
+    values[6] = __pyx_k_205;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1352
  *     def __init__(self, *, encoding=None, attribute_defaults=False,
@@ -91528,12 +91493,12 @@ static int __pyx_pw_4lxml_5etree_17ETCompatXMLParser_1__init__(PyObject *__pyx_v
  *                  remove_comments=True, remove_pis=True, strip_cdata=True,
  */
     values[7] = ((PyObject *)Py_None);
-    values[8] = __pyx_k_203;
-    values[9] = __pyx_k_204;
-    values[10] = __pyx_k_205;
-    values[11] = __pyx_k_206;
-    values[12] = __pyx_k_207;
-    values[13] = __pyx_k_208;
+    values[8] = __pyx_k_206;
+    values[9] = __pyx_k_207;
+    values[10] = __pyx_k_208;
+    values[11] = __pyx_k_209;
+    values[12] = __pyx_k_210;
+    values[13] = __pyx_k_211;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1355
  *                  huge_tree=False, remove_blank_text=False, resolve_entities=True,
@@ -91543,7 +91508,7 @@ static int __pyx_pw_4lxml_5etree_17ETCompatXMLParser_1__init__(PyObject *__pyx_v
  *                            attribute_defaults=attribute_defaults,
  */
     values[14] = ((PyObject *)Py_None);
-    values[15] = __pyx_k_209;
+    values[15] = __pyx_k_212;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -91894,8 +91859,7 @@ static PyObject *__pyx_pf_4lxml_5etree_42set_default_parser(CYTHON_UNUSED PyObje
  * 
  */
     __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
-    __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER);
+    __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -92003,11 +91967,11 @@ static int __pyx_pw_4lxml_5etree_10HTMLParser_1__init__(PyObject *__pyx_v_self,
  *                  no_network=True, target=None, XMLSchema schema=None,
  */
     values[0] = ((PyObject *)Py_None);
-    values[1] = __pyx_k_210;
-    values[2] = __pyx_k_211;
-    values[3] = __pyx_k_212;
-    values[4] = __pyx_k_213;
-    values[5] = __pyx_k_214;
+    values[1] = __pyx_k_213;
+    values[2] = __pyx_k_214;
+    values[3] = __pyx_k_215;
+    values[4] = __pyx_k_216;
+    values[5] = __pyx_k_217;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1448
  *     def __init__(self, *, encoding=None, remove_blank_text=False,
@@ -92018,8 +91982,8 @@ static int __pyx_pw_4lxml_5etree_10HTMLParser_1__init__(PyObject *__pyx_v_self,
  */
     values[6] = ((PyObject *)Py_None);
     values[7] = (PyObject *)((struct __pyx_obj_4lxml_5etree_XMLSchema *)Py_None);
-    values[8] = __pyx_k_215;
-    values[9] = __pyx_k_216;
+    values[8] = __pyx_k_218;
+    values[9] = __pyx_k_219;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -92309,8 +92273,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDoc(PyObject *__pyx_v_text, PyObject *
  */
     __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3));
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -92548,8 +92511,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFile(PyObject *__pyx_v_filename
  */
     __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3));
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -92619,8 +92581,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__parseDocFromFilelike(PyObject *__pyx_v_sour
  */
     __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree_24_ParserDictionaryContext_getDefaultParser(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_v_parser));
-    __pyx_v_parser = ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_parser, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_3));
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -92715,7 +92676,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__newXMLDoc(void) {
  *     __GLOBAL_PARSER_CONTEXT.initDocDict(result)
  *     return result
  */
-    __pyx_v_result->encoding = xmlStrdup(((unsigned char *)((unsigned char *)__pyx_k_104)));
+    __pyx_v_result->encoding = xmlStrdup(((unsigned char *)((unsigned char *)__pyx_k_107)));
     goto __pyx_L4;
   }
   __pyx_L4:;
@@ -93244,8 +93205,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
  */
       __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilenameUTF8(__pyx_v_base_url); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1574; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_base_url);
-      __pyx_v_base_url = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_base_url, __pyx_t_3);
       __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1575
@@ -93455,7 +93415,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseDocument(PyObject *__pyx_
   __pyx_t_7 = _fqtypename(__pyx_v_source);
   __pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_7, 0, strlen(__pyx_t_7), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_217), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_220), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_6));
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_6), 0, 0);
@@ -93585,7 +93545,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *                 u"Unicode strings with encoding declaration are not supported. "
  *                 u"Please use bytes input or XML fragments without declaration.")
  */
-      __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_219), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_222), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -93617,8 +93577,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
       }
       __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_text))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-      __Pyx_DECREF(__pyx_v_text);
-      __pyx_v_text = ((PyObject *)__pyx_t_3);
+      __Pyx_DECREF_SET(__pyx_v_text, ((PyObject *)__pyx_t_3));
       __pyx_t_3 = 0;
       goto __pyx_L5;
     }
@@ -93644,7 +93603,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
  *     if isinstance(url, unicode):
  *         url = (<unicode>url).encode('utf8')
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_220), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_223), 0, 0);
     {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -93674,8 +93633,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseMemoryDocument(PyObject *
     }
     __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_url))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __Pyx_DECREF(__pyx_v_url);
-    __pyx_v_url = ((PyObject *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_url, ((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
     goto __pyx_L6;
   }
@@ -93765,8 +93723,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree__parseFilelikeDocument(PyObject
     }
     __pyx_t_3 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_v_url))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __Pyx_DECREF(__pyx_v_url);
-    __pyx_v_url = ((PyObject *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_url, ((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -94648,8 +94605,9 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
   int __pyx_t_6;
   int __pyx_t_7;
   int __pyx_t_8;
-  PyObject *__pyx_t_9 = NULL;
+  int __pyx_t_9;
   PyObject *__pyx_t_10 = NULL;
+  PyObject *__pyx_t_11 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -94761,7 +94719,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *         if c_nb_defaulted > 0:
  *             # only add default attributes if we asked for them
  *             if c_ctxt.loadsubset & xmlparser.XML_COMPLETE_ATTRS == 0:             # <<<<<<<<<<<<<<
- *                 c_nb_attributes = c_nb_attributes - c_nb_defaulted
+ *                 c_nb_attributes -= c_nb_defaulted
  *         if c_nb_attributes == 0:
  */
         __pyx_t_1 = (((__pyx_v_c_ctxt->loadsubset & XML_COMPLETE_ATTRS) == 0) != 0);
@@ -94770,7 +94728,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":141
  *             # only add default attributes if we asked for them
  *             if c_ctxt.loadsubset & xmlparser.XML_COMPLETE_ATTRS == 0:
- *                 c_nb_attributes = c_nb_attributes - c_nb_defaulted             # <<<<<<<<<<<<<<
+ *                 c_nb_attributes -= c_nb_defaulted             # <<<<<<<<<<<<<<
  *         if c_nb_attributes == 0:
  *             attrib = EMPTY_READ_ONLY_DICT
  */
@@ -94784,7 +94742,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":142
  *             if c_ctxt.loadsubset & xmlparser.XML_COMPLETE_ATTRS == 0:
- *                 c_nb_attributes = c_nb_attributes - c_nb_defaulted
+ *                 c_nb_attributes -= c_nb_defaulted
  *         if c_nb_attributes == 0:             # <<<<<<<<<<<<<<
  *             attrib = EMPTY_READ_ONLY_DICT
  *         else:
@@ -94793,7 +94751,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
       if (__pyx_t_1) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":143
- *                 c_nb_attributes = c_nb_attributes - c_nb_defaulted
+ *                 c_nb_attributes -= c_nb_defaulted
  *         if c_nb_attributes == 0:
  *             attrib = EMPTY_READ_ONLY_DICT             # <<<<<<<<<<<<<<
  *         else:
@@ -94809,7 +94767,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *             attrib = EMPTY_READ_ONLY_DICT
  *         else:
  *             attrib = {}             # <<<<<<<<<<<<<<
- *             for i from 0 <= i < c_nb_attributes:
+ *             for i in range(0, c_nb_attributes):
  *                 name = _namespacedNameFromNsName(
  */
         __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
@@ -94820,32 +94778,32 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":146
  *         else:
  *             attrib = {}
- *             for i from 0 <= i < c_nb_attributes:             # <<<<<<<<<<<<<<
+ *             for i in range(0, c_nb_attributes):             # <<<<<<<<<<<<<<
  *                 name = _namespacedNameFromNsName(
  *                     c_attributes[2], c_attributes[0])
  */
         __pyx_t_6 = __pyx_v_c_nb_attributes;
-        for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) {
+        for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
+          __pyx_v_i = __pyx_t_7;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":148
- *             for i from 0 <= i < c_nb_attributes:
+ *             for i in range(0, c_nb_attributes):
  *                 name = _namespacedNameFromNsName(
  *                     c_attributes[2], c_attributes[0])             # <<<<<<<<<<<<<<
  *                 if c_attributes[3] is NULL:
- *                     if python.IS_PYTHON3:
+ *                     value = ''
  */
           __pyx_t_5 = __pyx_f_4lxml_5etree__namespacedNameFromNsName((__pyx_v_c_attributes[2]), (__pyx_v_c_attributes[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          __Pyx_XDECREF(__pyx_v_name);
-          __pyx_v_name = __pyx_t_5;
+          __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
           __pyx_t_5 = 0;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":149
  *                 name = _namespacedNameFromNsName(
  *                     c_attributes[2], c_attributes[0])
  *                 if c_attributes[3] is NULL:             # <<<<<<<<<<<<<<
- *                     if python.IS_PYTHON3:
- *                         value = u''
+ *                     value = ''
+ *                 else:
  */
           __pyx_t_1 = (((__pyx_v_c_attributes[3]) == NULL) != 0);
           if (__pyx_t_1) {
@@ -94853,68 +94811,40 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":150
  *                     c_attributes[2], c_attributes[0])
  *                 if c_attributes[3] is NULL:
- *                     if python.IS_PYTHON3:             # <<<<<<<<<<<<<<
- *                         value = u''
- *                     else:
- */
-            __pyx_t_1 = (IS_PYTHON3 != 0);
-            if (__pyx_t_1) {
-
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":151
- *                 if c_attributes[3] is NULL:
- *                     if python.IS_PYTHON3:
- *                         value = u''             # <<<<<<<<<<<<<<
- *                     else:
- *                         value = ''
- */
-              __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
-              __Pyx_XDECREF(__pyx_v_value);
-              __pyx_v_value = ((PyObject *)__pyx_kp_u_25);
-              goto __pyx_L19;
-            }
-            /*else*/ {
-
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":153
- *                         value = u''
- *                     else:
- *                         value = ''             # <<<<<<<<<<<<<<
+ *                     value = ''             # <<<<<<<<<<<<<<
  *                 else:
  *                     value = python.PyUnicode_DecodeUTF8(
  */
-              __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
-              __Pyx_XDECREF(__pyx_v_value);
-              __pyx_v_value = ((PyObject *)__pyx_kp_s_25);
-            }
-            __pyx_L19:;
+            __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
+            __Pyx_XDECREF_SET(__pyx_v_value, ((PyObject *)__pyx_kp_s_25));
             goto __pyx_L18;
           }
           /*else*/ {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":156
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":153
  *                 else:
  *                     value = python.PyUnicode_DecodeUTF8(
  *                         <const_char*>c_attributes[3], c_attributes[4] - c_attributes[3],             # <<<<<<<<<<<<<<
  *                         "strict")
  *                 attrib[name] = value
  */
-            __pyx_t_5 = ((PyObject *)PyUnicode_DecodeUTF8(((const char *)(__pyx_v_c_attributes[3])), ((__pyx_v_c_attributes[4]) - (__pyx_v_c_attributes[3])), __pyx_k__strict)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+            __pyx_t_5 = ((PyObject *)PyUnicode_DecodeUTF8(((const char *)(__pyx_v_c_attributes[3])), ((__pyx_v_c_attributes[4]) - (__pyx_v_c_attributes[3])), __pyx_k__strict)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
             __Pyx_GOTREF(__pyx_t_5);
-            __Pyx_XDECREF(__pyx_v_value);
-            __pyx_v_value = __pyx_t_5;
+            __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5);
             __pyx_t_5 = 0;
           }
           __pyx_L18:;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":158
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":155
  *                         <const_char*>c_attributes[3], c_attributes[4] - c_attributes[3],
  *                         "strict")
  *                 attrib[name] = value             # <<<<<<<<<<<<<<
  *                 c_attributes += 5
  *         if c_nb_namespaces == 0:
  */
-          if (PyObject_SetItem(__pyx_v_attrib, __pyx_v_name, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 158; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          if (PyObject_SetItem(__pyx_v_attrib, __pyx_v_name, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":159
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":156
  *                         "strict")
  *                 attrib[name] = value
  *                 c_attributes += 5             # <<<<<<<<<<<<<<
@@ -94926,7 +94856,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
       }
       __pyx_L15:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":160
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":157
  *                 attrib[name] = value
  *                 c_attributes += 5
  *         if c_nb_namespaces == 0:             # <<<<<<<<<<<<<<
@@ -94936,7 +94866,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
       __pyx_t_1 = ((__pyx_v_c_nb_namespaces == 0) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":161
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":158
  *                 c_attributes += 5
  *         if c_nb_namespaces == 0:
  *             nsmap = EMPTY_READ_ONLY_DICT             # <<<<<<<<<<<<<<
@@ -94945,85 +94875,59 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  */
         __Pyx_INCREF(__pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT);
         __pyx_v_nsmap = __pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT;
-        goto __pyx_L20;
+        goto __pyx_L19;
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":163
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":160
  *             nsmap = EMPTY_READ_ONLY_DICT
  *         else:
  *             nsmap = {}             # <<<<<<<<<<<<<<
- *             for i from 0 <= i < c_nb_namespaces:
- *                 if c_namespaces[0] is NULL:
+ *             for i in range(0, c_nb_attributes):
+ *                 prefix = funicodeOrNone(c_namespaces[0])
  */
-        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_5));
         __pyx_v_nsmap = ((PyObject *)__pyx_t_5);
         __pyx_t_5 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":164
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":161
  *         else:
  *             nsmap = {}
- *             for i from 0 <= i < c_nb_namespaces:             # <<<<<<<<<<<<<<
- *                 if c_namespaces[0] is NULL:
- *                     prefix = None
+ *             for i in range(0, c_nb_attributes):             # <<<<<<<<<<<<<<
+ *                 prefix = funicodeOrNone(c_namespaces[0])
+ *                 nsmap[prefix] = funicode(c_namespaces[1])
  */
-        __pyx_t_6 = __pyx_v_c_nb_namespaces;
-        for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_6; __pyx_v_i++) {
+        __pyx_t_6 = __pyx_v_c_nb_attributes;
+        for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
+          __pyx_v_i = __pyx_t_7;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":165
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":162
  *             nsmap = {}
- *             for i from 0 <= i < c_nb_namespaces:
- *                 if c_namespaces[0] is NULL:             # <<<<<<<<<<<<<<
- *                     prefix = None
- *                 else:
- */
-          __pyx_t_1 = (((__pyx_v_c_namespaces[0]) == NULL) != 0);
-          if (__pyx_t_1) {
-
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":166
- *             for i from 0 <= i < c_nb_namespaces:
- *                 if c_namespaces[0] is NULL:
- *                     prefix = None             # <<<<<<<<<<<<<<
- *                 else:
- *                     prefix = funicode(c_namespaces[0])
- */
-            __Pyx_INCREF(Py_None);
-            __Pyx_XDECREF(__pyx_v_prefix);
-            __pyx_v_prefix = Py_None;
-            goto __pyx_L23;
-          }
-          /*else*/ {
-
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":168
- *                     prefix = None
- *                 else:
- *                     prefix = funicode(c_namespaces[0])             # <<<<<<<<<<<<<<
+ *             for i in range(0, c_nb_attributes):
+ *                 prefix = funicodeOrNone(c_namespaces[0])             # <<<<<<<<<<<<<<
  *                 nsmap[prefix] = funicode(c_namespaces[1])
  *                 c_namespaces += 2
  */
-            __pyx_t_5 = __pyx_f_4lxml_5etree_funicode((__pyx_v_c_namespaces[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
-            __Pyx_GOTREF(__pyx_t_5);
-            __Pyx_XDECREF(__pyx_v_prefix);
-            __pyx_v_prefix = __pyx_t_5;
-            __pyx_t_5 = 0;
-          }
-          __pyx_L23:;
+          __pyx_t_5 = __pyx_f_4lxml_5etree_funicodeOrNone((__pyx_v_c_namespaces[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __Pyx_GOTREF(__pyx_t_5);
+          __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_5);
+          __pyx_t_5 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":169
- *                 else:
- *                     prefix = funicode(c_namespaces[0])
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":163
+ *             for i in range(0, c_nb_attributes):
+ *                 prefix = funicodeOrNone(c_namespaces[0])
  *                 nsmap[prefix] = funicode(c_namespaces[1])             # <<<<<<<<<<<<<<
  *                 c_namespaces += 2
  *         element = context._target._handleSaxStart(tag, attrib, nsmap)
  */
-          __pyx_t_5 = __pyx_f_4lxml_5etree_funicode((__pyx_v_c_namespaces[1])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __pyx_t_5 = __pyx_f_4lxml_5etree_funicode((__pyx_v_c_namespaces[1])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          if (PyObject_SetItem(__pyx_v_nsmap, __pyx_v_prefix, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          if (PyObject_SetItem(__pyx_v_nsmap, __pyx_v_prefix, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
           __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":170
- *                     prefix = funicode(c_namespaces[0])
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":164
+ *                 prefix = funicodeOrNone(c_namespaces[0])
  *                 nsmap[prefix] = funicode(c_namespaces[1])
  *                 c_namespaces += 2             # <<<<<<<<<<<<<<
  *         element = context._target._handleSaxStart(tag, attrib, nsmap)
@@ -95032,22 +94936,22 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
           __pyx_v_c_namespaces = (__pyx_v_c_namespaces + 2);
         }
       }
-      __pyx_L20:;
+      __pyx_L19:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":171
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":165
  *                 nsmap[prefix] = funicode(c_namespaces[1])
  *                 c_namespaces += 2
  *         element = context._target._handleSaxStart(tag, attrib, nsmap)             # <<<<<<<<<<<<<<
  *         if element is not None and c_ctxt.input is not NULL:
  *             if c_ctxt.input.line < 65535:
  */
-      __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxStart(__pyx_v_context->_target, __pyx_v_tag, __pyx_v_attrib, __pyx_v_nsmap); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxStart(__pyx_v_context->_target, __pyx_v_tag, __pyx_v_attrib, __pyx_v_nsmap); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __pyx_v_element = ((struct LxmlElement *)__pyx_t_5);
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":172
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":166
  *                 c_namespaces += 2
  *         element = context._target._handleSaxStart(tag, attrib, nsmap)
  *         if element is not None and c_ctxt.input is not NULL:             # <<<<<<<<<<<<<<
@@ -95056,24 +94960,24 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  */
       __pyx_t_1 = (((PyObject *)__pyx_v_element) != Py_None);
       if ((__pyx_t_1 != 0)) {
-        __pyx_t_7 = ((__pyx_v_c_ctxt->input != NULL) != 0);
-        __pyx_t_8 = __pyx_t_7;
+        __pyx_t_8 = ((__pyx_v_c_ctxt->input != NULL) != 0);
+        __pyx_t_9 = __pyx_t_8;
       } else {
-        __pyx_t_8 = (__pyx_t_1 != 0);
+        __pyx_t_9 = (__pyx_t_1 != 0);
       }
-      if (__pyx_t_8) {
+      if (__pyx_t_9) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":173
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":167
  *         element = context._target._handleSaxStart(tag, attrib, nsmap)
  *         if element is not None and c_ctxt.input is not NULL:
  *             if c_ctxt.input.line < 65535:             # <<<<<<<<<<<<<<
  *                 element._c_node.line = <short>c_ctxt.input.line
  *             else:
  */
-        __pyx_t_8 = ((__pyx_v_c_ctxt->input->line < 65535) != 0);
-        if (__pyx_t_8) {
+        __pyx_t_9 = ((__pyx_v_c_ctxt->input->line < 65535) != 0);
+        if (__pyx_t_9) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":174
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":168
  *         if element is not None and c_ctxt.input is not NULL:
  *             if c_ctxt.input.line < 65535:
  *                 element._c_node.line = <short>c_ctxt.input.line             # <<<<<<<<<<<<<<
@@ -95081,11 +94985,11 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  *                 element._c_node.line = 65535
  */
           __pyx_v_element->_c_node->line = ((short)__pyx_v_c_ctxt->input->line);
-          goto __pyx_L25;
+          goto __pyx_L23;
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":176
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":170
  *                 element._c_node.line = <short>c_ctxt.input.line
  *             else:
  *                 element._c_node.line = 65535             # <<<<<<<<<<<<<<
@@ -95094,10 +94998,10 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  */
           __pyx_v_element->_c_node->line = 65535;
         }
-        __pyx_L25:;
-        goto __pyx_L24;
+        __pyx_L23:;
+        goto __pyx_L22;
       }
-      __pyx_L24:;
+      __pyx_L22:;
     }
     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -95106,7 +95010,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
     __pyx_L5_error:;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":177
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":171
  *             else:
  *                 element._c_node.line = 65535
  *     except:             # <<<<<<<<<<<<<<
@@ -95115,12 +95019,12 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxStart", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_9, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_10, &__pyx_t_11) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 171; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_GOTREF(__pyx_t_9);
       __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_GOTREF(__pyx_t_11);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":178
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":172
  *                 element._c_node.line = 65535
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -95129,8 +95033,8 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
  */
       ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserContext *)__pyx_v_context->__pyx_base.__pyx_base.__pyx_base.__pyx_vtab)->_handleSaxException(__pyx_v_context, __pyx_v_c_ctxt);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
       goto __pyx_L6_exception_handled;
     }
     __pyx_L7_except_error:;
@@ -95150,8 +95054,8 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_5);
-  __Pyx_XDECREF(__pyx_t_9);
   __Pyx_XDECREF(__pyx_t_10);
+  __Pyx_XDECREF(__pyx_t_11);
   __Pyx_WriteUnraisable("lxml.etree._handleSaxStart", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_L0:;
   __Pyx_XDECREF((PyObject *)__pyx_v_context);
@@ -95168,7 +95072,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStart(void *__pyx_v_ctxt, const xmlCh
   #endif
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":180
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":174
  *         context._handleSaxException(c_ctxt)
  * 
  * cdef void _handleSaxStartNoNs(void* ctxt, const_xmlChar* c_name,             # <<<<<<<<<<<<<<
@@ -95183,7 +95087,6 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
   PyObject *__pyx_v_tag = NULL;
   PyObject *__pyx_v_attrib = NULL;
   PyObject *__pyx_v_name = NULL;
-  PyObject *__pyx_v_value = NULL;
   __Pyx_RefNannyDeclarations
   int __pyx_t_1;
   PyObject *__pyx_t_2 = NULL;
@@ -95202,7 +95105,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
   #endif
   __Pyx_RefNannySetupContext("_handleSaxStartNoNs", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":185
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":179
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     cdef _Element element
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt             # <<<<<<<<<<<<<<
@@ -95211,7 +95114,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  */
   __pyx_v_c_ctxt = ((xmlParserCtxt *)__pyx_v_ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":186
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":180
  *     cdef _Element element
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:             # <<<<<<<<<<<<<<
@@ -95221,7 +95124,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
   __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":187
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":181
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:
  *         return             # <<<<<<<<<<<<<<
@@ -95233,7 +95136,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":188
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":182
  *     if c_ctxt._private is NULL:
  *         return
  *     context = <_SaxParserContext>c_ctxt._private             # <<<<<<<<<<<<<<
@@ -95243,7 +95146,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":189
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":183
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxStartNoNs is not NULL:             # <<<<<<<<<<<<<<
@@ -95253,7 +95156,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
   __pyx_t_1 = ((__pyx_v_context->_origSaxStartNoNs != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":190
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":184
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxStartNoNs is not NULL:
  *         context._origSaxStartNoNs(c_ctxt, c_name, c_attributes)             # <<<<<<<<<<<<<<
@@ -95265,7 +95168,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":191
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":185
  *     if context._origSaxStartNoNs is not NULL:
  *         context._origSaxStartNoNs(c_ctxt, c_name, c_attributes)
  *     try:             # <<<<<<<<<<<<<<
@@ -95279,19 +95182,19 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
     __Pyx_XGOTREF(__pyx_t_4);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":192
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":186
  *         context._origSaxStartNoNs(c_ctxt, c_name, c_attributes)
  *     try:
  *         tag = funicode(c_name)             # <<<<<<<<<<<<<<
  *         if c_attributes is NULL:
  *             attrib = EMPTY_READ_ONLY_DICT
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_v_tag = __pyx_t_5;
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":193
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":187
  *     try:
  *         tag = funicode(c_name)
  *         if c_attributes is NULL:             # <<<<<<<<<<<<<<
@@ -95301,7 +95204,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
       __pyx_t_1 = ((__pyx_v_c_attributes == NULL) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":194
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":188
  *         tag = funicode(c_name)
  *         if c_attributes is NULL:
  *             attrib = EMPTY_READ_ONLY_DICT             # <<<<<<<<<<<<<<
@@ -95314,130 +95217,67 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":196
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":190
  *             attrib = EMPTY_READ_ONLY_DICT
  *         else:
  *             attrib = {}             # <<<<<<<<<<<<<<
  *             while c_attributes[0] is not NULL:
  *                 name = funicode(c_attributes[0])
  */
-        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 196; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+        __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_5));
         __pyx_v_attrib = ((PyObject *)__pyx_t_5);
         __pyx_t_5 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":197
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":191
  *         else:
  *             attrib = {}
  *             while c_attributes[0] is not NULL:             # <<<<<<<<<<<<<<
  *                 name = funicode(c_attributes[0])
- *                 if c_attributes[1] is NULL:
+ *                 attrib[name] = funicodeOrEmpty(c_attributes[1])
  */
         while (1) {
           __pyx_t_1 = (((__pyx_v_c_attributes[0]) != NULL) != 0);
           if (!__pyx_t_1) break;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":198
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":192
  *             attrib = {}
  *             while c_attributes[0] is not NULL:
  *                 name = funicode(c_attributes[0])             # <<<<<<<<<<<<<<
- *                 if c_attributes[1] is NULL:
- *                     if python.IS_PYTHON3:
+ *                 attrib[name] = funicodeOrEmpty(c_attributes[1])
+ *                 c_attributes += 2
  */
-          __pyx_t_5 = __pyx_f_4lxml_5etree_funicode((__pyx_v_c_attributes[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 198; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __pyx_t_5 = __pyx_f_4lxml_5etree_funicode((__pyx_v_c_attributes[0])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          __Pyx_XDECREF(__pyx_v_name);
-          __pyx_v_name = __pyx_t_5;
+          __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
           __pyx_t_5 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":199
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":193
  *             while c_attributes[0] is not NULL:
  *                 name = funicode(c_attributes[0])
- *                 if c_attributes[1] is NULL:             # <<<<<<<<<<<<<<
- *                     if python.IS_PYTHON3:
- *                         value = u''
- */
-          __pyx_t_1 = (((__pyx_v_c_attributes[1]) == NULL) != 0);
-          if (__pyx_t_1) {
-
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":200
- *                 name = funicode(c_attributes[0])
- *                 if c_attributes[1] is NULL:
- *                     if python.IS_PYTHON3:             # <<<<<<<<<<<<<<
- *                         value = u''
- *                     else:
- */
-            __pyx_t_1 = (IS_PYTHON3 != 0);
-            if (__pyx_t_1) {
-
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":201
- *                 if c_attributes[1] is NULL:
- *                     if python.IS_PYTHON3:
- *                         value = u''             # <<<<<<<<<<<<<<
- *                     else:
- *                         value = ''
- */
-              __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
-              __Pyx_XDECREF(__pyx_v_value);
-              __pyx_v_value = ((PyObject *)__pyx_kp_u_25);
-              goto __pyx_L17;
-            }
-            /*else*/ {
-
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":203
- *                         value = u''
- *                     else:
- *                         value = ''             # <<<<<<<<<<<<<<
- *                 else:
- *                     value = funicode(c_attributes[1])
- */
-              __Pyx_INCREF(((PyObject *)__pyx_kp_s_25));
-              __Pyx_XDECREF(__pyx_v_value);
-              __pyx_v_value = ((PyObject *)__pyx_kp_s_25);
-            }
-            __pyx_L17:;
-            goto __pyx_L16;
-          }
-          /*else*/ {
-
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":205
- *                         value = ''
- *                 else:
- *                     value = funicode(c_attributes[1])             # <<<<<<<<<<<<<<
- *                 c_attributes = c_attributes + 2
- *                 attrib[name] = value
- */
-            __pyx_t_5 = __pyx_f_4lxml_5etree_funicode((__pyx_v_c_attributes[1])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 205; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
-            __Pyx_GOTREF(__pyx_t_5);
-            __Pyx_XDECREF(__pyx_v_value);
-            __pyx_v_value = __pyx_t_5;
-            __pyx_t_5 = 0;
-          }
-          __pyx_L16:;
-
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":206
- *                 else:
- *                     value = funicode(c_attributes[1])
- *                 c_attributes = c_attributes + 2             # <<<<<<<<<<<<<<
- *                 attrib[name] = value
+ *                 attrib[name] = funicodeOrEmpty(c_attributes[1])             # <<<<<<<<<<<<<<
+ *                 c_attributes += 2
  *         element = context._target._handleSaxStart(
  */
-          __pyx_v_c_attributes = (__pyx_v_c_attributes + 2);
+          __pyx_t_5 = __pyx_f_4lxml_5etree_funicodeOrEmpty((__pyx_v_c_attributes[1])); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __Pyx_GOTREF(__pyx_t_5);
+          if (PyObject_SetItem(__pyx_v_attrib, __pyx_v_name, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":207
- *                     value = funicode(c_attributes[1])
- *                 c_attributes = c_attributes + 2
- *                 attrib[name] = value             # <<<<<<<<<<<<<<
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":194
+ *                 name = funicode(c_attributes[0])
+ *                 attrib[name] = funicodeOrEmpty(c_attributes[1])
+ *                 c_attributes += 2             # <<<<<<<<<<<<<<
  *         element = context._target._handleSaxStart(
  *             tag, attrib, EMPTY_READ_ONLY_DICT)
  */
-          if (PyObject_SetItem(__pyx_v_attrib, __pyx_v_name, __pyx_v_value) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+          __pyx_v_c_attributes = (__pyx_v_c_attributes + 2);
         }
       }
       __pyx_L13:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":209
- *                 attrib[name] = value
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":196
+ *                 c_attributes += 2
  *         element = context._target._handleSaxStart(
  *             tag, attrib, EMPTY_READ_ONLY_DICT)             # <<<<<<<<<<<<<<
  *         if element is not None and c_ctxt.input is not NULL:
@@ -95445,19 +95285,19 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  */
       __pyx_t_5 = __pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT;
       __Pyx_INCREF(__pyx_t_5);
-      __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxStart(__pyx_v_context->_target, __pyx_v_tag, __pyx_v_attrib, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxStart(__pyx_v_context->_target, __pyx_v_tag, __pyx_v_attrib, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 208; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __pyx_v_element = ((struct LxmlElement *)__pyx_t_6);
       __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":210
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":197
  *         element = context._target._handleSaxStart(
  *             tag, attrib, EMPTY_READ_ONLY_DICT)
  *         if element is not None and c_ctxt.input is not NULL:             # <<<<<<<<<<<<<<
  *             if c_ctxt.input.line < 65535:
- *                 element._c_node.line = <short>c_ctxt.input.line
+ *                 element._c_node.line = <unsigned short>c_ctxt.input.line
  */
       __pyx_t_1 = (((PyObject *)__pyx_v_element) != Py_None);
       if ((__pyx_t_1 != 0)) {
@@ -95468,30 +95308,30 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
       }
       if (__pyx_t_8) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":211
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":198
  *             tag, attrib, EMPTY_READ_ONLY_DICT)
  *         if element is not None and c_ctxt.input is not NULL:
  *             if c_ctxt.input.line < 65535:             # <<<<<<<<<<<<<<
- *                 element._c_node.line = <short>c_ctxt.input.line
+ *                 element._c_node.line = <unsigned short>c_ctxt.input.line
  *             else:
  */
         __pyx_t_8 = ((__pyx_v_c_ctxt->input->line < 65535) != 0);
         if (__pyx_t_8) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":212
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":199
  *         if element is not None and c_ctxt.input is not NULL:
  *             if c_ctxt.input.line < 65535:
- *                 element._c_node.line = <short>c_ctxt.input.line             # <<<<<<<<<<<<<<
+ *                 element._c_node.line = <unsigned short>c_ctxt.input.line             # <<<<<<<<<<<<<<
  *             else:
  *                 element._c_node.line = 65535
  */
-          __pyx_v_element->_c_node->line = ((short)__pyx_v_c_ctxt->input->line);
-          goto __pyx_L19;
+          __pyx_v_element->_c_node->line = ((unsigned short)__pyx_v_c_ctxt->input->line);
+          goto __pyx_L17;
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":214
- *                 element._c_node.line = <short>c_ctxt.input.line
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":201
+ *                 element._c_node.line = <unsigned short>c_ctxt.input.line
  *             else:
  *                 element._c_node.line = 65535             # <<<<<<<<<<<<<<
  *     except:
@@ -95499,10 +95339,10 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  */
           __pyx_v_element->_c_node->line = 65535;
         }
-        __pyx_L19:;
-        goto __pyx_L18;
+        __pyx_L17:;
+        goto __pyx_L16;
       }
-      __pyx_L18:;
+      __pyx_L16:;
     }
     __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -95512,7 +95352,7 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":215
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":202
  *             else:
  *                 element._c_node.line = 65535
  *     except:             # <<<<<<<<<<<<<<
@@ -95521,12 +95361,12 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxStartNoNs", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_9);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":216
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":203
  *                 element._c_node.line = 65535
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -95565,14 +95405,13 @@ static void __pyx_f_4lxml_5etree__handleSaxStartNoNs(void *__pyx_v_ctxt, const x
   __Pyx_XDECREF(__pyx_v_tag);
   __Pyx_XDECREF(__pyx_v_attrib);
   __Pyx_XDECREF(__pyx_v_name);
-  __Pyx_XDECREF(__pyx_v_value);
   __Pyx_RefNannyFinishContext();
   #ifdef WITH_THREAD
   PyGILState_Release(__pyx_gilstate_save);
   #endif
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":218
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":205
  *         context._handleSaxException(c_ctxt)
  * 
  * cdef void _handleSaxEnd(void* ctxt, const_xmlChar* c_localname, const_xmlChar* c_prefix,             # <<<<<<<<<<<<<<
@@ -95600,7 +95439,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
   #endif
   __Pyx_RefNannySetupContext("_handleSaxEnd", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":222
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":209
  *     cdef _SaxParserContext context
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt             # <<<<<<<<<<<<<<
@@ -95609,7 +95448,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
  */
   __pyx_v_c_ctxt = ((xmlParserCtxt *)__pyx_v_ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":223
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":210
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:             # <<<<<<<<<<<<<<
@@ -95619,7 +95458,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
   __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":224
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":211
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:
  *         return             # <<<<<<<<<<<<<<
@@ -95631,7 +95470,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":225
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":212
  *     if c_ctxt._private is NULL:
  *         return
  *     context = <_SaxParserContext>c_ctxt._private             # <<<<<<<<<<<<<<
@@ -95641,7 +95480,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":226
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":213
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxEnd is not NULL:             # <<<<<<<<<<<<<<
@@ -95651,7 +95490,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
   __pyx_t_1 = ((__pyx_v_context->_origSaxEnd != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":227
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":214
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxEnd is not NULL:
  *         context._origSaxEnd(c_ctxt, c_localname, c_prefix, c_namespace)             # <<<<<<<<<<<<<<
@@ -95663,7 +95502,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":228
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":215
  *     if context._origSaxEnd is not NULL:
  *         context._origSaxEnd(c_ctxt, c_localname, c_prefix, c_namespace)
  *     try:             # <<<<<<<<<<<<<<
@@ -95677,26 +95516,26 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
     __Pyx_XGOTREF(__pyx_t_4);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":229
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":216
  *         context._origSaxEnd(c_ctxt, c_localname, c_prefix, c_namespace)
  *     try:
  *         tag = _namespacedNameFromNsName(c_namespace, c_localname)             # <<<<<<<<<<<<<<
  *         context._target._handleSaxEnd(tag)
  *     except:
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(__pyx_v_c_namespace, __pyx_v_c_localname); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree__namespacedNameFromNsName(__pyx_v_c_namespace, __pyx_v_c_localname); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_v_tag = __pyx_t_5;
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":230
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":217
  *     try:
  *         tag = _namespacedNameFromNsName(c_namespace, c_localname)
  *         context._target._handleSaxEnd(tag)             # <<<<<<<<<<<<<<
  *     except:
  *         context._handleSaxException(c_ctxt)
  */
-      __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxEnd(__pyx_v_context->_target, __pyx_v_tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 230; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_5 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxEnd(__pyx_v_context->_target, __pyx_v_tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 217; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     }
@@ -95707,7 +95546,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
     __pyx_L5_error:;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":231
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":218
  *         tag = _namespacedNameFromNsName(c_namespace, c_localname)
  *         context._target._handleSaxEnd(tag)
  *     except:             # <<<<<<<<<<<<<<
@@ -95716,12 +95555,12 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxEnd", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_7);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":232
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":219
  *         context._target._handleSaxEnd(tag)
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -95763,7 +95602,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEnd(void *__pyx_v_ctxt, const xmlChar
   #endif
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":234
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":221
  *         context._handleSaxException(c_ctxt)
  * 
  * cdef void _handleSaxEndNoNs(void* ctxt, const_xmlChar* c_name) with gil:             # <<<<<<<<<<<<<<
@@ -95790,7 +95629,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
   #endif
   __Pyx_RefNannySetupContext("_handleSaxEndNoNs", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":237
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":224
  *     cdef _SaxParserContext context
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt             # <<<<<<<<<<<<<<
@@ -95799,7 +95638,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
  */
   __pyx_v_c_ctxt = ((xmlParserCtxt *)__pyx_v_ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":238
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":225
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:             # <<<<<<<<<<<<<<
@@ -95809,7 +95648,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
   __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":239
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":226
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:
  *         return             # <<<<<<<<<<<<<<
@@ -95821,7 +95660,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":240
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":227
  *     if c_ctxt._private is NULL:
  *         return
  *     context = <_SaxParserContext>c_ctxt._private             # <<<<<<<<<<<<<<
@@ -95831,7 +95670,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":241
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":228
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxEndNoNs is not NULL:             # <<<<<<<<<<<<<<
@@ -95841,7 +95680,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
   __pyx_t_1 = ((__pyx_v_context->_origSaxEndNoNs != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":242
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":229
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxEndNoNs is not NULL:
  *         context._origSaxEndNoNs(c_ctxt, c_name)             # <<<<<<<<<<<<<<
@@ -95853,7 +95692,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":243
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":230
  *     if context._origSaxEndNoNs is not NULL:
  *         context._origSaxEndNoNs(c_ctxt, c_name)
  *     try:             # <<<<<<<<<<<<<<
@@ -95867,16 +95706,16 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
     __Pyx_XGOTREF(__pyx_t_4);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":244
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":231
  *         context._origSaxEndNoNs(c_ctxt, c_name)
  *     try:
  *         context._target._handleSaxEnd(funicode(c_name))             # <<<<<<<<<<<<<<
  *     except:
  *         context._handleSaxException(c_ctxt)
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_name); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxEnd(__pyx_v_context->_target, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxEnd(__pyx_v_context->_target, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 231; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -95889,7 +95728,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":245
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":232
  *     try:
  *         context._target._handleSaxEnd(funicode(c_name))
  *     except:             # <<<<<<<<<<<<<<
@@ -95898,12 +95737,12 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxEndNoNs", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 232; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_7);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":246
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":233
  *         context._target._handleSaxEnd(funicode(c_name))
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -95944,7 +95783,7 @@ static void __pyx_f_4lxml_5etree__handleSaxEndNoNs(void *__pyx_v_ctxt, const xml
   #endif
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":248
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":235
  *         context._handleSaxException(c_ctxt)
  * 
  * cdef void _handleSaxData(void* ctxt, const_xmlChar* c_data, int data_len) with gil:             # <<<<<<<<<<<<<<
@@ -95973,7 +95812,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
   #endif
   __Pyx_RefNannySetupContext("_handleSaxData", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":251
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":238
  *     cdef _SaxParserContext context
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt             # <<<<<<<<<<<<<<
@@ -95982,7 +95821,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
  */
   __pyx_v_c_ctxt = ((xmlParserCtxt *)__pyx_v_ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":252
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":239
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:             # <<<<<<<<<<<<<<
@@ -95997,7 +95836,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":253
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":240
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:
  *         return             # <<<<<<<<<<<<<<
@@ -96009,7 +95848,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":254
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":241
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:
  *         return
  *     context = <_SaxParserContext>c_ctxt._private             # <<<<<<<<<<<<<<
@@ -96019,7 +95858,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":255
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":242
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxData is not NULL:             # <<<<<<<<<<<<<<
@@ -96029,7 +95868,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
   __pyx_t_2 = ((__pyx_v_context->_origSaxData != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":256
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":243
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxData is not NULL:
  *         context._origSaxData(c_ctxt, c_data, data_len)             # <<<<<<<<<<<<<<
@@ -96041,7 +95880,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":257
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":244
  *     if context._origSaxData is not NULL:
  *         context._origSaxData(c_ctxt, c_data, data_len)
  *     try:             # <<<<<<<<<<<<<<
@@ -96055,16 +95894,16 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
     __Pyx_XGOTREF(__pyx_t_5);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":259
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":246
  *     try:
  *         context._target._handleSaxData(
  *             python.PyUnicode_DecodeUTF8(<const_char*>c_data, data_len, NULL))             # <<<<<<<<<<<<<<
  *     except:
  *         context._handleSaxException(c_ctxt)
  */
-      __pyx_t_6 = ((PyObject *)PyUnicode_DecodeUTF8(((const char *)__pyx_v_c_data), __pyx_v_data_len, NULL)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 259; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_6 = ((PyObject *)PyUnicode_DecodeUTF8(((const char *)__pyx_v_c_data), __pyx_v_data_len, NULL)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxData(__pyx_v_context->_target, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 258; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxData(__pyx_v_context->_target, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     }
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -96074,7 +95913,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
     __pyx_L5_error:;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":260
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":247
  *         context._target._handleSaxData(
  *             python.PyUnicode_DecodeUTF8(<const_char*>c_data, data_len, NULL))
  *     except:             # <<<<<<<<<<<<<<
@@ -96083,12 +95922,12 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxData", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_9);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":261
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":248
  *             python.PyUnicode_DecodeUTF8(<const_char*>c_data, data_len, NULL))
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -96129,7 +95968,7 @@ static void __pyx_f_4lxml_5etree__handleSaxData(void *__pyx_v_ctxt, const xmlCha
   #endif
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":263
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":250
  *         context._handleSaxException(c_ctxt)
  * 
  * cdef void _handleSaxCData(void* ctxt, const_xmlChar* c_data, int data_len) with gil:             # <<<<<<<<<<<<<<
@@ -96158,7 +95997,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
   #endif
   __Pyx_RefNannySetupContext("_handleSaxCData", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":266
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":253
  *     cdef _SaxParserContext context
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt             # <<<<<<<<<<<<<<
@@ -96167,7 +96006,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
  */
   __pyx_v_c_ctxt = ((xmlParserCtxt *)__pyx_v_ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":267
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":254
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:             # <<<<<<<<<<<<<<
@@ -96182,7 +96021,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":268
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":255
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:
  *         return             # <<<<<<<<<<<<<<
@@ -96194,7 +96033,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":269
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":256
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:
  *         return
  *     context = <_SaxParserContext>c_ctxt._private             # <<<<<<<<<<<<<<
@@ -96204,7 +96043,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":270
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":257
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxCData is not NULL:             # <<<<<<<<<<<<<<
@@ -96214,7 +96053,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
   __pyx_t_2 = ((__pyx_v_context->_origSaxCData != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":271
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":258
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxCData is not NULL:
  *         context._origSaxCData(c_ctxt, c_data, data_len)             # <<<<<<<<<<<<<<
@@ -96226,7 +96065,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":272
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":259
  *     if context._origSaxCData is not NULL:
  *         context._origSaxCData(c_ctxt, c_data, data_len)
  *     try:             # <<<<<<<<<<<<<<
@@ -96240,16 +96079,16 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
     __Pyx_XGOTREF(__pyx_t_5);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":274
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":261
  *     try:
  *         context._target._handleSaxData(
  *             python.PyUnicode_DecodeUTF8(<const_char*>c_data, data_len, NULL))             # <<<<<<<<<<<<<<
  *     except:
  *         context._handleSaxException(c_ctxt)
  */
-      __pyx_t_6 = ((PyObject *)PyUnicode_DecodeUTF8(((const char *)__pyx_v_c_data), __pyx_v_data_len, NULL)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 274; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_6 = ((PyObject *)PyUnicode_DecodeUTF8(((const char *)__pyx_v_c_data), __pyx_v_data_len, NULL)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 261; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxData(__pyx_v_context->_target, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxData(__pyx_v_context->_target, __pyx_t_6); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 260; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     }
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -96259,7 +96098,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
     __pyx_L5_error:;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":275
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":262
  *         context._target._handleSaxData(
  *             python.PyUnicode_DecodeUTF8(<const_char*>c_data, data_len, NULL))
  *     except:             # <<<<<<<<<<<<<<
@@ -96268,12 +96107,12 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxCData", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_8, &__pyx_t_9) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_9);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":276
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":263
  *             python.PyUnicode_DecodeUTF8(<const_char*>c_data, data_len, NULL))
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -96314,7 +96153,7 @@ static void __pyx_f_4lxml_5etree__handleSaxCData(void *__pyx_v_ctxt, const xmlCh
   #endif
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":278
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":265
  *         context._handleSaxException(c_ctxt)
  * 
  * cdef void _handleSaxDoctype(void* ctxt, const_xmlChar* c_name, const_xmlChar* c_public,             # <<<<<<<<<<<<<<
@@ -96343,7 +96182,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
   #endif
   __Pyx_RefNannySetupContext("_handleSaxDoctype", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":282
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":269
  *     cdef _SaxParserContext context
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt             # <<<<<<<<<<<<<<
@@ -96352,7 +96191,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
  */
   __pyx_v_c_ctxt = ((xmlParserCtxt *)__pyx_v_ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":283
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":270
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:             # <<<<<<<<<<<<<<
@@ -96367,7 +96206,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":284
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":271
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:
  *         return             # <<<<<<<<<<<<<<
@@ -96379,7 +96218,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":285
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":272
  *     if c_ctxt._private is NULL or c_ctxt.disableSAX:
  *         return
  *     context = <_SaxParserContext>c_ctxt._private             # <<<<<<<<<<<<<<
@@ -96389,7 +96228,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":286
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":273
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxDoctype is not NULL:             # <<<<<<<<<<<<<<
@@ -96399,7 +96238,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
   __pyx_t_2 = ((__pyx_v_context->_origSaxDoctype != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":287
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":274
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxDoctype is not NULL:
  *         context._origSaxDoctype(c_ctxt, c_name, c_public, c_system)             # <<<<<<<<<<<<<<
@@ -96411,7 +96250,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":288
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":275
  *     if context._origSaxDoctype is not NULL:
  *         context._origSaxDoctype(c_ctxt, c_name, c_public, c_system)
  *     try:             # <<<<<<<<<<<<<<
@@ -96425,36 +96264,36 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
     __Pyx_XGOTREF(__pyx_t_5);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":290
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":277
  *     try:
  *         context._target._handleSaxDoctype(
  *             funicodeOrNone(c_name),             # <<<<<<<<<<<<<<
  *             funicodeOrNone(c_public),
  *             funicodeOrNone(c_system))
  */
-      __pyx_t_6 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_6 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_6);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":291
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":278
  *         context._target._handleSaxDoctype(
  *             funicodeOrNone(c_name),
  *             funicodeOrNone(c_public),             # <<<<<<<<<<<<<<
  *             funicodeOrNone(c_system))
  *     except:
  */
-      __pyx_t_7 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_public); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_7 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_public); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_7);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":292
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":279
  *             funicodeOrNone(c_name),
  *             funicodeOrNone(c_public),
  *             funicodeOrNone(c_system))             # <<<<<<<<<<<<<<
  *     except:
  *         context._handleSaxException(c_ctxt)
  */
-      __pyx_t_8 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_system); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_8 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_system); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_8);
-      __pyx_t_9 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxDoctype(__pyx_v_context->_target, __pyx_t_6, __pyx_t_7, __pyx_t_8); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_9 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxDoctype(__pyx_v_context->_target, __pyx_t_6, __pyx_t_7, __pyx_t_8); if (unlikely(__pyx_t_9 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
@@ -96468,7 +96307,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":293
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":280
  *             funicodeOrNone(c_public),
  *             funicodeOrNone(c_system))
  *     except:             # <<<<<<<<<<<<<<
@@ -96477,12 +96316,12 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxDoctype", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_6);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":294
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":281
  *             funicodeOrNone(c_system))
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -96523,7 +96362,7 @@ static void __pyx_f_4lxml_5etree__handleSaxDoctype(void *__pyx_v_ctxt, const xml
   #endif
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":296
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":283
  *         context._handleSaxException(c_ctxt)
  * 
  * cdef void _handleSaxPI(void* ctxt, const_xmlChar* c_target, const_xmlChar* c_data) with gil:             # <<<<<<<<<<<<<<
@@ -96550,7 +96389,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
   #endif
   __Pyx_RefNannySetupContext("_handleSaxPI", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":299
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":286
  *     cdef _SaxParserContext context
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt             # <<<<<<<<<<<<<<
@@ -96559,7 +96398,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
  */
   __pyx_v_c_ctxt = ((xmlParserCtxt *)__pyx_v_ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":300
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":287
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:             # <<<<<<<<<<<<<<
@@ -96569,7 +96408,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
   __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":301
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":288
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:
  *         return             # <<<<<<<<<<<<<<
@@ -96581,7 +96420,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":302
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":289
  *     if c_ctxt._private is NULL:
  *         return
  *     context = <_SaxParserContext>c_ctxt._private             # <<<<<<<<<<<<<<
@@ -96591,7 +96430,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":303
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":290
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxPi is not NULL:             # <<<<<<<<<<<<<<
@@ -96601,7 +96440,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
   __pyx_t_1 = ((__pyx_v_context->_origSaxPi != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":304
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":291
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxPi is not NULL:
  *         context._origSaxPi(c_ctxt, c_target, c_data)             # <<<<<<<<<<<<<<
@@ -96613,7 +96452,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":305
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":292
  *     if context._origSaxPi is not NULL:
  *         context._origSaxPi(c_ctxt, c_target, c_data)
  *     try:             # <<<<<<<<<<<<<<
@@ -96627,26 +96466,26 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
     __Pyx_XGOTREF(__pyx_t_4);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":307
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":294
  *     try:
  *         context._target._handleSaxPi(
  *             funicodeOrNone(c_target),             # <<<<<<<<<<<<<<
  *             funicodeOrEmpty(c_data))
  *     except:
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_target); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree_funicodeOrNone(__pyx_v_c_target); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_5);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":308
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":295
  *         context._target._handleSaxPi(
  *             funicodeOrNone(c_target),
  *             funicodeOrEmpty(c_data))             # <<<<<<<<<<<<<<
  *     except:
  *         context._handleSaxException(c_ctxt)
  */
-      __pyx_t_6 = __pyx_f_4lxml_5etree_funicodeOrEmpty(__pyx_v_c_data); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_6 = __pyx_f_4lxml_5etree_funicodeOrEmpty(__pyx_v_c_data); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxPi(__pyx_v_context->_target, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxPi(__pyx_v_context->_target, __pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -96661,7 +96500,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":309
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":296
  *             funicodeOrNone(c_target),
  *             funicodeOrEmpty(c_data))
  *     except:             # <<<<<<<<<<<<<<
@@ -96670,12 +96509,12 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxPI", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_5);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":310
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":297
  *             funicodeOrEmpty(c_data))
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -96716,7 +96555,7 @@ static void __pyx_f_4lxml_5etree__handleSaxPI(void *__pyx_v_ctxt, const xmlChar
   #endif
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":312
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":299
  *         context._handleSaxException(c_ctxt)
  * 
  * cdef void _handleSaxComment(void* ctxt, const_xmlChar* c_data) with gil:             # <<<<<<<<<<<<<<
@@ -96743,7 +96582,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
   #endif
   __Pyx_RefNannySetupContext("_handleSaxComment", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":315
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":302
  *     cdef _SaxParserContext context
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt             # <<<<<<<<<<<<<<
@@ -96752,7 +96591,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
  */
   __pyx_v_c_ctxt = ((xmlParserCtxt *)__pyx_v_ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":316
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":303
  *     cdef xmlparser.xmlParserCtxt* c_ctxt
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:             # <<<<<<<<<<<<<<
@@ -96762,7 +96601,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
   __pyx_t_1 = ((__pyx_v_c_ctxt->_private == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":317
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":304
  *     c_ctxt = <xmlparser.xmlParserCtxt*>ctxt
  *     if c_ctxt._private is NULL:
  *         return             # <<<<<<<<<<<<<<
@@ -96774,7 +96613,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":318
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":305
  *     if c_ctxt._private is NULL:
  *         return
  *     context = <_SaxParserContext>c_ctxt._private             # <<<<<<<<<<<<<<
@@ -96784,7 +96623,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private)));
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__SaxParserContext *)__pyx_v_c_ctxt->_private);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":319
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":306
  *         return
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxComment is not NULL:             # <<<<<<<<<<<<<<
@@ -96794,7 +96633,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
   __pyx_t_1 = ((__pyx_v_context->_origSaxComment != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":320
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":307
  *     context = <_SaxParserContext>c_ctxt._private
  *     if context._origSaxComment is not NULL:
  *         context._origSaxComment(c_ctxt, c_data)             # <<<<<<<<<<<<<<
@@ -96806,7 +96645,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":321
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":308
  *     if context._origSaxComment is not NULL:
  *         context._origSaxComment(c_ctxt, c_data)
  *     try:             # <<<<<<<<<<<<<<
@@ -96820,16 +96659,16 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
     __Pyx_XGOTREF(__pyx_t_4);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":322
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":309
  *         context._origSaxComment(c_ctxt, c_data)
  *     try:
  *         context._target._handleSaxComment(funicodeOrEmpty(c_data))             # <<<<<<<<<<<<<<
  *     except:
  *         context._handleSaxException(c_ctxt)
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree_funicodeOrEmpty(__pyx_v_c_data); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree_funicodeOrEmpty(__pyx_v_c_data); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxComment(__pyx_v_context->_target, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
+      __pyx_t_6 = ((struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget *)__pyx_v_context->_target->__pyx_vtab)->_handleSaxComment(__pyx_v_context->_target, __pyx_t_5); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L5_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -96842,7 +96681,7 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":323
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":310
  *     try:
  *         context._target._handleSaxComment(funicodeOrEmpty(c_data))
  *     except:             # <<<<<<<<<<<<<<
@@ -96851,12 +96690,12 @@ static void __pyx_f_4lxml_5etree__handleSaxComment(void *__pyx_v_ctxt, const xml
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._handleSaxComment", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_5, &__pyx_t_7) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L7_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_7);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":324
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":311
  *         context._target._handleSaxComment(funicodeOrEmpty(c_data))
  *     except:
  *         context._handleSaxException(c_ctxt)             # <<<<<<<<<<<<<<
@@ -96912,7 +96751,7 @@ static int __pyx_pw_4lxml_5etree_11TreeBuilder_1__init__(PyObject *__pyx_v_self,
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element_factory,&__pyx_n_s__parser,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":345
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":332
  *     cdef bint _in_tail
  * 
  *     def __init__(self, *, element_factory=None, parser=None):             # <<<<<<<<<<<<<<
@@ -96937,7 +96776,7 @@ static int __pyx_pw_4lxml_5etree_11TreeBuilder_1__init__(PyObject *__pyx_v_self,
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 0) {
       goto __pyx_L5_argtuple_error;
@@ -96948,7 +96787,7 @@ static int __pyx_pw_4lxml_5etree_11TreeBuilder_1__init__(PyObject *__pyx_v_self,
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 345; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 332; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.TreeBuilder.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -96968,7 +96807,7 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":346
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":333
  * 
  *     def __init__(self, *, element_factory=None, parser=None):
  *         self._sax_event_filter = \             # <<<<<<<<<<<<<<
@@ -96977,14 +96816,14 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
  */
   __pyx_v_self->__pyx_base._sax_event_filter = ((((__pyx_e_4lxml_5etree_SAX_EVENT_START | __pyx_e_4lxml_5etree_SAX_EVENT_END) | __pyx_e_4lxml_5etree_SAX_EVENT_DATA) | __pyx_e_4lxml_5etree_SAX_EVENT_PI) | __pyx_e_4lxml_5etree_SAX_EVENT_COMMENT);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":349
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":336
  *             SAX_EVENT_START | SAX_EVENT_END | SAX_EVENT_DATA | \
  *             SAX_EVENT_PI | SAX_EVENT_COMMENT
  *         self._data = [] # data collector             # <<<<<<<<<<<<<<
  *         self._element_stack = [] # element stack
  *         self._element_stack_pop = self._element_stack.pop
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 349; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
   __Pyx_GOTREF(__pyx_v_self->_data);
@@ -96992,14 +96831,14 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
   __pyx_v_self->_data = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":350
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":337
  *             SAX_EVENT_PI | SAX_EVENT_COMMENT
  *         self._data = [] # data collector
  *         self._element_stack = [] # element stack             # <<<<<<<<<<<<<<
  *         self._element_stack_pop = self._element_stack.pop
  *         self._last = None # last element
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
   __Pyx_GOTREF(__pyx_v_self->_element_stack);
@@ -97007,14 +96846,14 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
   __pyx_v_self->_element_stack = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":351
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":338
  *         self._data = [] # data collector
  *         self._element_stack = [] # element stack
  *         self._element_stack_pop = self._element_stack.pop             # <<<<<<<<<<<<<<
  *         self._last = None # last element
  *         self._in_tail = 0 # true if we're after an end tag
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_element_stack), __pyx_n_s__pop); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_element_stack), __pyx_n_s__pop); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->_element_stack_pop);
@@ -97022,7 +96861,7 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
   __pyx_v_self->_element_stack_pop = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":352
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":339
  *         self._element_stack = [] # element stack
  *         self._element_stack_pop = self._element_stack.pop
  *         self._last = None # last element             # <<<<<<<<<<<<<<
@@ -97035,7 +96874,7 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
   __pyx_v_self->_last = ((struct LxmlElement *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":353
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":340
  *         self._element_stack_pop = self._element_stack.pop
  *         self._last = None # last element
  *         self._in_tail = 0 # true if we're after an end tag             # <<<<<<<<<<<<<<
@@ -97044,7 +96883,7 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
  */
   __pyx_v_self->_in_tail = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":354
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":341
  *         self._last = None # last element
  *         self._in_tail = 0 # true if we're after an end tag
  *         self._factory = element_factory             # <<<<<<<<<<<<<<
@@ -97057,14 +96896,14 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
   __Pyx_DECREF(__pyx_v_self->_factory);
   __pyx_v_self->_factory = __pyx_v_element_factory;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":355
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":342
  *         self._in_tail = 0 # true if we're after an end tag
  *         self._factory = element_factory
  *         self._parser = parser             # <<<<<<<<<<<<<<
  * 
- *     cdef int _flush(self) except -1:
+ *     @cython.final
  */
-  if (!(likely(((__pyx_v_parser) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_parser, __pyx_ptype_4lxml_5etree__BaseParser))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_v_parser) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_parser, __pyx_ptype_4lxml_5etree__BaseParser))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_INCREF(__pyx_v_parser);
   __Pyx_GIVEREF(__pyx_v_parser);
   __Pyx_GOTREF(__pyx_v_self->_parser);
@@ -97082,11 +96921,11 @@ static int __pyx_pf_4lxml_5etree_11TreeBuilder___init__(struct __pyx_obj_4lxml_5
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":357
- *         self._parser = parser
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":345
  * 
+ *     @cython.final
  *     cdef int _flush(self) except -1:             # <<<<<<<<<<<<<<
- *         if python.PyList_GET_SIZE(self._data) > 0:
+ *         if self._data:
  *             if self._last is not None:
  */
 
@@ -97094,65 +96933,62 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
   PyObject *__pyx_v_text = NULL;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
+  int __pyx_t_1;
   int __pyx_t_2;
-  int __pyx_t_3;
+  PyObject *__pyx_t_3 = NULL;
   PyObject *__pyx_t_4 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_flush", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":358
- * 
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":346
+ *     @cython.final
  *     cdef int _flush(self) except -1:
- *         if python.PyList_GET_SIZE(self._data) > 0:             # <<<<<<<<<<<<<<
+ *         if self._data:             # <<<<<<<<<<<<<<
  *             if self._last is not None:
  *                 text = u"".join(self._data)
  */
-  __pyx_t_1 = ((PyObject *)__pyx_v_self->_data);
-  __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = ((PyList_GET_SIZE(__pyx_t_1) > 0) != 0);
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  if (__pyx_t_2) {
+  __pyx_t_1 = (((PyObject *)__pyx_v_self->_data) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_data)) != 0);
+  if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":359
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":347
  *     cdef int _flush(self) except -1:
- *         if python.PyList_GET_SIZE(self._data) > 0:
+ *         if self._data:
  *             if self._last is not None:             # <<<<<<<<<<<<<<
  *                 text = u"".join(self._data)
  *                 if self._in_tail:
  */
-    __pyx_t_2 = (((PyObject *)__pyx_v_self->_last) != Py_None);
-    __pyx_t_3 = (__pyx_t_2 != 0);
-    if (__pyx_t_3) {
+    __pyx_t_1 = (((PyObject *)__pyx_v_self->_last) != Py_None);
+    __pyx_t_2 = (__pyx_t_1 != 0);
+    if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":360
- *         if python.PyList_GET_SIZE(self._data) > 0:
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":348
+ *         if self._data:
  *             if self._last is not None:
  *                 text = u"".join(self._data)             # <<<<<<<<<<<<<<
  *                 if self._in_tail:
  *                     assert self._last.tail is None, u"internal error (tail)"
  */
-      __pyx_t_1 = ((PyObject *)__pyx_v_self->_data);
-      __Pyx_INCREF(__pyx_t_1);
-      __pyx_t_4 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_25, __pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = ((PyObject *)__pyx_v_self->_data);
+      __Pyx_INCREF(__pyx_t_3);
+      __pyx_t_4 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_25, __pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 348; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __pyx_v_text = __pyx_t_4;
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":361
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":349
  *             if self._last is not None:
  *                 text = u"".join(self._data)
  *                 if self._in_tail:             # <<<<<<<<<<<<<<
  *                     assert self._last.tail is None, u"internal error (tail)"
  *                     self._last.tail = text
  */
-      __pyx_t_3 = (__pyx_v_self->_in_tail != 0);
-      if (__pyx_t_3) {
+      __pyx_t_2 = (__pyx_v_self->_in_tail != 0);
+      if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":362
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":350
  *                 text = u"".join(self._data)
  *                 if self._in_tail:
  *                     assert self._last.tail is None, u"internal error (tail)"             # <<<<<<<<<<<<<<
@@ -97160,29 +96996,29 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  *                 else:
  */
         #ifndef CYTHON_WITHOUT_ASSERTIONS
-        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
-        __pyx_t_3 = (__pyx_t_4 == Py_None);
+        __pyx_t_2 = (__pyx_t_4 == Py_None);
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-        if (unlikely(!(__pyx_t_3 != 0))) {
-          PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_221));
-          {__pyx_filename = __pyx_f[12]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (unlikely(!(__pyx_t_2 != 0))) {
+          PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_224));
+          {__pyx_filename = __pyx_f[12]; __pyx_lineno = 350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #endif
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":363
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":351
  *                 if self._in_tail:
  *                     assert self._last.tail is None, u"internal error (tail)"
  *                     self._last.tail = text             # <<<<<<<<<<<<<<
  *                 else:
  *                     assert self._last.text is None, u"internal error (text)"
  */
-        if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail, __pyx_v_text) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tail, __pyx_v_text) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L5;
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":365
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":353
  *                     self._last.tail = text
  *                 else:
  *                     assert self._last.text is None, u"internal error (text)"             # <<<<<<<<<<<<<<
@@ -97190,31 +97026,31 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  *             del self._data[:]
  */
         #ifndef CYTHON_WITHOUT_ASSERTIONS
-        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
-        __pyx_t_3 = (__pyx_t_4 == Py_None);
+        __pyx_t_2 = (__pyx_t_4 == Py_None);
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-        if (unlikely(!(__pyx_t_3 != 0))) {
-          PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_222));
-          {__pyx_filename = __pyx_f[12]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (unlikely(!(__pyx_t_2 != 0))) {
+          PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_225));
+          {__pyx_filename = __pyx_f[12]; __pyx_lineno = 353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #endif
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":366
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":354
  *                 else:
  *                     assert self._last.text is None, u"internal error (text)"
  *                     self._last.text = text             # <<<<<<<<<<<<<<
  *             del self._data[:]
  *         return 0
  */
-        if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text, __pyx_v_text) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__text, __pyx_v_text) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       __pyx_L5:;
       goto __pyx_L4;
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":367
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":355
  *                     assert self._last.text is None, u"internal error (text)"
  *                     self._last.text = text
  *             del self._data[:]             # <<<<<<<<<<<<<<
@@ -97223,19 +97059,19 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
  */
     if (unlikely(((PyObject *)__pyx_v_self->_data) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_data), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_DelSlice(((PyObject *)__pyx_v_self->_data), 0, 0, NULL, NULL, NULL, 0, 0, 1) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":368
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":356
  *                     self._last.text = text
  *             del self._data[:]
  *         return 0             # <<<<<<<<<<<<<<
  * 
- *     # Python level event handlers
+ *     # internal SAX event handlers
  */
   __pyx_r = 0;
   goto __pyx_L0;
@@ -97243,7 +97079,7 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_3);
   __Pyx_XDECREF(__pyx_t_4);
   __Pyx_AddTraceback("lxml.etree.TreeBuilder._flush", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
@@ -97253,6 +97089,595 @@ static int __pyx_f_4lxml_5etree_11TreeBuilder__flush(struct __pyx_obj_4lxml_5etr
   return __pyx_r;
 }
 
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":361
+ * 
+ *     @cython.final
+ *     cdef _handleSaxStart(self, tag, attrib, nsmap):             # <<<<<<<<<<<<<<
+ *         self._flush()
+ *         if self._factory is not None:
+ */
+
+static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, PyObject *__pyx_v_tag, PyObject *__pyx_v_attrib, PyObject *__pyx_v_nsmap) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  int __pyx_t_2;
+  int __pyx_t_3;
+  PyObject *__pyx_t_4 = NULL;
+  PyObject *__pyx_t_5 = NULL;
+  int __pyx_t_6;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("_handleSaxStart", 0);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":362
+ *     @cython.final
+ *     cdef _handleSaxStart(self, tag, attrib, nsmap):
+ *         self._flush()             # <<<<<<<<<<<<<<
+ *         if self._factory is not None:
+ *             self._last = self._factory(tag, attrib)
+ */
+  __pyx_t_1 = __pyx_f_4lxml_5etree_11TreeBuilder__flush(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":363
+ *     cdef _handleSaxStart(self, tag, attrib, nsmap):
+ *         self._flush()
+ *         if self._factory is not None:             # <<<<<<<<<<<<<<
+ *             self._last = self._factory(tag, attrib)
+ *             if self._element_stack:
+ */
+  __pyx_t_2 = (__pyx_v_self->_factory != Py_None);
+  __pyx_t_3 = (__pyx_t_2 != 0);
+  if (__pyx_t_3) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":364
+ *         self._flush()
+ *         if self._factory is not None:
+ *             self._last = self._factory(tag, attrib)             # <<<<<<<<<<<<<<
+ *             if self._element_stack:
+ *                 _appendChild(self._element_stack[-1], self._last)
+ */
+    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_INCREF(__pyx_v_tag);
+    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_tag);
+    __Pyx_GIVEREF(__pyx_v_tag);
+    __Pyx_INCREF(__pyx_v_attrib);
+    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_attrib);
+    __Pyx_GIVEREF(__pyx_v_attrib);
+    __pyx_t_5 = PyObject_Call(__pyx_v_self->_factory, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
+    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GIVEREF(__pyx_t_5);
+    __Pyx_GOTREF(__pyx_v_self->_last);
+    __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
+    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_5);
+    __pyx_t_5 = 0;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":365
+ *         if self._factory is not None:
+ *             self._last = self._factory(tag, attrib)
+ *             if self._element_stack:             # <<<<<<<<<<<<<<
+ *                 _appendChild(self._element_stack[-1], self._last)
+ *         elif self._element_stack:
+ */
+    __pyx_t_3 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
+    if (__pyx_t_3) {
+
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":366
+ *             self._last = self._factory(tag, attrib)
+ *             if self._element_stack:
+ *                 _appendChild(self._element_stack[-1], self._last)             # <<<<<<<<<<<<<<
+ *         elif self._element_stack:
+ *             self._last = _makeSubElement(
+ */
+      if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
+        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+        {__pyx_filename = __pyx_f[12]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      }
+      __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = ((PyObject *)__pyx_v_self->_last);
+      __Pyx_INCREF(__pyx_t_4);
+      __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(((struct LxmlElement *)__pyx_t_5), ((struct LxmlElement *)__pyx_t_4)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      goto __pyx_L4;
+    }
+    __pyx_L4:;
+    goto __pyx_L3;
+  }
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":367
+ *             if self._element_stack:
+ *                 _appendChild(self._element_stack[-1], self._last)
+ *         elif self._element_stack:             # <<<<<<<<<<<<<<
+ *             self._last = _makeSubElement(
+ *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
+ */
+  __pyx_t_3 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
+  if (__pyx_t_3) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":369
+ *         elif self._element_stack:
+ *             self._last = _makeSubElement(
+ *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)             # <<<<<<<<<<<<<<
+ *         else:
+ *             self._last = _makeElement(
+ */
+    if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
+      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    }
+    __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__makeSubElement(((struct LxmlElement *)__pyx_t_4), __pyx_v_tag, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, Py_None)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":368
+ *                 _appendChild(self._element_stack[-1], self._last)
+ *         elif self._element_stack:
+ *             self._last = _makeSubElement(             # <<<<<<<<<<<<<<
+ *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
+ *         else:
+ */
+    __Pyx_GIVEREF(__pyx_t_5);
+    __Pyx_GOTREF(__pyx_v_self->_last);
+    __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
+    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_5);
+    __pyx_t_5 = 0;
+    goto __pyx_L3;
+  }
+  /*else*/ {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":372
+ *         else:
+ *             self._last = _makeElement(
+ *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)             # <<<<<<<<<<<<<<
+ *         self._element_stack.append(self._last)
+ *         self._in_tail = 0
+ */
+    __pyx_t_5 = ((PyObject *)__pyx_v_self->_parser);
+    __Pyx_INCREF(__pyx_t_5);
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v_tag, NULL, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_5), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, Py_None)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":371
+ *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
+ *         else:
+ *             self._last = _makeElement(             # <<<<<<<<<<<<<<
+ *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
+ *         self._element_stack.append(self._last)
+ */
+    __Pyx_GIVEREF(__pyx_t_4);
+    __Pyx_GOTREF(__pyx_v_self->_last);
+    __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
+    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
+    __pyx_t_4 = 0;
+  }
+  __pyx_L3:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":373
+ *             self._last = _makeElement(
+ *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
+ *         self._element_stack.append(self._last)             # <<<<<<<<<<<<<<
+ *         self._in_tail = 0
+ *         return self._last
+ */
+  if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
+    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
+    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  }
+  __pyx_t_4 = ((PyObject *)__pyx_v_self->_last);
+  __Pyx_INCREF(__pyx_t_4);
+  __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->_element_stack, __pyx_t_4); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":374
+ *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
+ *         self._element_stack.append(self._last)
+ *         self._in_tail = 0             # <<<<<<<<<<<<<<
+ *         return self._last
+ * 
+ */
+  __pyx_v_self->_in_tail = 0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":375
+ *         self._element_stack.append(self._last)
+ *         self._in_tail = 0
+ *         return self._last             # <<<<<<<<<<<<<<
+ * 
+ *     @cython.final
+ */
+  __Pyx_XDECREF(__pyx_r);
+  __Pyx_INCREF(((PyObject *)__pyx_v_self->_last));
+  __pyx_r = ((PyObject *)__pyx_v_self->_last);
+  goto __pyx_L0;
+
+  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxStart", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":378
+ * 
+ *     @cython.final
+ *     cdef _handleSaxEnd(self, tag):             # <<<<<<<<<<<<<<
+ *         self._flush()
+ *         self._last = self._element_stack_pop()
+ */
+
+static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxEnd(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_tag) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  PyObject *__pyx_t_2 = NULL;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("_handleSaxEnd", 0);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":379
+ *     @cython.final
+ *     cdef _handleSaxEnd(self, tag):
+ *         self._flush()             # <<<<<<<<<<<<<<
+ *         self._last = self._element_stack_pop()
+ *         self._in_tail = 1
+ */
+  __pyx_t_1 = __pyx_f_4lxml_5etree_11TreeBuilder__flush(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":380
+ *     cdef _handleSaxEnd(self, tag):
+ *         self._flush()
+ *         self._last = self._element_stack_pop()             # <<<<<<<<<<<<<<
+ *         self._in_tail = 1
+ *         return self._last
+ */
+  __pyx_t_2 = PyObject_Call(__pyx_v_self->_element_stack_pop, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
+  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GIVEREF(__pyx_t_2);
+  __Pyx_GOTREF(__pyx_v_self->_last);
+  __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
+  __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_2);
+  __pyx_t_2 = 0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":381
+ *         self._flush()
+ *         self._last = self._element_stack_pop()
+ *         self._in_tail = 1             # <<<<<<<<<<<<<<
+ *         return self._last
+ * 
+ */
+  __pyx_v_self->_in_tail = 1;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":382
+ *         self._last = self._element_stack_pop()
+ *         self._in_tail = 1
+ *         return self._last             # <<<<<<<<<<<<<<
+ * 
+ *     @cython.final
+ */
+  __Pyx_XDECREF(__pyx_r);
+  __Pyx_INCREF(((PyObject *)__pyx_v_self->_last));
+  __pyx_r = ((PyObject *)__pyx_v_self->_last);
+  goto __pyx_L0;
+
+  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxEnd", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":385
+ * 
+ *     @cython.final
+ *     cdef int _handleSaxData(self, data) except -1:             # <<<<<<<<<<<<<<
+ *         self._data.append(data)
+ * 
+ */
+
+static int __pyx_f_4lxml_5etree_11TreeBuilder__handleSaxData(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, PyObject *__pyx_v_data) {
+  int __pyx_r;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("_handleSaxData", 0);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":386
+ *     @cython.final
+ *     cdef int _handleSaxData(self, data) except -1:
+ *         self._data.append(data)             # <<<<<<<<<<<<<<
+ * 
+ *     @cython.final
+ */
+  if (unlikely(((PyObject *)__pyx_v_self->_data) == Py_None)) {
+    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
+    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  }
+  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_data, __pyx_v_data); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 386; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  __pyx_r = 0;
+  goto __pyx_L0;
+  __pyx_L1_error:;
+  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxData", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = -1;
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":389
+ * 
+ *     @cython.final
+ *     cdef _handleSaxPi(self, target, data):             # <<<<<<<<<<<<<<
+ *         self._flush()
+ *         self._last = ProcessingInstruction(target, data)
+ */
+
+static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxPi(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_data) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  PyObject *__pyx_t_2 = NULL;
+  PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("_handleSaxPi", 0);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":390
+ *     @cython.final
+ *     cdef _handleSaxPi(self, target, data):
+ *         self._flush()             # <<<<<<<<<<<<<<
+ *         self._last = ProcessingInstruction(target, data)
+ *         if self._element_stack:
+ */
+  __pyx_t_1 = __pyx_f_4lxml_5etree_11TreeBuilder__flush(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":391
+ *     cdef _handleSaxPi(self, target, data):
+ *         self._flush()
+ *         self._last = ProcessingInstruction(target, data)             # <<<<<<<<<<<<<<
+ *         if self._element_stack:
+ *             _appendChild(self._element_stack[-1], self._last)
+ */
+  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_84); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_INCREF(__pyx_v_target);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_target);
+  __Pyx_GIVEREF(__pyx_v_target);
+  __Pyx_INCREF(__pyx_v_data);
+  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_data);
+  __Pyx_GIVEREF(__pyx_v_data);
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GIVEREF(__pyx_t_4);
+  __Pyx_GOTREF(__pyx_v_self->_last);
+  __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
+  __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
+  __pyx_t_4 = 0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":392
+ *         self._flush()
+ *         self._last = ProcessingInstruction(target, data)
+ *         if self._element_stack:             # <<<<<<<<<<<<<<
+ *             _appendChild(self._element_stack[-1], self._last)
+ *         self._in_tail = 1
+ */
+  __pyx_t_5 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
+  if (__pyx_t_5) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":393
+ *         self._last = ProcessingInstruction(target, data)
+ *         if self._element_stack:
+ *             _appendChild(self._element_stack[-1], self._last)             # <<<<<<<<<<<<<<
+ *         self._in_tail = 1
+ *         return self._last
+ */
+    if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
+      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    }
+    __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(((struct LxmlElement *)__pyx_t_4), ((struct LxmlElement *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    goto __pyx_L3;
+  }
+  __pyx_L3:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":394
+ *         if self._element_stack:
+ *             _appendChild(self._element_stack[-1], self._last)
+ *         self._in_tail = 1             # <<<<<<<<<<<<<<
+ *         return self._last
+ * 
+ */
+  __pyx_v_self->_in_tail = 1;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":395
+ *             _appendChild(self._element_stack[-1], self._last)
+ *         self._in_tail = 1
+ *         return self._last             # <<<<<<<<<<<<<<
+ * 
+ *     @cython.final
+ */
+  __Pyx_XDECREF(__pyx_r);
+  __Pyx_INCREF(((PyObject *)__pyx_v_self->_last));
+  __pyx_r = ((PyObject *)__pyx_v_self->_last);
+  goto __pyx_L0;
+
+  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxPi", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":398
+ * 
+ *     @cython.final
+ *     cdef _handleSaxComment(self, comment):             # <<<<<<<<<<<<<<
+ *         self._flush()
+ *         self._last = Comment(comment)
+ */
+
+static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxComment(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, PyObject *__pyx_v_comment) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  PyObject *__pyx_t_2 = NULL;
+  PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_t_5;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("_handleSaxComment", 0);
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":399
+ *     @cython.final
+ *     cdef _handleSaxComment(self, comment):
+ *         self._flush()             # <<<<<<<<<<<<<<
+ *         self._last = Comment(comment)
+ *         if self._element_stack:
+ */
+  __pyx_t_1 = __pyx_f_4lxml_5etree_11TreeBuilder__flush(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":400
+ *     cdef _handleSaxComment(self, comment):
+ *         self._flush()
+ *         self._last = Comment(comment)             # <<<<<<<<<<<<<<
+ *         if self._element_stack:
+ *             _appendChild(self._element_stack[-1], self._last)
+ */
+  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_INCREF(__pyx_v_comment);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_comment);
+  __Pyx_GIVEREF(__pyx_v_comment);
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GIVEREF(__pyx_t_4);
+  __Pyx_GOTREF(__pyx_v_self->_last);
+  __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
+  __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
+  __pyx_t_4 = 0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":401
+ *         self._flush()
+ *         self._last = Comment(comment)
+ *         if self._element_stack:             # <<<<<<<<<<<<<<
+ *             _appendChild(self._element_stack[-1], self._last)
+ *         self._in_tail = 1
+ */
+  __pyx_t_5 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
+  if (__pyx_t_5) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":402
+ *         self._last = Comment(comment)
+ *         if self._element_stack:
+ *             _appendChild(self._element_stack[-1], self._last)             # <<<<<<<<<<<<<<
+ *         self._in_tail = 1
+ *         return self._last
+ */
+    if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
+      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
+      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    }
+    __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_4);
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
+    __Pyx_INCREF(__pyx_t_3);
+    __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(((struct LxmlElement *)__pyx_t_4), ((struct LxmlElement *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    goto __pyx_L3;
+  }
+  __pyx_L3:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":403
+ *         if self._element_stack:
+ *             _appendChild(self._element_stack[-1], self._last)
+ *         self._in_tail = 1             # <<<<<<<<<<<<<<
+ *         return self._last
+ * 
+ */
+  __pyx_v_self->_in_tail = 1;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":404
+ *             _appendChild(self._element_stack[-1], self._last)
+ *         self._in_tail = 1
+ *         return self._last             # <<<<<<<<<<<<<<
+ * 
+ *     # Python level event handlers
+ */
+  __Pyx_XDECREF(__pyx_r);
+  __Pyx_INCREF(((PyObject *)__pyx_v_self->_last));
+  __pyx_r = ((PyObject *)__pyx_v_self->_last);
+  goto __pyx_L0;
+
+  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
+  goto __pyx_L0;
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxComment", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 /* Python wrapper */
 static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_3close(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/
 static char __pyx_doc_4lxml_5etree_11TreeBuilder_2close[] = "close(self)\n\n        Flushes the builder buffers, and returns the toplevel document\n        element.\n        ";
@@ -97265,7 +97690,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_3close(PyObject *__pyx_v_se
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":372
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":408
  *     # Python level event handlers
  * 
  *     def close(self):             # <<<<<<<<<<<<<<
@@ -97276,47 +97701,44 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_3close(PyObject *__pyx_v_se
 static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_2close(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self) {
   PyObject *__pyx_r = NULL;
   __Pyx_RefNannyDeclarations
-  PyObject *__pyx_t_1 = NULL;
-  int __pyx_t_2;
+  int __pyx_t_1;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("close", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":378
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":414
  *         element.
  *         """
- *         assert python.PyList_GET_SIZE(self._element_stack) == 0, u"missing end tags"             # <<<<<<<<<<<<<<
+ *         assert not self._element_stack, u"missing end tags"             # <<<<<<<<<<<<<<
  *         assert self._last is not None, u"missing toplevel element"
  *         return self._last
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  __pyx_t_1 = ((PyObject *)__pyx_v_self->_element_stack);
-  __Pyx_INCREF(__pyx_t_1);
-  if (unlikely(!((PyList_GET_SIZE(__pyx_t_1) == 0) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_223));
-    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
+  if (unlikely(!((!__pyx_t_1) != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_226));
+    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":379
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":415
  *         """
- *         assert python.PyList_GET_SIZE(self._element_stack) == 0, u"missing end tags"
+ *         assert not self._element_stack, u"missing end tags"
  *         assert self._last is not None, u"missing toplevel element"             # <<<<<<<<<<<<<<
  *         return self._last
  * 
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  __pyx_t_2 = (((PyObject *)__pyx_v_self->_last) != Py_None);
-  if (unlikely(!(__pyx_t_2 != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_224));
-    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (((PyObject *)__pyx_v_self->_last) != Py_None);
+  if (unlikely(!(__pyx_t_1 != 0))) {
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_u_227));
+    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":380
- *         assert python.PyList_GET_SIZE(self._element_stack) == 0, u"missing end tags"
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":416
+ *         assert not self._element_stack, u"missing end tags"
  *         assert self._last is not None, u"missing toplevel element"
  *         return self._last             # <<<<<<<<<<<<<<
  * 
@@ -97330,7 +97752,6 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_2close(struct __pyx_obj_4lx
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
   __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_1);
   __Pyx_AddTraceback("lxml.etree.TreeBuilder.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = NULL;
   __pyx_L0:;
@@ -97351,7 +97772,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_5data(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":382
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":418
  *         return self._last
  * 
  *     def data(self, data):             # <<<<<<<<<<<<<<
@@ -97368,14 +97789,14 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_4data(struct __pyx_obj_4lxm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("data", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":388
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":424
  *         8-bit string containing ASCII text, or a Unicode string.
  *         """
  *         self._handleSaxData(data)             # <<<<<<<<<<<<<<
  * 
  *     def start(self, tag, attrs, nsmap=None):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handleSaxData(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_data); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_11TreeBuilder__handleSaxData(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_data); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -97405,7 +97826,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_7start(PyObject *__pyx_v_se
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,&__pyx_n_s__attrs,&__pyx_n_s__nsmap,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":390
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":426
  *         self._handleSaxData(data)
  * 
  *     def start(self, tag, attrs, nsmap=None):             # <<<<<<<<<<<<<<
@@ -97431,7 +97852,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_7start(PyObject *__pyx_v_se
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__attrs)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("start", 0, 2, 3, 1); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("start", 0, 2, 3, 1); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (kw_args > 0) {
@@ -97440,7 +97861,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_7start(PyObject *__pyx_v_se
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "start") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -97457,7 +97878,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_7start(PyObject *__pyx_v_se
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("start", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("start", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.TreeBuilder.start", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -97480,7 +97901,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_6start(struct __pyx_obj_4lx
   __Pyx_RefNannySetupContext("start", 0);
   __Pyx_INCREF(__pyx_v_nsmap);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":395
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":431
  *         Opens a new element.
  *         """
  *         if nsmap is None:             # <<<<<<<<<<<<<<
@@ -97491,7 +97912,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_6start(struct __pyx_obj_4lx
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":396
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":432
  *         """
  *         if nsmap is None:
  *             nsmap = EMPTY_READ_ONLY_DICT             # <<<<<<<<<<<<<<
@@ -97499,13 +97920,12 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_6start(struct __pyx_obj_4lx
  * 
  */
     __Pyx_INCREF(__pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT);
-    __Pyx_DECREF(__pyx_v_nsmap);
-    __pyx_v_nsmap = __pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT;
+    __Pyx_DECREF_SET(__pyx_v_nsmap, __pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":397
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":433
  *         if nsmap is None:
  *             nsmap = EMPTY_READ_ONLY_DICT
  *         return self._handleSaxStart(tag, attrs, nsmap)             # <<<<<<<<<<<<<<
@@ -97513,7 +97933,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_6start(struct __pyx_obj_4lx
  *     def end(self, tag):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handleSaxStart(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_tag, __pyx_v_attrs, __pyx_v_nsmap); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_tag, __pyx_v_attrs, __pyx_v_nsmap); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_r = __pyx_t_3;
   __pyx_t_3 = 0;
@@ -97544,7 +97964,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_9end(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":399
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":435
  *         return self._handleSaxStart(tag, attrs, nsmap)
  * 
  *     def end(self, tag):             # <<<<<<<<<<<<<<
@@ -97564,19 +97984,19 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_8end(struct __pyx_obj_4lxml
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("end", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":404
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":440
  *         Closes the current element.
  *         """
  *         element = self._handleSaxEnd(tag)             # <<<<<<<<<<<<<<
  *         assert self._last.tag == tag,\
  *                u"end tag mismatch (expected %s, got %s)" % (
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handleSaxEnd(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_11TreeBuilder__handleSaxEnd(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_element = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":405
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":441
  *         """
  *         element = self._handleSaxEnd(tag)
  *         assert self._last.tag == tag,\             # <<<<<<<<<<<<<<
@@ -97584,24 +98004,24 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_8end(struct __pyx_obj_4lxml
  *                    self._last.tag, tag)
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_v_tag, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   if (unlikely(!__pyx_t_3)) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":407
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":443
  *         assert self._last.tag == tag,\
  *                u"end tag mismatch (expected %s, got %s)" % (
  *                    self._last.tag, tag)             # <<<<<<<<<<<<<<
  *         return element
  * 
  */
-    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_last), __pyx_n_s__tag); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
     __Pyx_GIVEREF(__pyx_t_2);
@@ -97609,16 +98029,16 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_8end(struct __pyx_obj_4lxml
     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
     __pyx_t_2 = 0;
-    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_225), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_228), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
     PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_2));
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":408
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":444
  *                u"end tag mismatch (expected %s, got %s)" % (
  *                    self._last.tag, tag)
  *         return element             # <<<<<<<<<<<<<<
@@ -97676,11 +98096,11 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_11pi(PyObject *__pyx_v_self
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__data)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("pi", 1, 2, 2, 1); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("pi", 1, 2, 2, 1); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pi") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pi") < 0)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -97693,7 +98113,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_11pi(PyObject *__pyx_v_self
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("pi", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("pi", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[12]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.TreeBuilder.pi", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -97704,7 +98124,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_11pi(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":410
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":446
  *         return element
  * 
  *     def pi(self, target, data):             # <<<<<<<<<<<<<<
@@ -97721,7 +98141,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_10pi(struct __pyx_obj_4lxml
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("pi", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":413
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":449
  *         u"""pi(self, target, data)
  *         """
  *         return self._handleSaxPi(target, data)             # <<<<<<<<<<<<<<
@@ -97729,7 +98149,7 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_10pi(struct __pyx_obj_4lxml
  *     def comment(self, comment):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handleSaxPi(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_target, __pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 413; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_11TreeBuilder__handleSaxPi(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_target, __pyx_v_data); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -97759,7 +98179,7 @@ static PyObject *__pyx_pw_4lxml_5etree_11TreeBuilder_13comment(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":415
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":451
  *         return self._handleSaxPi(target, data)
  * 
  *     def comment(self, comment):             # <<<<<<<<<<<<<<
@@ -97776,15 +98196,13 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_12comment(struct __pyx_obj_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("comment", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":418
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":454
  *         u"""comment(self, comment)
  *         """
  *         return self._handleSaxComment(comment)             # <<<<<<<<<<<<<<
- * 
- *     # internal SAX event handlers
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handleSaxComment(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 418; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_11TreeBuilder__handleSaxComment(((struct __pyx_obj_4lxml_5etree__SaxParserTarget *)__pyx_v_self), __pyx_v_comment); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -97802,604 +98220,6 @@ static PyObject *__pyx_pf_4lxml_5etree_11TreeBuilder_12comment(struct __pyx_obj_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":422
- *     # internal SAX event handlers
- * 
- *     cdef _handleSaxStart(self, tag, attrib, nsmap):             # <<<<<<<<<<<<<<
- *         self._flush()
- *         if self._factory is not None:
- */
-
-static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxStart(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, PyObject *__pyx_v_tag, PyObject *__pyx_v_attrib, PyObject *__pyx_v_nsmap) {
-  PyObject *__pyx_r = NULL;
-  __Pyx_RefNannyDeclarations
-  int __pyx_t_1;
-  int __pyx_t_2;
-  int __pyx_t_3;
-  PyObject *__pyx_t_4 = NULL;
-  PyObject *__pyx_t_5 = NULL;
-  int __pyx_t_6;
-  int __pyx_lineno = 0;
-  const char *__pyx_filename = NULL;
-  int __pyx_clineno = 0;
-  __Pyx_RefNannySetupContext("_handleSaxStart", 0);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":423
- * 
- *     cdef _handleSaxStart(self, tag, attrib, nsmap):
- *         self._flush()             # <<<<<<<<<<<<<<
- *         if self._factory is not None:
- *             self._last = self._factory(tag, attrib)
- */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->_flush(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 423; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":424
- *     cdef _handleSaxStart(self, tag, attrib, nsmap):
- *         self._flush()
- *         if self._factory is not None:             # <<<<<<<<<<<<<<
- *             self._last = self._factory(tag, attrib)
- *             if python.PyList_GET_SIZE(self._element_stack) > 0:
- */
-  __pyx_t_2 = (__pyx_v_self->_factory != Py_None);
-  __pyx_t_3 = (__pyx_t_2 != 0);
-  if (__pyx_t_3) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":425
- *         self._flush()
- *         if self._factory is not None:
- *             self._last = self._factory(tag, attrib)             # <<<<<<<<<<<<<<
- *             if python.PyList_GET_SIZE(self._element_stack) > 0:
- *                 _appendChild(self._element_stack[-1], self._last)
- */
-    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_INCREF(__pyx_v_tag);
-    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_tag);
-    __Pyx_GIVEREF(__pyx_v_tag);
-    __Pyx_INCREF(__pyx_v_attrib);
-    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_attrib);
-    __Pyx_GIVEREF(__pyx_v_attrib);
-    __pyx_t_5 = PyObject_Call(__pyx_v_self->_factory, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GIVEREF(__pyx_t_5);
-    __Pyx_GOTREF(__pyx_v_self->_last);
-    __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_5);
-    __pyx_t_5 = 0;
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":426
- *         if self._factory is not None:
- *             self._last = self._factory(tag, attrib)
- *             if python.PyList_GET_SIZE(self._element_stack) > 0:             # <<<<<<<<<<<<<<
- *                 _appendChild(self._element_stack[-1], self._last)
- *         elif python.PyList_GET_SIZE(self._element_stack) > 0:
- */
-    __pyx_t_5 = ((PyObject *)__pyx_v_self->_element_stack);
-    __Pyx_INCREF(__pyx_t_5);
-    __pyx_t_3 = ((PyList_GET_SIZE(__pyx_t_5) > 0) != 0);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    if (__pyx_t_3) {
-
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":427
- *             self._last = self._factory(tag, attrib)
- *             if python.PyList_GET_SIZE(self._element_stack) > 0:
- *                 _appendChild(self._element_stack[-1], self._last)             # <<<<<<<<<<<<<<
- *         elif python.PyList_GET_SIZE(self._element_stack) > 0:
- *             self._last = _makeSubElement(
- */
-      if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
-        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-        {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      }
-      __pyx_t_5 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_5);
-      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_4 = ((PyObject *)__pyx_v_self->_last);
-      __Pyx_INCREF(__pyx_t_4);
-      __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(((struct LxmlElement *)__pyx_t_5), ((struct LxmlElement *)__pyx_t_4)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      goto __pyx_L4;
-    }
-    __pyx_L4:;
-    goto __pyx_L3;
-  }
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":428
- *             if python.PyList_GET_SIZE(self._element_stack) > 0:
- *                 _appendChild(self._element_stack[-1], self._last)
- *         elif python.PyList_GET_SIZE(self._element_stack) > 0:             # <<<<<<<<<<<<<<
- *             self._last = _makeSubElement(
- *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
- */
-  __pyx_t_4 = ((PyObject *)__pyx_v_self->_element_stack);
-  __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_3 = ((PyList_GET_SIZE(__pyx_t_4) > 0) != 0);
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  if (__pyx_t_3) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":430
- *         elif python.PyList_GET_SIZE(self._element_stack) > 0:
- *             self._last = _makeSubElement(
- *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)             # <<<<<<<<<<<<<<
- *         else:
- *             self._last = _makeElement(
- */
-    if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
-      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    }
-    __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__makeSubElement(((struct LxmlElement *)__pyx_t_4), __pyx_v_tag, Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, Py_None)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":429
- *                 _appendChild(self._element_stack[-1], self._last)
- *         elif python.PyList_GET_SIZE(self._element_stack) > 0:
- *             self._last = _makeSubElement(             # <<<<<<<<<<<<<<
- *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
- *         else:
- */
-    __Pyx_GIVEREF(__pyx_t_5);
-    __Pyx_GOTREF(__pyx_v_self->_last);
-    __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_5);
-    __pyx_t_5 = 0;
-    goto __pyx_L3;
-  }
-  /*else*/ {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":433
- *         else:
- *             self._last = _makeElement(
- *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)             # <<<<<<<<<<<<<<
- *         self._element_stack.append(self._last)
- *         self._in_tail = 0
- */
-    __pyx_t_5 = ((PyObject *)__pyx_v_self->_parser);
-    __Pyx_INCREF(__pyx_t_5);
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(__pyx_v_tag, NULL, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_5), Py_None, Py_None, __pyx_v_attrib, __pyx_v_nsmap, Py_None)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":432
- *                 self._element_stack[-1], tag, None, None, attrib, nsmap, None)
- *         else:
- *             self._last = _makeElement(             # <<<<<<<<<<<<<<
- *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
- *         self._element_stack.append(self._last)
- */
-    __Pyx_GIVEREF(__pyx_t_4);
-    __Pyx_GOTREF(__pyx_v_self->_last);
-    __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-    __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
-    __pyx_t_4 = 0;
-  }
-  __pyx_L3:;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":434
- *             self._last = _makeElement(
- *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
- *         self._element_stack.append(self._last)             # <<<<<<<<<<<<<<
- *         self._in_tail = 0
- *         return self._last
- */
-  if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
-    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
-    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  }
-  __pyx_t_4 = ((PyObject *)__pyx_v_self->_last);
-  __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_6 = __Pyx_PyList_Append(__pyx_v_self->_element_stack, __pyx_t_4); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":435
- *                 tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
- *         self._element_stack.append(self._last)
- *         self._in_tail = 0             # <<<<<<<<<<<<<<
- *         return self._last
- * 
- */
-  __pyx_v_self->_in_tail = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":436
- *         self._element_stack.append(self._last)
- *         self._in_tail = 0
- *         return self._last             # <<<<<<<<<<<<<<
- * 
- *     cdef _handleSaxEnd(self, tag):
- */
-  __Pyx_XDECREF(__pyx_r);
-  __Pyx_INCREF(((PyObject *)__pyx_v_self->_last));
-  __pyx_r = ((PyObject *)__pyx_v_self->_last);
-  goto __pyx_L0;
-
-  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_XDECREF(__pyx_t_5);
-  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxStart", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = 0;
-  __pyx_L0:;
-  __Pyx_XGIVEREF(__pyx_r);
-  __Pyx_RefNannyFinishContext();
-  return __pyx_r;
-}
-
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":438
- *         return self._last
- * 
- *     cdef _handleSaxEnd(self, tag):             # <<<<<<<<<<<<<<
- *         self._flush()
- *         self._last = self._element_stack_pop()
- */
-
-static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxEnd(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_tag) {
-  PyObject *__pyx_r = NULL;
-  __Pyx_RefNannyDeclarations
-  int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_lineno = 0;
-  const char *__pyx_filename = NULL;
-  int __pyx_clineno = 0;
-  __Pyx_RefNannySetupContext("_handleSaxEnd", 0);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":439
- * 
- *     cdef _handleSaxEnd(self, tag):
- *         self._flush()             # <<<<<<<<<<<<<<
- *         self._last = self._element_stack_pop()
- *         self._in_tail = 1
- */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->_flush(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":440
- *     cdef _handleSaxEnd(self, tag):
- *         self._flush()
- *         self._last = self._element_stack_pop()             # <<<<<<<<<<<<<<
- *         self._in_tail = 1
- *         return self._last
- */
-  __pyx_t_2 = PyObject_Call(__pyx_v_self->_element_stack_pop, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GIVEREF(__pyx_t_2);
-  __Pyx_GOTREF(__pyx_v_self->_last);
-  __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-  __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_2);
-  __pyx_t_2 = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":441
- *         self._flush()
- *         self._last = self._element_stack_pop()
- *         self._in_tail = 1             # <<<<<<<<<<<<<<
- *         return self._last
- * 
- */
-  __pyx_v_self->_in_tail = 1;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":442
- *         self._last = self._element_stack_pop()
- *         self._in_tail = 1
- *         return self._last             # <<<<<<<<<<<<<<
- * 
- *     cdef int _handleSaxData(self, data) except -1:
- */
-  __Pyx_XDECREF(__pyx_r);
-  __Pyx_INCREF(((PyObject *)__pyx_v_self->_last));
-  __pyx_r = ((PyObject *)__pyx_v_self->_last);
-  goto __pyx_L0;
-
-  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxEnd", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = 0;
-  __pyx_L0:;
-  __Pyx_XGIVEREF(__pyx_r);
-  __Pyx_RefNannyFinishContext();
-  return __pyx_r;
-}
-
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":444
- *         return self._last
- * 
- *     cdef int _handleSaxData(self, data) except -1:             # <<<<<<<<<<<<<<
- *         self._data.append(data)
- * 
- */
-
-static int __pyx_f_4lxml_5etree_11TreeBuilder__handleSaxData(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, PyObject *__pyx_v_data) {
-  int __pyx_r;
-  __Pyx_RefNannyDeclarations
-  int __pyx_t_1;
-  int __pyx_lineno = 0;
-  const char *__pyx_filename = NULL;
-  int __pyx_clineno = 0;
-  __Pyx_RefNannySetupContext("_handleSaxData", 0);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":445
- * 
- *     cdef int _handleSaxData(self, data) except -1:
- *         self._data.append(data)             # <<<<<<<<<<<<<<
- * 
- *     cdef _handleSaxPi(self, target, data):
- */
-  if (unlikely(((PyObject *)__pyx_v_self->_data) == Py_None)) {
-    PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
-    {__pyx_filename = __pyx_f[12]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  }
-  __pyx_t_1 = __Pyx_PyList_Append(__pyx_v_self->_data, __pyx_v_data); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-
-  __pyx_r = 0;
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxData", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = -1;
-  __pyx_L0:;
-  __Pyx_RefNannyFinishContext();
-  return __pyx_r;
-}
-
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":447
- *         self._data.append(data)
- * 
- *     cdef _handleSaxPi(self, target, data):             # <<<<<<<<<<<<<<
- *         self._flush()
- *         self._last = ProcessingInstruction(target, data)
- */
-
-static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxPi(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, PyObject *__pyx_v_target, PyObject *__pyx_v_data) {
-  PyObject *__pyx_r = NULL;
-  __Pyx_RefNannyDeclarations
-  int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  PyObject *__pyx_t_3 = NULL;
-  PyObject *__pyx_t_4 = NULL;
-  int __pyx_t_5;
-  int __pyx_lineno = 0;
-  const char *__pyx_filename = NULL;
-  int __pyx_clineno = 0;
-  __Pyx_RefNannySetupContext("_handleSaxPi", 0);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":448
- * 
- *     cdef _handleSaxPi(self, target, data):
- *         self._flush()             # <<<<<<<<<<<<<<
- *         self._last = ProcessingInstruction(target, data)
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:
- */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->_flush(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":449
- *     cdef _handleSaxPi(self, target, data):
- *         self._flush()
- *         self._last = ProcessingInstruction(target, data)             # <<<<<<<<<<<<<<
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:
- *             _appendChild(self._element_stack[-1], self._last)
- */
-  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_81); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_INCREF(__pyx_v_target);
-  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_target);
-  __Pyx_GIVEREF(__pyx_v_target);
-  __Pyx_INCREF(__pyx_v_data);
-  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_data);
-  __Pyx_GIVEREF(__pyx_v_data);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GIVEREF(__pyx_t_4);
-  __Pyx_GOTREF(__pyx_v_self->_last);
-  __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-  __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
-  __pyx_t_4 = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":450
- *         self._flush()
- *         self._last = ProcessingInstruction(target, data)
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:             # <<<<<<<<<<<<<<
- *             _appendChild(self._element_stack[-1], self._last)
- *         self._in_tail = 1
- */
-  __pyx_t_4 = ((PyObject *)__pyx_v_self->_element_stack);
-  __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = ((PyList_GET_SIZE(__pyx_t_4) > 0) != 0);
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  if (__pyx_t_5) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":451
- *         self._last = ProcessingInstruction(target, data)
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:
- *             _appendChild(self._element_stack[-1], self._last)             # <<<<<<<<<<<<<<
- *         self._in_tail = 1
- *         return self._last
- */
-    if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
-      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    }
-    __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(((struct LxmlElement *)__pyx_t_4), ((struct LxmlElement *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 451; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    goto __pyx_L3;
-  }
-  __pyx_L3:;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":452
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:
- *             _appendChild(self._element_stack[-1], self._last)
- *         self._in_tail = 1             # <<<<<<<<<<<<<<
- *         return self._last
- * 
- */
-  __pyx_v_self->_in_tail = 1;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":453
- *             _appendChild(self._element_stack[-1], self._last)
- *         self._in_tail = 1
- *         return self._last             # <<<<<<<<<<<<<<
- * 
- *     cdef _handleSaxComment(self, comment):
- */
-  __Pyx_XDECREF(__pyx_r);
-  __Pyx_INCREF(((PyObject *)__pyx_v_self->_last));
-  __pyx_r = ((PyObject *)__pyx_v_self->_last);
-  goto __pyx_L0;
-
-  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxPi", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = 0;
-  __pyx_L0:;
-  __Pyx_XGIVEREF(__pyx_r);
-  __Pyx_RefNannyFinishContext();
-  return __pyx_r;
-}
-
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":455
- *         return self._last
- * 
- *     cdef _handleSaxComment(self, comment):             # <<<<<<<<<<<<<<
- *         self._flush()
- *         self._last = Comment(comment)
- */
-
-static PyObject *__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxComment(struct __pyx_obj_4lxml_5etree_TreeBuilder *__pyx_v_self, PyObject *__pyx_v_comment) {
-  PyObject *__pyx_r = NULL;
-  __Pyx_RefNannyDeclarations
-  int __pyx_t_1;
-  PyObject *__pyx_t_2 = NULL;
-  PyObject *__pyx_t_3 = NULL;
-  PyObject *__pyx_t_4 = NULL;
-  int __pyx_t_5;
-  int __pyx_lineno = 0;
-  const char *__pyx_filename = NULL;
-  int __pyx_clineno = 0;
-  __Pyx_RefNannySetupContext("_handleSaxComment", 0);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":456
- * 
- *     cdef _handleSaxComment(self, comment):
- *         self._flush()             # <<<<<<<<<<<<<<
- *         self._last = Comment(comment)
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:
- */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder *)__pyx_v_self->__pyx_base.__pyx_vtab)->_flush(__pyx_v_self); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":457
- *     cdef _handleSaxComment(self, comment):
- *         self._flush()
- *         self._last = Comment(comment)             # <<<<<<<<<<<<<<
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:
- *             _appendChild(self._element_stack[-1], self._last)
- */
-  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__Comment); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_INCREF(__pyx_v_comment);
-  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_comment);
-  __Pyx_GIVEREF(__pyx_v_comment);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GIVEREF(__pyx_t_4);
-  __Pyx_GOTREF(__pyx_v_self->_last);
-  __Pyx_DECREF(((PyObject *)__pyx_v_self->_last));
-  __pyx_v_self->_last = ((struct LxmlElement *)__pyx_t_4);
-  __pyx_t_4 = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":458
- *         self._flush()
- *         self._last = Comment(comment)
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:             # <<<<<<<<<<<<<<
- *             _appendChild(self._element_stack[-1], self._last)
- *         self._in_tail = 1
- */
-  __pyx_t_4 = ((PyObject *)__pyx_v_self->_element_stack);
-  __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = ((PyList_GET_SIZE(__pyx_t_4) > 0) != 0);
-  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  if (__pyx_t_5) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":459
- *         self._last = Comment(comment)
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:
- *             _appendChild(self._element_stack[-1], self._last)             # <<<<<<<<<<<<<<
- *         self._in_tail = 1
- *         return self._last
- */
-    if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
-      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[12]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    }
-    __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_4);
-    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = ((PyObject *)__pyx_v_self->_last);
-    __Pyx_INCREF(__pyx_t_3);
-    __pyx_t_1 = __pyx_f_4lxml_5etree__appendChild(((struct LxmlElement *)__pyx_t_4), ((struct LxmlElement *)__pyx_t_3)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    goto __pyx_L3;
-  }
-  __pyx_L3:;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":460
- *         if python.PyList_GET_SIZE(self._element_stack) > 0:
- *             _appendChild(self._element_stack[-1], self._last)
- *         self._in_tail = 1             # <<<<<<<<<<<<<<
- *         return self._last
- */
-  __pyx_v_self->_in_tail = 1;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/saxparser.pxi":461
- *             _appendChild(self._element_stack[-1], self._last)
- *         self._in_tail = 1
- *         return self._last             # <<<<<<<<<<<<<<
- */
-  __Pyx_XDECREF(__pyx_r);
-  __Pyx_INCREF(((PyObject *)__pyx_v_self->_last));
-  __pyx_r = ((PyObject *)__pyx_v_self->_last);
-  goto __pyx_L0;
-
-  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
-  goto __pyx_L0;
-  __pyx_L1_error:;
-  __Pyx_XDECREF(__pyx_t_2);
-  __Pyx_XDECREF(__pyx_t_3);
-  __Pyx_XDECREF(__pyx_t_4);
-  __Pyx_AddTraceback("lxml.etree.TreeBuilder._handleSaxComment", __pyx_clineno, __pyx_lineno, __pyx_filename);
-  __pyx_r = 0;
-  __pyx_L0:;
-  __Pyx_XGIVEREF(__pyx_r);
-  __Pyx_RefNannyFinishContext();
-  return __pyx_r;
-}
-
 /* Python wrapper */
 static PyObject *__pyx_pw_4lxml_5etree_19_TargetParserResult_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
 static PyMethodDef __pyx_mdef_4lxml_5etree_19_TargetParserResult_1__init__ = {__Pyx_NAMESTR("__init__"), (PyCFunction)__pyx_pw_4lxml_5etree_19_TargetParserResult_1__init__, METH_VARARGS|METH_KEYWORDS, __Pyx_DOCSTR(0)};
@@ -99656,8 +99476,7 @@ static int __pyx_f_4lxml_5etree_20_TargetParserContext__setTarget(struct __pyx_o
     __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__PythonSaxParserTarget)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_v_target);
-    __pyx_v_target = __pyx_t_5;
+    __Pyx_DECREF_SET(__pyx_v_target, __pyx_t_5);
     __pyx_t_5 = 0;
     goto __pyx_L3;
   }
@@ -100508,7 +100327,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_20_TargetParserContext__handleParseResultDoc
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":12
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":15
  *     OUTPUT_METHOD_TEXT
  * 
  * cdef int _findOutputMethod(method) except -1:             # <<<<<<<<<<<<<<
@@ -100529,7 +100348,7 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
   __Pyx_RefNannySetupContext("_findOutputMethod", 0);
   __Pyx_INCREF(__pyx_v_method);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":13
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":16
  * 
  * cdef int _findOutputMethod(method) except -1:
  *     if method is None:             # <<<<<<<<<<<<<<
@@ -100540,7 +100359,7 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":14
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":17
  * cdef int _findOutputMethod(method) except -1:
  *     if method is None:
  *         return OUTPUT_METHOD_XML             # <<<<<<<<<<<<<<
@@ -100553,35 +100372,34 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":15
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":18
  *     if method is None:
  *         return OUTPUT_METHOD_XML
  *     method = method.lower()             # <<<<<<<<<<<<<<
  *     if method == "xml":
  *         return OUTPUT_METHOD_XML
  */
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_method, __pyx_n_s__lower); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_method, __pyx_n_s__lower); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-  __Pyx_DECREF(__pyx_v_method);
-  __pyx_v_method = __pyx_t_4;
+  __Pyx_DECREF_SET(__pyx_v_method, __pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":16
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":19
  *         return OUTPUT_METHOD_XML
  *     method = method.lower()
  *     if method == "xml":             # <<<<<<<<<<<<<<
  *         return OUTPUT_METHOD_XML
  *     if method == "html":
  */
-  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__xml), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 16; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__xml), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 19; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":17
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":20
  *     method = method.lower()
  *     if method == "xml":
  *         return OUTPUT_METHOD_XML             # <<<<<<<<<<<<<<
@@ -100594,19 +100412,19 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":18
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":21
  *     if method == "xml":
  *         return OUTPUT_METHOD_XML
  *     if method == "html":             # <<<<<<<<<<<<<<
  *         return OUTPUT_METHOD_HTML
  *     if method == "text":
  */
-  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__html), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__html), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":19
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":22
  *         return OUTPUT_METHOD_XML
  *     if method == "html":
  *         return OUTPUT_METHOD_HTML             # <<<<<<<<<<<<<<
@@ -100619,19 +100437,19 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":20
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":23
  *     if method == "html":
  *         return OUTPUT_METHOD_HTML
  *     if method == "text":             # <<<<<<<<<<<<<<
  *         return OUTPUT_METHOD_TEXT
  *     raise ValueError(u"unknown output method %r" % method)
  */
-  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__text), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_RichCompare(__pyx_v_method, ((PyObject *)__pyx_n_s__text), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":21
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":24
  *         return OUTPUT_METHOD_HTML
  *     if method == "text":
  *         return OUTPUT_METHOD_TEXT             # <<<<<<<<<<<<<<
@@ -100644,26 +100462,26 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":22
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":25
  *     if method == "text":
  *         return OUTPUT_METHOD_TEXT
  *     raise ValueError(u"unknown output method %r" % method)             # <<<<<<<<<<<<<<
  * 
  * cdef _textToString(xmlNode* c_node, encoding, bint with_tail):
  */
-  __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_226), __pyx_v_method); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_229), __pyx_v_method); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_Raise(__pyx_t_4, 0, 0, 0);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  {__pyx_filename = __pyx_f[6]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  {__pyx_filename = __pyx_f[6]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = 0;
   goto __pyx_L0;
@@ -100678,7 +100496,7 @@ static int __pyx_f_4lxml_5etree__findOutputMethod(PyObject *__pyx_v_method) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":24
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":27
  *     raise ValueError(u"unknown output method %r" % method)
  * 
  * cdef _textToString(xmlNode* c_node, encoding, bint with_tail):             # <<<<<<<<<<<<<<
@@ -100707,7 +100525,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
   __Pyx_RefNannySetupContext("_textToString", 0);
   __Pyx_INCREF(__pyx_v_encoding);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":31
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":34
  *     cdef int error_result
  * 
  *     c_buffer = tree.xmlBufferCreate()             # <<<<<<<<<<<<<<
@@ -100716,7 +100534,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
   __pyx_v_c_buffer = xmlBufferCreate();
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":32
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":35
  * 
  *     c_buffer = tree.xmlBufferCreate()
  *     if c_buffer is NULL:             # <<<<<<<<<<<<<<
@@ -100726,19 +100544,19 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
   __pyx_t_1 = ((__pyx_v_c_buffer == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":33
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":36
  *     c_buffer = tree.xmlBufferCreate()
  *     if c_buffer is NULL:
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  * 
  *     with nogil:
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 33; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 36; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":35
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":38
  *         raise MemoryError()
  * 
  *     with nogil:             # <<<<<<<<<<<<<<
@@ -100752,7 +100570,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
       #endif
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":36
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":39
  * 
  *     with nogil:
  *         error_result = tree.xmlNodeBufGetContent(c_buffer, c_node)             # <<<<<<<<<<<<<<
@@ -100761,7 +100579,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
         __pyx_v_error_result = xmlNodeBufGetContent(__pyx_v_c_buffer, __pyx_v_c_node);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":37
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":40
  *     with nogil:
  *         error_result = tree.xmlNodeBufGetContent(c_buffer, c_node)
  *         if with_tail:             # <<<<<<<<<<<<<<
@@ -100771,7 +100589,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
         __pyx_t_1 = (__pyx_v_with_tail != 0);
         if (__pyx_t_1) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":38
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":41
  *         error_result = tree.xmlNodeBufGetContent(c_buffer, c_node)
  *         if with_tail:
  *             c_text_node = _textNodeOrSkip(c_node.next)             # <<<<<<<<<<<<<<
@@ -100780,7 +100598,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
           __pyx_v_c_text_node = __pyx_f_4lxml_5etree__textNodeOrSkip(__pyx_v_c_node->next);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":39
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":42
  *         if with_tail:
  *             c_text_node = _textNodeOrSkip(c_node.next)
  *             while c_text_node is not NULL:             # <<<<<<<<<<<<<<
@@ -100791,7 +100609,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
             __pyx_t_1 = ((__pyx_v_c_text_node != NULL) != 0);
             if (!__pyx_t_1) break;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":40
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":43
  *             c_text_node = _textNodeOrSkip(c_node.next)
  *             while c_text_node is not NULL:
  *                 tree.xmlBufferWriteChar(c_buffer, <const_char*>c_text_node.content)             # <<<<<<<<<<<<<<
@@ -100800,7 +100618,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
             xmlBufferWriteChar(__pyx_v_c_buffer, ((const char *)__pyx_v_c_text_node->content));
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":41
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":44
  *             while c_text_node is not NULL:
  *                 tree.xmlBufferWriteChar(c_buffer, <const_char*>c_text_node.content)
  *                 c_text_node = _textNodeOrSkip(c_text_node.next)             # <<<<<<<<<<<<<<
@@ -100813,7 +100631,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
         }
         __pyx_L7:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":42
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":45
  *                 tree.xmlBufferWriteChar(c_buffer, <const_char*>c_text_node.content)
  *                 c_text_node = _textNodeOrSkip(c_text_node.next)
  *         c_text = tree.xmlBufferContent(c_buffer)             # <<<<<<<<<<<<<<
@@ -100823,7 +100641,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
         __pyx_v_c_text = xmlBufferContent(__pyx_v_c_buffer);
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":35
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":38
  *         raise MemoryError()
  * 
  *     with nogil:             # <<<<<<<<<<<<<<
@@ -100837,7 +100655,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
       }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":44
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":47
  *         c_text = tree.xmlBufferContent(c_buffer)
  * 
  *     if error_result < 0 or c_text is NULL:             # <<<<<<<<<<<<<<
@@ -100853,7 +100671,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":45
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":48
  * 
  *     if error_result < 0 or c_text is NULL:
  *         tree.xmlBufferFree(c_buffer)             # <<<<<<<<<<<<<<
@@ -100862,23 +100680,23 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
     xmlBufferFree(__pyx_v_c_buffer);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":46
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":49
  *     if error_result < 0 or c_text is NULL:
  *         tree.xmlBufferFree(c_buffer)
  *         raise SerialisationError, u"Error during serialisation (out of memory?)"             # <<<<<<<<<<<<<<
  * 
  *     try:
  */
-    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__SerialisationError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__SerialisationError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_227), 0, 0);
+    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_230), 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L10;
   }
   __pyx_L10:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":48
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":51
  *         raise SerialisationError, u"Error during serialisation (out of memory?)"
  * 
  *     try:             # <<<<<<<<<<<<<<
@@ -100887,7 +100705,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":49
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":52
  * 
  *     try:
  *         needs_conversion = 0             # <<<<<<<<<<<<<<
@@ -100896,7 +100714,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
     __pyx_v_needs_conversion = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":50
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":53
  *     try:
  *         needs_conversion = 0
  *         if encoding is _unicode:             # <<<<<<<<<<<<<<
@@ -100907,7 +100725,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
     __pyx_t_1 = (__pyx_t_3 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":51
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":54
  *         needs_conversion = 0
  *         if encoding is _unicode:
  *             needs_conversion = 1             # <<<<<<<<<<<<<<
@@ -100918,7 +100736,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
       goto __pyx_L14;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":52
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":55
  *         if encoding is _unicode:
  *             needs_conversion = 1
  *         elif encoding is not None:             # <<<<<<<<<<<<<<
@@ -100929,23 +100747,22 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
     __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":54
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":57
  *         elif encoding is not None:
  *             # Python prefers lower case encoding names
  *             encoding = encoding.lower()             # <<<<<<<<<<<<<<
  *             if encoding not in (u'utf8', u'utf-8'):
  *                 if encoding == u'ascii':
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__lower); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L12;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__lower); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L12;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L12;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 57; __pyx_clineno = __LINE__; goto __pyx_L12;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __Pyx_DECREF(__pyx_v_encoding);
-      __pyx_v_encoding = __pyx_t_5;
+      __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_5);
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":55
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":58
  *             # Python prefers lower case encoding names
  *             encoding = encoding.lower()
  *             if encoding not in (u'utf8', u'utf-8'):             # <<<<<<<<<<<<<<
@@ -100954,12 +100771,12 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
  */
       __Pyx_INCREF(__pyx_v_encoding);
       __pyx_t_5 = __pyx_v_encoding;
-      __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_n_u__utf8), Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L12;}
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L12;}
+      __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_n_u__utf8), Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L12;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L12;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       if (((int)__pyx_t_3)) {
-        __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_kp_u_228), Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L12;}
-        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 55; __pyx_clineno = __LINE__; goto __pyx_L12;}
+        __pyx_t_4 = PyObject_RichCompare(__pyx_t_5, ((PyObject *)__pyx_kp_u_231), Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L12;}
+        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L12;}
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
         __pyx_t_2 = ((int)__pyx_t_1);
       } else {
@@ -100969,19 +100786,19 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
       __pyx_t_3 = (__pyx_t_2 != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":56
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":59
  *             encoding = encoding.lower()
  *             if encoding not in (u'utf8', u'utf-8'):
  *                 if encoding == u'ascii':             # <<<<<<<<<<<<<<
  *                     if isutf8(c_text):
  *                         # will raise a decode error below
  */
-        __pyx_t_5 = PyObject_RichCompare(__pyx_v_encoding, ((PyObject *)__pyx_n_u__ascii), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L12;}
-        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L12;}
+        __pyx_t_5 = PyObject_RichCompare(__pyx_v_encoding, ((PyObject *)__pyx_n_u__ascii), Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L12;}
+        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 59; __pyx_clineno = __LINE__; goto __pyx_L12;}
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":57
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":60
  *             if encoding not in (u'utf8', u'utf-8'):
  *                 if encoding == u'ascii':
  *                     if isutf8(c_text):             # <<<<<<<<<<<<<<
@@ -100991,7 +100808,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
           __pyx_t_3 = (__pyx_f_4lxml_5etree_isutf8(__pyx_v_c_text) != 0);
           if (__pyx_t_3) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":59
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":62
  *                     if isutf8(c_text):
  *                         # will raise a decode error below
  *                         needs_conversion = 1             # <<<<<<<<<<<<<<
@@ -101006,7 +100823,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":61
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":64
  *                         needs_conversion = 1
  *                 else:
  *                     needs_conversion = 1             # <<<<<<<<<<<<<<
@@ -101023,7 +100840,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
     }
     __pyx_L14:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":63
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":66
  *                     needs_conversion = 1
  * 
  *         if needs_conversion:             # <<<<<<<<<<<<<<
@@ -101033,19 +100850,19 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
     __pyx_t_3 = (__pyx_v_needs_conversion != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":65
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":68
  *         if needs_conversion:
  *             text = python.PyUnicode_DecodeUTF8(
  *                 <const_char*>c_text, tree.xmlBufferLength(c_buffer), 'strict')             # <<<<<<<<<<<<<<
  *             if encoding is not _unicode:
  *                 encoding = _utf8(encoding)
  */
-      __pyx_t_5 = ((PyObject *)PyUnicode_DecodeUTF8(((const char *)__pyx_v_c_text), xmlBufferLength(__pyx_v_c_buffer), __pyx_k__strict)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L12;}
+      __pyx_t_5 = ((PyObject *)PyUnicode_DecodeUTF8(((const char *)__pyx_v_c_text), xmlBufferLength(__pyx_v_c_buffer), __pyx_k__strict)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L12;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_v_text = __pyx_t_5;
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":66
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":69
  *             text = python.PyUnicode_DecodeUTF8(
  *                 <const_char*>c_text, tree.xmlBufferLength(c_buffer), 'strict')
  *             if encoding is not _unicode:             # <<<<<<<<<<<<<<
@@ -101056,31 +100873,29 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
       __pyx_t_2 = (__pyx_t_3 != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":67
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":70
  *                 <const_char*>c_text, tree.xmlBufferLength(c_buffer), 'strict')
  *             if encoding is not _unicode:
  *                 encoding = _utf8(encoding)             # <<<<<<<<<<<<<<
  *                 text = python.PyUnicode_AsEncodedString(
  *                     text, encoding, 'strict')
  */
-        __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L12;}
+        __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L12;}
         __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_DECREF(__pyx_v_encoding);
-        __pyx_v_encoding = __pyx_t_5;
+        __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_5);
         __pyx_t_5 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":69
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":72
  *                 encoding = _utf8(encoding)
  *                 text = python.PyUnicode_AsEncodedString(
  *                     text, encoding, 'strict')             # <<<<<<<<<<<<<<
  *         else:
  *             text = (<unsigned char*>c_text)[:tree.xmlBufferLength(c_buffer)]
  */
-        __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_encoding); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L12;}
-        __pyx_t_5 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_v_text, __pyx_t_6, __pyx_k__strict)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L12;}
+        __pyx_t_6 = __Pyx_PyObject_AsString(__pyx_v_encoding); if (unlikely((!__pyx_t_6) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L12;}
+        __pyx_t_5 = ((PyObject *)PyUnicode_AsEncodedString(__pyx_v_text, __pyx_t_6, __pyx_k__strict)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L12;}
         __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_DECREF(__pyx_v_text);
-        __pyx_v_text = __pyx_t_5;
+        __Pyx_DECREF_SET(__pyx_v_text, __pyx_t_5);
         __pyx_t_5 = 0;
         goto __pyx_L19;
       }
@@ -101089,14 +100904,14 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":71
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":74
  *                     text, encoding, 'strict')
  *         else:
  *             text = (<unsigned char*>c_text)[:tree.xmlBufferLength(c_buffer)]             # <<<<<<<<<<<<<<
  *     finally:
  *         tree.xmlBufferFree(c_buffer)
  */
-      __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(((const char*)((unsigned char *)__pyx_v_c_text)) + 0, xmlBufferLength(__pyx_v_c_buffer) - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L12;}
+      __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(((const char*)((unsigned char *)__pyx_v_c_text)) + 0, xmlBufferLength(__pyx_v_c_buffer) - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L12;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
       __pyx_v_text = ((PyObject *)__pyx_t_5);
       __pyx_t_5 = 0;
@@ -101104,7 +100919,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
     __pyx_L18:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":73
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":76
  *             text = (<unsigned char*>c_text)[:tree.xmlBufferLength(c_buffer)]
  *     finally:
  *         tree.xmlBufferFree(c_buffer)             # <<<<<<<<<<<<<<
@@ -101139,7 +100954,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":74
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":77
  *     finally:
  *         tree.xmlBufferFree(c_buffer)
  *     return text             # <<<<<<<<<<<<<<
@@ -101166,7 +100981,7 @@ static PyObject *__pyx_f_4lxml_5etree__textToString(xmlNode *__pyx_v_c_node, PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":77
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":80
  * 
  * 
  * cdef _tostring(_Element element, encoding, doctype, method,             # <<<<<<<<<<<<<<
@@ -101199,7 +101014,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __Pyx_INCREF(__pyx_v_encoding);
   __Pyx_INCREF(__pyx_v_doctype);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":91
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":94
  *     cdef int c_method
  *     cdef int error_result
  *     if element is None:             # <<<<<<<<<<<<<<
@@ -101210,7 +101025,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":92
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":95
  *     cdef int error_result
  *     if element is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -101225,26 +101040,26 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":93
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":96
  *     if element is None:
  *         return None
  *     _assertValidNode(element)             # <<<<<<<<<<<<<<
  *     c_method = _findOutputMethod(method)
  *     if c_method == OUTPUT_METHOD_TEXT:
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":94
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":97
  *         return None
  *     _assertValidNode(element)
  *     c_method = _findOutputMethod(method)             # <<<<<<<<<<<<<<
  *     if c_method == OUTPUT_METHOD_TEXT:
  *         return _textToString(element._c_node, encoding, with_tail)
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__findOutputMethod(__pyx_v_method); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__findOutputMethod(__pyx_v_method); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_method = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":95
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":98
  *     _assertValidNode(element)
  *     c_method = _findOutputMethod(method)
  *     if c_method == OUTPUT_METHOD_TEXT:             # <<<<<<<<<<<<<<
@@ -101254,7 +101069,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __pyx_t_2 = ((__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_TEXT) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":96
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":99
  *     c_method = _findOutputMethod(method)
  *     if c_method == OUTPUT_METHOD_TEXT:
  *         return _textToString(element._c_node, encoding, with_tail)             # <<<<<<<<<<<<<<
@@ -101262,7 +101077,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  *         c_enc = NULL
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = __pyx_f_4lxml_5etree__textToString(__pyx_v_element->_c_node, __pyx_v_encoding, __pyx_v_with_tail); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__textToString(__pyx_v_element->_c_node, __pyx_v_encoding, __pyx_v_with_tail); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
@@ -101271,7 +101086,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":97
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":100
  *     if c_method == OUTPUT_METHOD_TEXT:
  *         return _textToString(element._c_node, encoding, with_tail)
  *     if encoding is None or encoding is _unicode:             # <<<<<<<<<<<<<<
@@ -101287,7 +101102,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   }
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":98
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":101
  *         return _textToString(element._c_node, encoding, with_tail)
  *     if encoding is None or encoding is _unicode:
  *         c_enc = NULL             # <<<<<<<<<<<<<<
@@ -101299,20 +101114,19 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":100
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":103
  *         c_enc = NULL
  *     else:
  *         encoding = _utf8(encoding)             # <<<<<<<<<<<<<<
  *         c_enc = _cstr(encoding)
  *     if doctype is None:
  */
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":101
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":104
  *     else:
  *         encoding = _utf8(encoding)
  *         c_enc = _cstr(encoding)             # <<<<<<<<<<<<<<
@@ -101323,7 +101137,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":102
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":105
  *         encoding = _utf8(encoding)
  *         c_enc = _cstr(encoding)
  *     if doctype is None:             # <<<<<<<<<<<<<<
@@ -101334,7 +101148,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __pyx_t_2 = (__pyx_t_5 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":103
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":106
  *         c_enc = _cstr(encoding)
  *     if doctype is None:
  *         c_doctype = NULL             # <<<<<<<<<<<<<<
@@ -101346,20 +101160,19 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":105
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":108
  *         c_doctype = NULL
  *     else:
  *         doctype = _utf8(doctype)             # <<<<<<<<<<<<<<
  *         c_doctype = _xcstr(doctype)
  *     # it is necessary to *and* find the encoding handler *and* use
  */
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 108; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_doctype);
-    __pyx_v_doctype = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_doctype, __pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":106
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":109
  *     else:
  *         doctype = _utf8(doctype)
  *         c_doctype = _xcstr(doctype)             # <<<<<<<<<<<<<<
@@ -101370,7 +101183,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":109
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":112
  *     # it is necessary to *and* find the encoding handler *and* use
  *     # encoding during output
  *     enchandler = tree.xmlFindCharEncodingHandler(c_enc)             # <<<<<<<<<<<<<<
@@ -101379,7 +101192,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  */
   __pyx_v_enchandler = xmlFindCharEncodingHandler(__pyx_v_c_enc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":110
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":113
  *     # encoding during output
  *     enchandler = tree.xmlFindCharEncodingHandler(c_enc)
  *     if enchandler is NULL and c_enc is not NULL:             # <<<<<<<<<<<<<<
@@ -101395,7 +101208,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":111
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":114
  *     enchandler = tree.xmlFindCharEncodingHandler(c_enc)
  *     if enchandler is NULL and c_enc is not NULL:
  *         if encoding is not None:             # <<<<<<<<<<<<<<
@@ -101406,42 +101219,41 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":112
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":115
  *     if enchandler is NULL and c_enc is not NULL:
  *         if encoding is not None:
  *             encoding = encoding.decode('UTF-8')             # <<<<<<<<<<<<<<
  *         raise LookupError, u"unknown encoding: '%s'" % encoding
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__decode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_encoding, __pyx_n_s__decode); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_229), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_k_tuple_232), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __Pyx_DECREF(__pyx_v_encoding);
-      __pyx_v_encoding = __pyx_t_6;
+      __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_6);
       __pyx_t_6 = 0;
       goto __pyx_L8;
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":113
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":116
  *         if encoding is not None:
  *             encoding = encoding.decode('UTF-8')
  *         raise LookupError, u"unknown encoding: '%s'" % encoding             # <<<<<<<<<<<<<<
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  *     if c_buffer is NULL:
  */
-    __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_177), __pyx_v_encoding); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_180), __pyx_v_encoding); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_6));
     __Pyx_Raise(__pyx_builtin_LookupError, ((PyObject *)__pyx_t_6), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 113; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L7;
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":114
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":117
  *             encoding = encoding.decode('UTF-8')
  *         raise LookupError, u"unknown encoding: '%s'" % encoding
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)             # <<<<<<<<<<<<<<
@@ -101450,7 +101262,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  */
   __pyx_v_c_buffer = xmlAllocOutputBuffer(__pyx_v_enchandler);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":115
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":118
  *         raise LookupError, u"unknown encoding: '%s'" % encoding
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  *     if c_buffer is NULL:             # <<<<<<<<<<<<<<
@@ -101460,7 +101272,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __pyx_t_2 = ((__pyx_v_c_buffer == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":116
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":119
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  *     if c_buffer is NULL:
  *         tree.xmlCharEncCloseFunc(enchandler)             # <<<<<<<<<<<<<<
@@ -101469,19 +101281,19 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  */
     xmlCharEncCloseFunc(__pyx_v_enchandler);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":117
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":120
  *     if c_buffer is NULL:
  *         tree.xmlCharEncCloseFunc(enchandler)
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  * 
  *     with nogil:
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 120; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L9;
   }
   __pyx_L9:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":119
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":122
  *         raise MemoryError()
  * 
  *     with nogil:             # <<<<<<<<<<<<<<
@@ -101495,7 +101307,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
       #endif
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":122
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":125
  *         _writeNodeToBuffer(c_buffer, element._c_node, c_enc, c_doctype, c_method,
  *                            write_xml_declaration, write_complete_document,
  *                            pretty_print, with_tail, standalone)             # <<<<<<<<<<<<<<
@@ -101504,7 +101316,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  */
         __pyx_f_4lxml_5etree__writeNodeToBuffer(__pyx_v_c_buffer, __pyx_v_element->_c_node, __pyx_v_c_enc, __pyx_v_c_doctype, __pyx_v_c_method, __pyx_v_write_xml_declaration, __pyx_v_write_complete_document, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_standalone);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":123
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":126
  *                            write_xml_declaration, write_complete_document,
  *                            pretty_print, with_tail, standalone)
  *         tree.xmlOutputBufferFlush(c_buffer)             # <<<<<<<<<<<<<<
@@ -101513,7 +101325,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  */
         xmlOutputBufferFlush(__pyx_v_c_buffer);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":124
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":127
  *                            pretty_print, with_tail, standalone)
  *         tree.xmlOutputBufferFlush(c_buffer)
  *         if c_buffer.conv is not NULL:             # <<<<<<<<<<<<<<
@@ -101523,7 +101335,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
         __pyx_t_2 = ((__pyx_v_c_buffer->conv != NULL) != 0);
         if (__pyx_t_2) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":125
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":128
  *         tree.xmlOutputBufferFlush(c_buffer)
  *         if c_buffer.conv is not NULL:
  *             c_result_buffer = c_buffer.conv             # <<<<<<<<<<<<<<
@@ -101536,7 +101348,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":127
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":130
  *             c_result_buffer = c_buffer.conv
  *         else:
  *             c_result_buffer = c_buffer.buffer             # <<<<<<<<<<<<<<
@@ -101549,7 +101361,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
         __pyx_L13:;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":119
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":122
  *         raise MemoryError()
  * 
  *     with nogil:             # <<<<<<<<<<<<<<
@@ -101563,7 +101375,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
       }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":129
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":132
  *             c_result_buffer = c_buffer.buffer
  * 
  *     error_result = c_buffer.error             # <<<<<<<<<<<<<<
@@ -101573,7 +101385,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __pyx_t_3 = __pyx_v_c_buffer->error;
   __pyx_v_error_result = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":130
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":133
  * 
  *     error_result = c_buffer.error
  *     if error_result != xmlerror.XML_ERR_OK:             # <<<<<<<<<<<<<<
@@ -101583,7 +101395,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __pyx_t_2 = ((__pyx_v_error_result != XML_ERR_OK) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":131
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":134
  *     error_result = c_buffer.error
  *     if error_result != xmlerror.XML_ERR_OK:
  *         tree.xmlOutputBufferClose(c_buffer)             # <<<<<<<<<<<<<<
@@ -101592,21 +101404,21 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  */
     xmlOutputBufferClose(__pyx_v_c_buffer);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":132
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":135
  *     if error_result != xmlerror.XML_ERR_OK:
  *         tree.xmlOutputBufferClose(c_buffer)
  *         _raiseSerialisationError(error_result)             # <<<<<<<<<<<<<<
  * 
  *     try:
  */
-    __pyx_t_6 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     goto __pyx_L14;
   }
   __pyx_L14:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":134
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":137
  *         _raiseSerialisationError(error_result)
  * 
  *     try:             # <<<<<<<<<<<<<<
@@ -101615,7 +101427,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":135
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":138
  * 
  *     try:
  *         if encoding is _unicode:             # <<<<<<<<<<<<<<
@@ -101626,14 +101438,14 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":137
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":140
  *         if encoding is _unicode:
  *             result = (<unsigned char*>tree.xmlBufContent(
  *                 c_result_buffer))[:tree.xmlBufUse(c_result_buffer)].decode('UTF-8')             # <<<<<<<<<<<<<<
  *         else:
  *             result = <bytes>(<unsigned char*>tree.xmlBufContent(
  */
-      __pyx_t_6 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)xmlBufContent(__pyx_v_c_result_buffer))), 0, xmlBufUse(__pyx_v_c_result_buffer), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L16;}
+      __pyx_t_6 = ((PyObject *)__Pyx_decode_c_string(((char *)((unsigned char *)xmlBufContent(__pyx_v_c_result_buffer))), 0, xmlBufUse(__pyx_v_c_result_buffer), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L16;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
       __pyx_v_result = ((PyObject *)__pyx_t_6);
       __pyx_t_6 = 0;
@@ -101641,14 +101453,14 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":140
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":143
  *         else:
  *             result = <bytes>(<unsigned char*>tree.xmlBufContent(
  *                 c_result_buffer))[:tree.xmlBufUse(c_result_buffer)]             # <<<<<<<<<<<<<<
  *     finally:
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  */
-      __pyx_t_6 = __Pyx_PyBytes_FromStringAndSize(((const char*)((unsigned char *)xmlBufContent(__pyx_v_c_result_buffer))) + 0, xmlBufUse(__pyx_v_c_result_buffer) - 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L16;}
+      __pyx_t_6 = __Pyx_PyBytes_FromStringAndSize(((const char*)((unsigned char *)xmlBufContent(__pyx_v_c_result_buffer))) + 0, xmlBufUse(__pyx_v_c_result_buffer) - 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L16;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
       __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_6)));
       __pyx_v_result = ((PyObject *)__pyx_t_6);
@@ -101657,7 +101469,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
     __pyx_L18:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":142
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":145
  *                 c_result_buffer))[:tree.xmlBufUse(c_result_buffer)]
  *     finally:
  *         error_result = tree.xmlOutputBufferClose(c_buffer)             # <<<<<<<<<<<<<<
@@ -101692,7 +101504,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":143
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":146
  *     finally:
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  *     if error_result < 0:             # <<<<<<<<<<<<<<
@@ -101702,21 +101514,21 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   __pyx_t_1 = ((__pyx_v_error_result < 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":144
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":147
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  *     if error_result < 0:
  *         _raiseSerialisationError(error_result)             # <<<<<<<<<<<<<<
  *     return result
  * 
  */
-    __pyx_t_6 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     goto __pyx_L20;
   }
   __pyx_L20:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":145
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":148
  *     if error_result < 0:
  *         _raiseSerialisationError(error_result)
  *     return result             # <<<<<<<<<<<<<<
@@ -101744,7 +101556,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostring(struct LxmlElement *__pyx_v_elem
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":147
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":150
  *     return result
  * 
  * cdef bytes _tostringC14N(element_or_tree, bint exclusive, bint with_comments, inclusive_ns_prefixes):             # <<<<<<<<<<<<<<
@@ -101774,7 +101586,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_tostringC14N", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":149
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":152
  * cdef bytes _tostringC14N(element_or_tree, bint exclusive, bint with_comments, inclusive_ns_prefixes):
  *     cdef xmlDoc* c_doc
  *     cdef xmlChar* c_buffer = NULL             # <<<<<<<<<<<<<<
@@ -101783,7 +101595,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  */
   __pyx_v_c_buffer = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":150
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":153
  *     cdef xmlDoc* c_doc
  *     cdef xmlChar* c_buffer = NULL
  *     cdef int byte_count = -1             # <<<<<<<<<<<<<<
@@ -101792,7 +101604,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  */
   __pyx_v_byte_count = -1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":156
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":159
  *     cdef xmlChar **c_inclusive_ns_prefixes
  * 
  *     if isinstance(element_or_tree, _Element):             # <<<<<<<<<<<<<<
@@ -101803,16 +101615,16 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":157
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":160
  * 
  *     if isinstance(element_or_tree, _Element):
  *         _assertValidNode(<_Element>element_or_tree)             # <<<<<<<<<<<<<<
  *         doc = (<_Element>element_or_tree)._doc
  *         c_doc = _plainFakeRootDoc(doc._c_doc, (<_Element>element_or_tree)._c_node, 0)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_element_or_tree)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_element_or_tree)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":158
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":161
  *     if isinstance(element_or_tree, _Element):
  *         _assertValidNode(<_Element>element_or_tree)
  *         doc = (<_Element>element_or_tree)._doc             # <<<<<<<<<<<<<<
@@ -101824,41 +101636,41 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
     __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":159
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":162
  *         _assertValidNode(<_Element>element_or_tree)
  *         doc = (<_Element>element_or_tree)._doc
  *         c_doc = _plainFakeRootDoc(doc._c_doc, (<_Element>element_or_tree)._c_node, 0)             # <<<<<<<<<<<<<<
  *     else:
  *         doc = _documentOrRaise(element_or_tree)
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree__plainFakeRootDoc(__pyx_v_doc->_c_doc, ((struct LxmlElement *)__pyx_v_element_or_tree)->_c_node, 0); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 159; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree__plainFakeRootDoc(__pyx_v_doc->_c_doc, ((struct LxmlElement *)__pyx_v_element_or_tree)->_c_node, 0); if (unlikely(__pyx_t_5 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_c_doc = __pyx_t_5;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":161
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":164
  *         c_doc = _plainFakeRootDoc(doc._c_doc, (<_Element>element_or_tree)._c_node, 0)
  *     else:
  *         doc = _documentOrRaise(element_or_tree)             # <<<<<<<<<<<<<<
  *         _assertValidDoc(doc)
  *         c_doc = doc._c_doc
  */
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 161; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":162
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":165
  *     else:
  *         doc = _documentOrRaise(element_or_tree)
  *         _assertValidDoc(doc)             # <<<<<<<<<<<<<<
  *         c_doc = doc._c_doc
  * 
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__assertValidDoc(__pyx_v_doc); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":163
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":166
  *         doc = _documentOrRaise(element_or_tree)
  *         _assertValidDoc(doc)
  *         c_doc = doc._c_doc             # <<<<<<<<<<<<<<
@@ -101870,23 +101682,23 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":165
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":168
  *         c_doc = doc._c_doc
  * 
  *     c_inclusive_ns_prefixes = _convert_ns_prefixes(c_doc.dict, inclusive_ns_prefixes) if inclusive_ns_prefixes else NULL             # <<<<<<<<<<<<<<
  *     try:
  *          with nogil:
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_2) {
-    __pyx_t_7 = __pyx_f_4lxml_5etree__convert_ns_prefixes(__pyx_v_c_doc->dict, __pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __pyx_f_4lxml_5etree__convert_ns_prefixes(__pyx_v_c_doc->dict, __pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_7 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = __pyx_t_7;
   } else {
     __pyx_t_6 = NULL;
   }
   __pyx_v_c_inclusive_ns_prefixes = __pyx_t_6;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":166
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":169
  * 
  *     c_inclusive_ns_prefixes = _convert_ns_prefixes(c_doc.dict, inclusive_ns_prefixes) if inclusive_ns_prefixes else NULL
  *     try:             # <<<<<<<<<<<<<<
@@ -101895,7 +101707,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":167
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":170
  *     c_inclusive_ns_prefixes = _convert_ns_prefixes(c_doc.dict, inclusive_ns_prefixes) if inclusive_ns_prefixes else NULL
  *     try:
  *          with nogil:             # <<<<<<<<<<<<<<
@@ -101909,7 +101721,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
         #endif
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":169
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":172
  *          with nogil:
  *              byte_count = c14n.xmlC14NDocDumpMemory(
  *                  c_doc, NULL, exclusive, c_inclusive_ns_prefixes, with_comments, &c_buffer)             # <<<<<<<<<<<<<<
@@ -101919,7 +101731,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
           __pyx_v_byte_count = xmlC14NDocDumpMemory(__pyx_v_c_doc, NULL, __pyx_v_exclusive, __pyx_v_c_inclusive_ns_prefixes, __pyx_v_with_comments, (&__pyx_v_c_buffer));
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":167
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":170
  *     c_inclusive_ns_prefixes = _convert_ns_prefixes(c_doc.dict, inclusive_ns_prefixes) if inclusive_ns_prefixes else NULL
  *     try:
  *          with nogil:             # <<<<<<<<<<<<<<
@@ -101934,7 +101746,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":172
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":175
  * 
  *     finally:
  *          _destroyFakeDoc(doc._c_doc, c_doc)             # <<<<<<<<<<<<<<
@@ -101944,7 +101756,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
   /*finally:*/ {
     __pyx_f_4lxml_5etree__destroyFakeDoc(__pyx_v_doc->_c_doc, __pyx_v_c_doc);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":173
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":176
  *     finally:
  *          _destroyFakeDoc(doc._c_doc, c_doc)
  *          if c_inclusive_ns_prefixes is not NULL:             # <<<<<<<<<<<<<<
@@ -101954,7 +101766,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
     __pyx_t_2 = ((__pyx_v_c_inclusive_ns_prefixes != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":174
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":177
  *          _destroyFakeDoc(doc._c_doc, c_doc)
  *          if c_inclusive_ns_prefixes is not NULL:
  *             python.PyMem_Free(c_inclusive_ns_prefixes)             # <<<<<<<<<<<<<<
@@ -101967,7 +101779,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
     __pyx_L10:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":176
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":179
  *             python.PyMem_Free(c_inclusive_ns_prefixes)
  * 
  *     if byte_count < 0 or c_buffer is NULL:             # <<<<<<<<<<<<<<
@@ -101983,7 +101795,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
   }
   if (__pyx_t_8) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":177
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":180
  * 
  *     if byte_count < 0 or c_buffer is NULL:
  *         if c_buffer is not NULL:             # <<<<<<<<<<<<<<
@@ -101993,7 +101805,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
     __pyx_t_8 = ((__pyx_v_c_buffer != NULL) != 0);
     if (__pyx_t_8) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":178
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":181
  *     if byte_count < 0 or c_buffer is NULL:
  *         if c_buffer is not NULL:
  *             tree.xmlFree(c_buffer)             # <<<<<<<<<<<<<<
@@ -102005,23 +101817,23 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
     }
     __pyx_L12:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":179
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":182
  *         if c_buffer is not NULL:
  *             tree.xmlFree(c_buffer)
  *         raise C14NError, u"C14N failed"             # <<<<<<<<<<<<<<
  *     try:
  *         result = c_buffer[:byte_count]
  */
-    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__C14NError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__C14NError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_230), 0, 0);
+    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_233), 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 182; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L11;
   }
   __pyx_L11:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":180
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":183
  *             tree.xmlFree(c_buffer)
  *         raise C14NError, u"C14N failed"
  *     try:             # <<<<<<<<<<<<<<
@@ -102030,20 +101842,20 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":181
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":184
  *         raise C14NError, u"C14N failed"
  *     try:
  *         result = c_buffer[:byte_count]             # <<<<<<<<<<<<<<
  *     finally:
  *         tree.xmlFree(c_buffer)
  */
-    __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_c_buffer) + 0, __pyx_v_byte_count - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L14;}
+    __pyx_t_4 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_c_buffer) + 0, __pyx_v_byte_count - 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L14;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __pyx_v_result = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":183
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":186
  *         result = c_buffer[:byte_count]
  *     finally:
  *         tree.xmlFree(c_buffer)             # <<<<<<<<<<<<<<
@@ -102077,7 +101889,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":184
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":187
  *     finally:
  *         tree.xmlFree(c_buffer)
  *     return result             # <<<<<<<<<<<<<<
@@ -102103,7 +101915,7 @@ static PyObject *__pyx_f_4lxml_5etree__tostringC14N(PyObject *__pyx_v_element_or
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":186
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":189
  *     return result
  * 
  * cdef _raiseSerialisationError(int error_result):             # <<<<<<<<<<<<<<
@@ -102125,7 +101937,7 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_error
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_raiseSerialisationError", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":187
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":190
  * 
  * cdef _raiseSerialisationError(int error_result):
  *     if error_result == xmlerror.XML_ERR_NO_MEMORY:             # <<<<<<<<<<<<<<
@@ -102135,45 +101947,45 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_error
   __pyx_t_1 = ((__pyx_v_error_result == XML_ERR_NO_MEMORY) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":188
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":191
  * cdef _raiseSerialisationError(int error_result):
  *     if error_result == xmlerror.XML_ERR_NO_MEMORY:
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  *     message = ErrorTypes._getName(error_result)
  *     if message is None:
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":189
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":192
  *     if error_result == xmlerror.XML_ERR_NO_MEMORY:
  *         raise MemoryError()
  *     message = ErrorTypes._getName(error_result)             # <<<<<<<<<<<<<<
  *     if message is None:
  *         message = u"unknown error %d" % error_result
  */
-  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__ErrorTypes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s___getName); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s___getName); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_2 = PyInt_FromLong(__pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyInt_FromLong(__pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_v_message = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":190
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":193
  *         raise MemoryError()
  *     message = ErrorTypes._getName(error_result)
  *     if message is None:             # <<<<<<<<<<<<<<
@@ -102184,37 +101996,36 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_error
   __pyx_t_5 = (__pyx_t_1 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":191
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":194
  *     message = ErrorTypes._getName(error_result)
  *     if message is None:
  *         message = u"unknown error %d" % error_result             # <<<<<<<<<<<<<<
  *     raise SerialisationError, message
  * 
  */
-    __pyx_t_2 = PyInt_FromLong(__pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyInt_FromLong(__pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_231), __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_234), __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __Pyx_DECREF(__pyx_v_message);
-    __pyx_v_message = ((PyObject *)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_message, ((PyObject *)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":192
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":195
  *     if message is None:
  *         message = u"unknown error %d" % error_result
  *     raise SerialisationError, message             # <<<<<<<<<<<<<<
  * 
  * ############################################################
  */
-  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__SerialisationError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__SerialisationError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_Raise(__pyx_t_4, __pyx_v_message, 0, 0);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  {__pyx_filename = __pyx_f[6]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  {__pyx_filename = __pyx_f[6]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -102231,7 +102042,7 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_error
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":197
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":200
  * # low-level serialisation functions
  * 
  * cdef void _writeDoctype(tree.xmlOutputBuffer* c_buffer,             # <<<<<<<<<<<<<<
@@ -102241,7 +102052,7 @@ static PyObject *__pyx_f_4lxml_5etree__raiseSerialisationError(int __pyx_v_error
 
 static void __pyx_f_4lxml_5etree__writeDoctype(xmlOutputBuffer *__pyx_v_c_buffer, const xmlChar *__pyx_v_c_doctype) {
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":200
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":203
  *                         const_xmlChar* c_doctype) nogil:
  *     tree.xmlOutputBufferWrite(c_buffer, tree.xmlStrlen(c_doctype),
  *                               <const_char*>c_doctype)             # <<<<<<<<<<<<<<
@@ -102250,18 +102061,18 @@ static void __pyx_f_4lxml_5etree__writeDoctype(xmlOutputBuffer *__pyx_v_c_buffer
  */
   xmlOutputBufferWrite(__pyx_v_c_buffer, xmlStrlen(__pyx_v_c_doctype), ((const char *)__pyx_v_c_doctype));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":201
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":204
  *     tree.xmlOutputBufferWrite(c_buffer, tree.xmlStrlen(c_doctype),
  *                               <const_char*>c_doctype)
  *     tree.xmlOutputBufferWriteString(c_buffer, "\n")             # <<<<<<<<<<<<<<
  * 
  * cdef void _writeNodeToBuffer(tree.xmlOutputBuffer* c_buffer,
  */
-  xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_49);
+  xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_52);
 
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":203
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":206
  *     tree.xmlOutputBufferWriteString(c_buffer, "\n")
  * 
  * cdef void _writeNodeToBuffer(tree.xmlOutputBuffer* c_buffer,             # <<<<<<<<<<<<<<
@@ -102278,7 +102089,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   int __pyx_t_4;
   xmlNode *__pyx_t_5;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":210
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":213
  *                              int standalone) nogil:
  *     cdef xmlNode* c_nsdecl_node
  *     cdef xmlDoc* c_doc = c_node.doc             # <<<<<<<<<<<<<<
@@ -102288,7 +102099,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_1 = __pyx_v_c_node->doc;
   __pyx_v_c_doc = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":211
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":214
  *     cdef xmlNode* c_nsdecl_node
  *     cdef xmlDoc* c_doc = c_node.doc
  *     if write_xml_declaration and c_method == OUTPUT_METHOD_XML:             # <<<<<<<<<<<<<<
@@ -102303,7 +102114,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":212
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":215
  *     cdef xmlDoc* c_doc = c_node.doc
  *     if write_xml_declaration and c_method == OUTPUT_METHOD_XML:
  *         _writeDeclarationToBuffer(c_buffer, c_doc.version, encoding, standalone)             # <<<<<<<<<<<<<<
@@ -102315,7 +102126,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":213
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":216
  *     if write_xml_declaration and c_method == OUTPUT_METHOD_XML:
  *         _writeDeclarationToBuffer(c_buffer, c_doc.version, encoding, standalone)
  *     if c_doctype:             # <<<<<<<<<<<<<<
@@ -102325,7 +102136,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_3 = (__pyx_v_c_doctype != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":214
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":217
  *         _writeDeclarationToBuffer(c_buffer, c_doc.version, encoding, standalone)
  *     if c_doctype:
  *         _writeDoctype(c_buffer, c_doctype)             # <<<<<<<<<<<<<<
@@ -102337,7 +102148,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":216
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":219
  *         _writeDoctype(c_buffer, c_doctype)
  *     # write internal DTD subset, preceding PIs/comments, etc.
  *     if write_complete_document and not c_buffer.error:             # <<<<<<<<<<<<<<
@@ -102352,7 +102163,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":217
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":220
  *     # write internal DTD subset, preceding PIs/comments, etc.
  *     if write_complete_document and not c_buffer.error:
  *         if c_doctype is NULL:             # <<<<<<<<<<<<<<
@@ -102362,7 +102173,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
     __pyx_t_2 = ((__pyx_v_c_doctype == NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":218
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":221
  *     if write_complete_document and not c_buffer.error:
  *         if c_doctype is NULL:
  *             _writeDtdToBuffer(c_buffer, c_doc, c_node.name, encoding)             # <<<<<<<<<<<<<<
@@ -102374,7 +102185,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":219
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":222
  *         if c_doctype is NULL:
  *             _writeDtdToBuffer(c_buffer, c_doc, c_node.name, encoding)
  *         _writePrevSiblings(c_buffer, c_node, encoding, pretty_print)             # <<<<<<<<<<<<<<
@@ -102386,7 +102197,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":221
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":224
  *         _writePrevSiblings(c_buffer, c_node, encoding, pretty_print)
  * 
  *     c_nsdecl_node = c_node             # <<<<<<<<<<<<<<
@@ -102395,7 +102206,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  */
   __pyx_v_c_nsdecl_node = __pyx_v_c_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":222
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":225
  * 
  *     c_nsdecl_node = c_node
  *     if not c_node.parent or c_node.parent.type != tree.XML_DOCUMENT_NODE:             # <<<<<<<<<<<<<<
@@ -102411,7 +102222,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":225
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":228
  *         # copy the node and add namespaces from parents
  *         # this is required to make libxml write them
  *         c_nsdecl_node = tree.xmlCopyNode(c_node, 2)             # <<<<<<<<<<<<<<
@@ -102420,7 +102231,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  */
     __pyx_v_c_nsdecl_node = xmlCopyNode(__pyx_v_c_node, 2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":226
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":229
  *         # this is required to make libxml write them
  *         c_nsdecl_node = tree.xmlCopyNode(c_node, 2)
  *         if not c_nsdecl_node:             # <<<<<<<<<<<<<<
@@ -102430,7 +102241,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
     __pyx_t_4 = ((!(__pyx_v_c_nsdecl_node != 0)) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":227
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":230
  *         c_nsdecl_node = tree.xmlCopyNode(c_node, 2)
  *         if not c_nsdecl_node:
  *             c_buffer.error = xmlerror.XML_ERR_NO_MEMORY             # <<<<<<<<<<<<<<
@@ -102439,7 +102250,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  */
       __pyx_v_c_buffer->error = XML_ERR_NO_MEMORY;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":228
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":231
  *         if not c_nsdecl_node:
  *             c_buffer.error = xmlerror.XML_ERR_NO_MEMORY
  *             return             # <<<<<<<<<<<<<<
@@ -102451,7 +102262,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":229
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":232
  *             c_buffer.error = xmlerror.XML_ERR_NO_MEMORY
  *             return
  *         _copyParentNamespaces(c_node, c_nsdecl_node)             # <<<<<<<<<<<<<<
@@ -102460,7 +102271,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
  */
     __pyx_f_4lxml_5etree__copyParentNamespaces(__pyx_v_c_node, __pyx_v_c_nsdecl_node);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":231
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":234
  *         _copyParentNamespaces(c_node, c_nsdecl_node)
  * 
  *         c_nsdecl_node.parent = c_node.parent             # <<<<<<<<<<<<<<
@@ -102470,7 +102281,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
     __pyx_t_5 = __pyx_v_c_node->parent;
     __pyx_v_c_nsdecl_node->parent = __pyx_t_5;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":232
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":235
  * 
  *         c_nsdecl_node.parent = c_node.parent
  *         c_nsdecl_node.children = c_node.children             # <<<<<<<<<<<<<<
@@ -102480,7 +102291,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
     __pyx_t_5 = __pyx_v_c_node->children;
     __pyx_v_c_nsdecl_node->children = __pyx_t_5;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":233
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":236
  *         c_nsdecl_node.parent = c_node.parent
  *         c_nsdecl_node.children = c_node.children
  *         c_nsdecl_node.last = c_node.last             # <<<<<<<<<<<<<<
@@ -102493,7 +102304,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":236
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":239
  * 
  *     # write node
  *     if c_method == OUTPUT_METHOD_HTML:             # <<<<<<<<<<<<<<
@@ -102503,7 +102314,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_4 = ((__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_HTML) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":238
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":241
  *     if c_method == OUTPUT_METHOD_HTML:
  *         tree.htmlNodeDumpFormatOutput(
  *             c_buffer, c_doc, c_nsdecl_node, encoding, pretty_print)             # <<<<<<<<<<<<<<
@@ -102515,7 +102326,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":241
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":244
  *     else:
  *         tree.xmlNodeDumpOutput(
  *             c_buffer, c_doc, c_nsdecl_node, 0, pretty_print, encoding)             # <<<<<<<<<<<<<<
@@ -102526,7 +102337,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L9:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":243
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":246
  *             c_buffer, c_doc, c_nsdecl_node, 0, pretty_print, encoding)
  * 
  *     if c_nsdecl_node is not c_node:             # <<<<<<<<<<<<<<
@@ -102536,7 +102347,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_4 = ((__pyx_v_c_nsdecl_node != __pyx_v_c_node) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":245
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":248
  *     if c_nsdecl_node is not c_node:
  *         # clean up
  *         c_nsdecl_node.children = c_nsdecl_node.last = NULL             # <<<<<<<<<<<<<<
@@ -102546,7 +102357,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
     __pyx_v_c_nsdecl_node->children = NULL;
     __pyx_v_c_nsdecl_node->last = NULL;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":246
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":249
  *         # clean up
  *         c_nsdecl_node.children = c_nsdecl_node.last = NULL
  *         tree.xmlFreeNode(c_nsdecl_node)             # <<<<<<<<<<<<<<
@@ -102558,7 +102369,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L10:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":248
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":251
  *         tree.xmlFreeNode(c_nsdecl_node)
  * 
  *     if c_buffer.error:             # <<<<<<<<<<<<<<
@@ -102568,7 +102379,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_4 = (__pyx_v_c_buffer->error != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":249
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":252
  * 
  *     if c_buffer.error:
  *         return             # <<<<<<<<<<<<<<
@@ -102580,7 +102391,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L11:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":252
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":255
  * 
  *     # write tail, trailing comments, etc.
  *     if with_tail:             # <<<<<<<<<<<<<<
@@ -102590,7 +102401,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_4 = (__pyx_v_with_tail != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":253
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":256
  *     # write tail, trailing comments, etc.
  *     if with_tail:
  *         _writeTail(c_buffer, c_node, encoding, pretty_print)             # <<<<<<<<<<<<<<
@@ -102602,7 +102413,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L12:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":254
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":257
  *     if with_tail:
  *         _writeTail(c_buffer, c_node, encoding, pretty_print)
  *     if write_complete_document:             # <<<<<<<<<<<<<<
@@ -102612,7 +102423,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_4 = (__pyx_v_write_complete_document != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":255
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":258
  *         _writeTail(c_buffer, c_node, encoding, pretty_print)
  *     if write_complete_document:
  *         _writeNextSiblings(c_buffer, c_node, encoding, pretty_print)             # <<<<<<<<<<<<<<
@@ -102624,7 +102435,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L13:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":256
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":259
  *     if write_complete_document:
  *         _writeNextSiblings(c_buffer, c_node, encoding, pretty_print)
  *     if pretty_print:             # <<<<<<<<<<<<<<
@@ -102634,14 +102445,14 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_4 = (__pyx_v_pretty_print != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":257
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":260
  *         _writeNextSiblings(c_buffer, c_node, encoding, pretty_print)
  *     if pretty_print:
  *         tree.xmlOutputBufferWrite(c_buffer, 1, "\n")             # <<<<<<<<<<<<<<
  * 
  * cdef void _writeDeclarationToBuffer(tree.xmlOutputBuffer* c_buffer,
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_49);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_52);
     goto __pyx_L14;
   }
   __pyx_L14:;
@@ -102649,7 +102460,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
   __pyx_L0:;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":259
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":262
  *         tree.xmlOutputBufferWrite(c_buffer, 1, "\n")
  * 
  * cdef void _writeDeclarationToBuffer(tree.xmlOutputBuffer* c_buffer,             # <<<<<<<<<<<<<<
@@ -102660,7 +102471,7 @@ static void __pyx_f_4lxml_5etree__writeNodeToBuffer(xmlOutputBuffer *__pyx_v_c_b
 static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__pyx_v_c_buffer, const xmlChar *__pyx_v_version, const char *__pyx_v_encoding, int __pyx_v_standalone) {
   int __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":262
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":265
  *                                     const_xmlChar* version, const_char* encoding,
  *                                     int standalone) nogil:
  *     if version is NULL:             # <<<<<<<<<<<<<<
@@ -102670,28 +102481,28 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
   __pyx_t_1 = ((__pyx_v_version == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":263
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":266
  *                                     int standalone) nogil:
  *     if version is NULL:
  *         version = <unsigned char*>"1.0"             # <<<<<<<<<<<<<<
  *     tree.xmlOutputBufferWrite(c_buffer, 15, "<?xml version='")
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
  */
-    __pyx_v_version = ((unsigned char *)((unsigned char *)__pyx_k_232));
+    __pyx_v_version = ((unsigned char *)((unsigned char *)__pyx_k_235));
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":264
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":267
  *     if version is NULL:
  *         version = <unsigned char*>"1.0"
  *     tree.xmlOutputBufferWrite(c_buffer, 15, "<?xml version='")             # <<<<<<<<<<<<<<
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
  *     tree.xmlOutputBufferWrite(c_buffer, 12, "' encoding='")
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 15, __pyx_k_233);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 15, __pyx_k_236);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":265
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":268
  *         version = <unsigned char*>"1.0"
  *     tree.xmlOutputBufferWrite(c_buffer, 15, "<?xml version='")
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)             # <<<<<<<<<<<<<<
@@ -102700,16 +102511,16 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  */
   xmlOutputBufferWriteString(__pyx_v_c_buffer, ((const char *)__pyx_v_version));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":266
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":269
  *     tree.xmlOutputBufferWrite(c_buffer, 15, "<?xml version='")
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
  *     tree.xmlOutputBufferWrite(c_buffer, 12, "' encoding='")             # <<<<<<<<<<<<<<
  *     tree.xmlOutputBufferWriteString(c_buffer, encoding)
  *     if standalone == 0:
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 12, __pyx_k_234);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 12, __pyx_k_237);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":267
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":270
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>version)
  *     tree.xmlOutputBufferWrite(c_buffer, 12, "' encoding='")
  *     tree.xmlOutputBufferWriteString(c_buffer, encoding)             # <<<<<<<<<<<<<<
@@ -102718,7 +102529,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  */
   xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_v_encoding);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":270
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":273
  *     if standalone == 0:
  *         tree.xmlOutputBufferWrite(c_buffer, 20, "' standalone='no'?>\n")
  *     elif standalone == 1:             # <<<<<<<<<<<<<<
@@ -102727,7 +102538,7 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  */
   switch (__pyx_v_standalone) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":268
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":271
  *     tree.xmlOutputBufferWrite(c_buffer, 12, "' encoding='")
  *     tree.xmlOutputBufferWriteString(c_buffer, encoding)
  *     if standalone == 0:             # <<<<<<<<<<<<<<
@@ -102736,17 +102547,17 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  */
     case 0:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":269
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":272
  *     tree.xmlOutputBufferWriteString(c_buffer, encoding)
  *     if standalone == 0:
  *         tree.xmlOutputBufferWrite(c_buffer, 20, "' standalone='no'?>\n")             # <<<<<<<<<<<<<<
  *     elif standalone == 1:
  *         tree.xmlOutputBufferWrite(c_buffer, 21, "' standalone='yes'?>\n")
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 20, __pyx_k_235);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 20, __pyx_k_238);
     break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":270
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":273
  *     if standalone == 0:
  *         tree.xmlOutputBufferWrite(c_buffer, 20, "' standalone='no'?>\n")
  *     elif standalone == 1:             # <<<<<<<<<<<<<<
@@ -102755,31 +102566,31 @@ static void __pyx_f_4lxml_5etree__writeDeclarationToBuffer(xmlOutputBuffer *__py
  */
     case 1:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":271
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":274
  *         tree.xmlOutputBufferWrite(c_buffer, 20, "' standalone='no'?>\n")
  *     elif standalone == 1:
  *         tree.xmlOutputBufferWrite(c_buffer, 21, "' standalone='yes'?>\n")             # <<<<<<<<<<<<<<
  *     else:
  *         tree.xmlOutputBufferWrite(c_buffer, 4, "'?>\n")
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 21, __pyx_k_236);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 21, __pyx_k_239);
     break;
     default:
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":273
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":276
  *         tree.xmlOutputBufferWrite(c_buffer, 21, "' standalone='yes'?>\n")
  *     else:
  *         tree.xmlOutputBufferWrite(c_buffer, 4, "'?>\n")             # <<<<<<<<<<<<<<
  * 
  * cdef void _writeDtdToBuffer(tree.xmlOutputBuffer* c_buffer,
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 4, __pyx_k_237);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 4, __pyx_k_240);
     break;
   }
 
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":275
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":278
  *         tree.xmlOutputBufferWrite(c_buffer, 4, "'?>\n")
  * 
  * cdef void _writeDtdToBuffer(tree.xmlOutputBuffer* c_buffer,             # <<<<<<<<<<<<<<
@@ -102800,7 +102611,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   int __pyx_t_7;
   xmlNode *__pyx_t_8;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":280
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":283
  *     cdef tree.xmlDtd* c_dtd
  *     cdef xmlNode* c_node
  *     c_dtd = c_doc.intSubset             # <<<<<<<<<<<<<<
@@ -102810,7 +102621,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   __pyx_t_1 = __pyx_v_c_doc->intSubset;
   __pyx_v_c_dtd = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":281
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":284
  *     cdef xmlNode* c_node
  *     c_dtd = c_doc.intSubset
  *     if not c_dtd or not c_dtd.name:             # <<<<<<<<<<<<<<
@@ -102826,7 +102637,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":282
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":285
  *     c_dtd = c_doc.intSubset
  *     if not c_dtd or not c_dtd.name:
  *         return             # <<<<<<<<<<<<<<
@@ -102838,7 +102649,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":283
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":286
  *     if not c_dtd or not c_dtd.name:
  *         return
  *     if tree.xmlStrcmp(c_root_name, c_dtd.name) != 0:             # <<<<<<<<<<<<<<
@@ -102848,7 +102659,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   __pyx_t_4 = ((xmlStrcmp(__pyx_v_c_root_name, __pyx_v_c_dtd->name) != 0) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":284
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":287
  *         return
  *     if tree.xmlStrcmp(c_root_name, c_dtd.name) != 0:
  *         return             # <<<<<<<<<<<<<<
@@ -102860,16 +102671,16 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":285
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":288
  *     if tree.xmlStrcmp(c_root_name, c_dtd.name) != 0:
  *         return
  *     tree.xmlOutputBufferWrite(c_buffer, 10, "<!DOCTYPE ")             # <<<<<<<<<<<<<<
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.name)
  *     if c_dtd.SystemID and c_dtd.SystemID[0] != c'\0':
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 10, __pyx_k_238);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 10, __pyx_k_241);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":286
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":289
  *         return
  *     tree.xmlOutputBufferWrite(c_buffer, 10, "<!DOCTYPE ")
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.name)             # <<<<<<<<<<<<<<
@@ -102878,7 +102689,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
   xmlOutputBufferWriteString(__pyx_v_c_buffer, ((const char *)__pyx_v_c_dtd->name));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":287
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":290
  *     tree.xmlOutputBufferWrite(c_buffer, 10, "<!DOCTYPE ")
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.name)
  *     if c_dtd.SystemID and c_dtd.SystemID[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -102893,7 +102704,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":288
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":291
  *     tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.name)
  *     if c_dtd.SystemID and c_dtd.SystemID[0] != c'\0':
  *         if c_dtd.ExternalID != NULL and c_dtd.ExternalID[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -102909,16 +102720,16 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
     }
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":289
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":292
  *     if c_dtd.SystemID and c_dtd.SystemID[0] != c'\0':
  *         if c_dtd.ExternalID != NULL and c_dtd.ExternalID[0] != c'\0':
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' PUBLIC "')             # <<<<<<<<<<<<<<
  *             tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.ExternalID)
  *             tree.xmlOutputBufferWrite(c_buffer, 3, '" "')
  */
-      xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_239);
+      xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_242);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":290
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":293
  *         if c_dtd.ExternalID != NULL and c_dtd.ExternalID[0] != c'\0':
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' PUBLIC "')
  *             tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.ExternalID)             # <<<<<<<<<<<<<<
@@ -102927,30 +102738,30 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
       xmlOutputBufferWriteString(__pyx_v_c_buffer, ((const char *)__pyx_v_c_dtd->ExternalID));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":291
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":294
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' PUBLIC "')
  *             tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.ExternalID)
  *             tree.xmlOutputBufferWrite(c_buffer, 3, '" "')             # <<<<<<<<<<<<<<
  *         else:
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' SYSTEM "')
  */
-      xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_240);
+      xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_243);
       goto __pyx_L6;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":293
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":296
  *             tree.xmlOutputBufferWrite(c_buffer, 3, '" "')
  *         else:
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' SYSTEM "')             # <<<<<<<<<<<<<<
  *         tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.SystemID)
  *         tree.xmlOutputBufferWrite(c_buffer, 1, '"')
  */
-      xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_241);
+      xmlOutputBufferWrite(__pyx_v_c_buffer, 9, __pyx_k_244);
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":294
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":297
  *         else:
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' SYSTEM "')
  *         tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.SystemID)             # <<<<<<<<<<<<<<
@@ -102959,19 +102770,19 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
     xmlOutputBufferWriteString(__pyx_v_c_buffer, ((const char *)__pyx_v_c_dtd->SystemID));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":295
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":298
  *             tree.xmlOutputBufferWrite(c_buffer, 9, ' SYSTEM "')
  *         tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.SystemID)
  *         tree.xmlOutputBufferWrite(c_buffer, 1, '"')             # <<<<<<<<<<<<<<
  *     if not c_dtd.entities and not c_dtd.elements and \
  *            not c_dtd.attributes and not c_dtd.notations and \
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_242);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 1, __pyx_k_245);
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":296
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":299
  *         tree.xmlOutputBufferWriteString(c_buffer, <const_char*>c_dtd.SystemID)
  *         tree.xmlOutputBufferWrite(c_buffer, 1, '"')
  *     if not c_dtd.entities and not c_dtd.elements and \             # <<<<<<<<<<<<<<
@@ -102983,7 +102794,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
     __pyx_t_2 = ((!(__pyx_v_c_dtd->elements != 0)) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":297
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":300
  *         tree.xmlOutputBufferWrite(c_buffer, 1, '"')
  *     if not c_dtd.entities and not c_dtd.elements and \
  *            not c_dtd.attributes and not c_dtd.notations and \             # <<<<<<<<<<<<<<
@@ -102995,7 +102806,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
         __pyx_t_5 = ((!(__pyx_v_c_dtd->notations != 0)) != 0);
         if (__pyx_t_5) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":298
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":301
  *     if not c_dtd.entities and not c_dtd.elements and \
  *            not c_dtd.attributes and not c_dtd.notations and \
  *            not c_dtd.pentities:             # <<<<<<<<<<<<<<
@@ -103021,16 +102832,16 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":299
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":302
  *            not c_dtd.attributes and not c_dtd.notations and \
  *            not c_dtd.pentities:
  *         tree.xmlOutputBufferWrite(c_buffer, 2, '>\n')             # <<<<<<<<<<<<<<
  *         return
  *     tree.xmlOutputBufferWrite(c_buffer, 3, ' [\n')
  */
-    xmlOutputBufferWrite(__pyx_v_c_buffer, 2, __pyx_k_243);
+    xmlOutputBufferWrite(__pyx_v_c_buffer, 2, __pyx_k_246);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":300
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":303
  *            not c_dtd.pentities:
  *         tree.xmlOutputBufferWrite(c_buffer, 2, '>\n')
  *         return             # <<<<<<<<<<<<<<
@@ -103042,16 +102853,16 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":301
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":304
  *         tree.xmlOutputBufferWrite(c_buffer, 2, '>\n')
  *         return
  *     tree.xmlOutputBufferWrite(c_buffer, 3, ' [\n')             # <<<<<<<<<<<<<<
  *     if c_dtd.notations and not c_buffer.error:
  *         c_buf = tree.xmlBufferCreate()
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_244);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_247);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":302
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":305
  *         return
  *     tree.xmlOutputBufferWrite(c_buffer, 3, ' [\n')
  *     if c_dtd.notations and not c_buffer.error:             # <<<<<<<<<<<<<<
@@ -103066,7 +102877,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":303
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":306
  *     tree.xmlOutputBufferWrite(c_buffer, 3, ' [\n')
  *     if c_dtd.notations and not c_buffer.error:
  *         c_buf = tree.xmlBufferCreate()             # <<<<<<<<<<<<<<
@@ -103075,7 +102886,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
     __pyx_v_c_buf = xmlBufferCreate();
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":304
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":307
  *     if c_dtd.notations and not c_buffer.error:
  *         c_buf = tree.xmlBufferCreate()
  *         if not c_buf:             # <<<<<<<<<<<<<<
@@ -103085,7 +102896,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
     __pyx_t_3 = ((!(__pyx_v_c_buf != 0)) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":305
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":308
  *         c_buf = tree.xmlBufferCreate()
  *         if not c_buf:
  *             c_buffer.error = xmlerror.XML_ERR_NO_MEMORY             # <<<<<<<<<<<<<<
@@ -103094,7 +102905,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
       __pyx_v_c_buffer->error = XML_ERR_NO_MEMORY;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":306
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":309
  *         if not c_buf:
  *             c_buffer.error = xmlerror.XML_ERR_NO_MEMORY
  *             return             # <<<<<<<<<<<<<<
@@ -103106,7 +102917,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
     }
     __pyx_L9:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":307
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":310
  *             c_buffer.error = xmlerror.XML_ERR_NO_MEMORY
  *             return
  *         tree.xmlDumpNotationTable(c_buf, <tree.xmlNotationTable*>c_dtd.notations)             # <<<<<<<<<<<<<<
@@ -103115,7 +102926,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
     xmlDumpNotationTable(__pyx_v_c_buf, ((xmlNotationTable *)__pyx_v_c_dtd->notations));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":310
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":313
  *         tree.xmlOutputBufferWrite(
  *             c_buffer, tree.xmlBufferLength(c_buf),
  *             <const_char*>tree.xmlBufferContent(c_buf))             # <<<<<<<<<<<<<<
@@ -103124,7 +102935,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
     xmlOutputBufferWrite(__pyx_v_c_buffer, xmlBufferLength(__pyx_v_c_buf), ((const char *)xmlBufferContent(__pyx_v_c_buf)));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":311
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":314
  *             c_buffer, tree.xmlBufferLength(c_buf),
  *             <const_char*>tree.xmlBufferContent(c_buf))
  *         tree.xmlBufferFree(c_buf)             # <<<<<<<<<<<<<<
@@ -103136,7 +102947,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   }
   __pyx_L8:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":312
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":315
  *             <const_char*>tree.xmlBufferContent(c_buf))
  *         tree.xmlBufferFree(c_buf)
  *     c_node = c_dtd.children             # <<<<<<<<<<<<<<
@@ -103146,7 +102957,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
   __pyx_t_8 = __pyx_v_c_dtd->children;
   __pyx_v_c_node = __pyx_t_8;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":313
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":316
  *         tree.xmlBufferFree(c_buf)
  *     c_node = c_dtd.children
  *     while c_node and not c_buffer.error:             # <<<<<<<<<<<<<<
@@ -103162,7 +102973,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
     }
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":314
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":317
  *     c_node = c_dtd.children
  *     while c_node and not c_buffer.error:
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_node, 0, 0, encoding)             # <<<<<<<<<<<<<<
@@ -103171,7 +102982,7 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
  */
     xmlNodeDumpOutput(__pyx_v_c_buffer, __pyx_v_c_node->doc, __pyx_v_c_node, 0, 0, __pyx_v_encoding);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":315
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":318
  *     while c_node and not c_buffer.error:
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_node, 0, 0, encoding)
  *         c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -103182,19 +102993,19 @@ static void __pyx_f_4lxml_5etree__writeDtdToBuffer(xmlOutputBuffer *__pyx_v_c_bu
     __pyx_v_c_node = __pyx_t_8;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":316
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":319
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_node, 0, 0, encoding)
  *         c_node = c_node.next
  *     tree.xmlOutputBufferWrite(c_buffer, 3, "]>\n")             # <<<<<<<<<<<<<<
  * 
  * cdef void _writeTail(tree.xmlOutputBuffer* c_buffer, xmlNode* c_node,
  */
-  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_245);
+  xmlOutputBufferWrite(__pyx_v_c_buffer, 3, __pyx_k_248);
 
   __pyx_L0:;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":318
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":321
  *     tree.xmlOutputBufferWrite(c_buffer, 3, "]>\n")
  * 
  * cdef void _writeTail(tree.xmlOutputBuffer* c_buffer, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -103208,7 +103019,7 @@ static void __pyx_f_4lxml_5etree__writeTail(xmlOutputBuffer *__pyx_v_c_buffer, x
   int __pyx_t_3;
   int __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":321
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":324
  *                      const_char* encoding, bint pretty_print) nogil:
  *     u"Write the element tail."
  *     c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -103218,7 +103029,7 @@ static void __pyx_f_4lxml_5etree__writeTail(xmlOutputBuffer *__pyx_v_c_buffer, x
   __pyx_t_1 = __pyx_v_c_node->next;
   __pyx_v_c_node = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":322
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":325
  *     u"Write the element tail."
  *     c_node = c_node.next
  *     while c_node and c_node.type == tree.XML_TEXT_NODE and not c_buffer.error:             # <<<<<<<<<<<<<<
@@ -103240,7 +103051,7 @@ static void __pyx_f_4lxml_5etree__writeTail(xmlOutputBuffer *__pyx_v_c_buffer, x
     }
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":324
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":327
  *     while c_node and c_node.type == tree.XML_TEXT_NODE and not c_buffer.error:
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_node, 0,
  *                                pretty_print, encoding)             # <<<<<<<<<<<<<<
@@ -103249,7 +103060,7 @@ static void __pyx_f_4lxml_5etree__writeTail(xmlOutputBuffer *__pyx_v_c_buffer, x
  */
     xmlNodeDumpOutput(__pyx_v_c_buffer, __pyx_v_c_node->doc, __pyx_v_c_node, 0, __pyx_v_pretty_print, __pyx_v_encoding);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":325
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":328
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_node, 0,
  *                                pretty_print, encoding)
  *         c_node = c_node.next             # <<<<<<<<<<<<<<
@@ -103262,7 +103073,7 @@ static void __pyx_f_4lxml_5etree__writeTail(xmlOutputBuffer *__pyx_v_c_buffer, x
 
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":327
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":330
  *         c_node = c_node.next
  * 
  * cdef void _writePrevSiblings(tree.xmlOutputBuffer* c_buffer, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -103277,7 +103088,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
   int __pyx_t_3;
   xmlNode *__pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":330
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":333
  *                              const_char* encoding, bint pretty_print) nogil:
  *     cdef xmlNode* c_sibling
  *     if c_node.parent and _isElement(c_node.parent):             # <<<<<<<<<<<<<<
@@ -103292,7 +103103,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":331
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":334
  *     cdef xmlNode* c_sibling
  *     if c_node.parent and _isElement(c_node.parent):
  *         return             # <<<<<<<<<<<<<<
@@ -103304,7 +103115,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":333
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":336
  *         return
  *     # we are at a root node, so add PI and comment siblings
  *     c_sibling = c_node             # <<<<<<<<<<<<<<
@@ -103313,7 +103124,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
  */
   __pyx_v_c_sibling = __pyx_v_c_node;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":334
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":337
  *     # we are at a root node, so add PI and comment siblings
  *     c_sibling = c_node
  *     while c_sibling.prev and \             # <<<<<<<<<<<<<<
@@ -103323,7 +103134,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
   while (1) {
     if ((__pyx_v_c_sibling->prev != 0)) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":335
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":338
  *     c_sibling = c_node
  *     while c_sibling.prev and \
  *             (c_sibling.prev.type == tree.XML_PI_NODE or             # <<<<<<<<<<<<<<
@@ -103333,7 +103144,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
       __pyx_t_2 = ((__pyx_v_c_sibling->prev->type == XML_PI_NODE) != 0);
       if (!__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":336
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":339
  *     while c_sibling.prev and \
  *             (c_sibling.prev.type == tree.XML_PI_NODE or
  *              c_sibling.prev.type == tree.XML_COMMENT_NODE):             # <<<<<<<<<<<<<<
@@ -103351,7 +103162,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
     }
     if (!__pyx_t_2) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":337
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":340
  *             (c_sibling.prev.type == tree.XML_PI_NODE or
  *              c_sibling.prev.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.prev             # <<<<<<<<<<<<<<
@@ -103362,7 +103173,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
     __pyx_v_c_sibling = __pyx_t_4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":338
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":341
  *              c_sibling.prev.type == tree.XML_COMMENT_NODE):
  *         c_sibling = c_sibling.prev
  *     while c_sibling is not c_node and not c_buffer.error:             # <<<<<<<<<<<<<<
@@ -103379,7 +103190,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
     }
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":340
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":343
  *     while c_sibling is not c_node and not c_buffer.error:
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_sibling, 0,
  *                                pretty_print, encoding)             # <<<<<<<<<<<<<<
@@ -103388,7 +103199,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
  */
     xmlNodeDumpOutput(__pyx_v_c_buffer, __pyx_v_c_node->doc, __pyx_v_c_sibling, 0, __pyx_v_pretty_print, __pyx_v_encoding);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":341
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":344
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_sibling, 0,
  *                                pretty_print, encoding)
  *         if pretty_print:             # <<<<<<<<<<<<<<
@@ -103398,19 +103209,19 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
     __pyx_t_1 = (__pyx_v_pretty_print != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":342
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":345
  *                                pretty_print, encoding)
  *         if pretty_print:
  *             tree.xmlOutputBufferWriteString(c_buffer, "\n")             # <<<<<<<<<<<<<<
  *         c_sibling = c_sibling.next
  * 
  */
-      xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_49);
+      xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_52);
       goto __pyx_L8;
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":343
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":346
  *         if pretty_print:
  *             tree.xmlOutputBufferWriteString(c_buffer, "\n")
  *         c_sibling = c_sibling.next             # <<<<<<<<<<<<<<
@@ -103424,7 +103235,7 @@ static void __pyx_f_4lxml_5etree__writePrevSiblings(xmlOutputBuffer *__pyx_v_c_b
   __pyx_L0:;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":345
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":348
  *         c_sibling = c_sibling.next
  * 
  * cdef void _writeNextSiblings(tree.xmlOutputBuffer* c_buffer, xmlNode* c_node,             # <<<<<<<<<<<<<<
@@ -103440,7 +103251,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
   int __pyx_t_4;
   int __pyx_t_5;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":348
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":351
  *                              const_char* encoding, bint pretty_print) nogil:
  *     cdef xmlNode* c_sibling
  *     if c_node.parent and _isElement(c_node.parent):             # <<<<<<<<<<<<<<
@@ -103455,7 +103266,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":349
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":352
  *     cdef xmlNode* c_sibling
  *     if c_node.parent and _isElement(c_node.parent):
  *         return             # <<<<<<<<<<<<<<
@@ -103467,7 +103278,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":351
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":354
  *         return
  *     # we are at a root node, so add PI and comment siblings
  *     c_sibling = c_node.next             # <<<<<<<<<<<<<<
@@ -103477,7 +103288,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
   __pyx_t_3 = __pyx_v_c_node->next;
   __pyx_v_c_sibling = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":352
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":355
  *     # we are at a root node, so add PI and comment siblings
  *     c_sibling = c_node.next
  *     while not c_buffer.error and c_sibling and \             # <<<<<<<<<<<<<<
@@ -103489,7 +103300,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
     if (__pyx_t_2) {
       if ((__pyx_v_c_sibling != 0)) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":353
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":356
  *     c_sibling = c_node.next
  *     while not c_buffer.error and c_sibling and \
  *             (c_sibling.type == tree.XML_PI_NODE or             # <<<<<<<<<<<<<<
@@ -103499,7 +103310,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
         __pyx_t_1 = ((__pyx_v_c_sibling->type == XML_PI_NODE) != 0);
         if (!__pyx_t_1) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":354
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":357
  *     while not c_buffer.error and c_sibling and \
  *             (c_sibling.type == tree.XML_PI_NODE or
  *              c_sibling.type == tree.XML_COMMENT_NODE):             # <<<<<<<<<<<<<<
@@ -103521,7 +103332,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
     }
     if (!__pyx_t_5) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":355
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":358
  *             (c_sibling.type == tree.XML_PI_NODE or
  *              c_sibling.type == tree.XML_COMMENT_NODE):
  *         if pretty_print:             # <<<<<<<<<<<<<<
@@ -103531,19 +103342,19 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
     __pyx_t_5 = (__pyx_v_pretty_print != 0);
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":356
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":359
  *              c_sibling.type == tree.XML_COMMENT_NODE):
  *         if pretty_print:
  *             tree.xmlOutputBufferWriteString(c_buffer, "\n")             # <<<<<<<<<<<<<<
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_sibling, 0,
  *                                pretty_print, encoding)
  */
-      xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_49);
+      xmlOutputBufferWriteString(__pyx_v_c_buffer, __pyx_k_52);
       goto __pyx_L6;
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":358
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":361
  *             tree.xmlOutputBufferWriteString(c_buffer, "\n")
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_sibling, 0,
  *                                pretty_print, encoding)             # <<<<<<<<<<<<<<
@@ -103552,7 +103363,7 @@ static void __pyx_f_4lxml_5etree__writeNextSiblings(xmlOutputBuffer *__pyx_v_c_b
  */
     xmlNodeDumpOutput(__pyx_v_c_buffer, __pyx_v_c_node->doc, __pyx_v_c_sibling, 0, __pyx_v_pretty_print, __pyx_v_encoding);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":359
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":362
  *         tree.xmlNodeDumpOutput(c_buffer, c_node.doc, c_sibling, 0,
  *                                pretty_print, encoding)
  *         c_sibling = c_sibling.next             # <<<<<<<<<<<<<<
@@ -103582,12 +103393,12 @@ static int __pyx_pw_4lxml_5etree_15_FilelikeWriter_1__cinit__(PyObject *__pyx_v_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__filelike,&__pyx_n_s__exc_context,&__pyx_n_s__compression,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":371
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":374
  *     cdef _ExceptionContext _exc_context
  *     cdef _ErrorLog error_log
  *     def __cinit__(self, filelike, exc_context=None, compression=None):             # <<<<<<<<<<<<<<
  *         if compression is not None and compression > 0:
- *             filelike = gzip.GzipFile(
+ *             filelike = GzipFile(
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)Py_None);
@@ -103618,7 +103429,7 @@ static int __pyx_pw_4lxml_5etree_15_FilelikeWriter_1__cinit__(PyObject *__pyx_v_
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -103635,7 +103446,7 @@ static int __pyx_pw_4lxml_5etree_15_FilelikeWriter_1__cinit__(PyObject *__pyx_v_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._FilelikeWriter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -103654,24 +103465,23 @@ static int __pyx_pf_4lxml_5etree_15_FilelikeWriter___cinit__(struct __pyx_obj_4l
   int __pyx_t_3;
   int __pyx_t_4;
   PyObject *__pyx_t_5 = NULL;
-  PyObject *__pyx_t_6 = NULL;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
   __Pyx_INCREF(__pyx_v_filelike);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":372
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":375
  *     cdef _ErrorLog error_log
  *     def __cinit__(self, filelike, exc_context=None, compression=None):
  *         if compression is not None and compression > 0:             # <<<<<<<<<<<<<<
- *             filelike = gzip.GzipFile(
+ *             filelike = GzipFile(
  *                 fileobj=filelike, mode='wb', compresslevel=compression)
  */
   __pyx_t_1 = (__pyx_v_compression != Py_None);
   if (__pyx_t_1) {
-    __pyx_t_2 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_RichCompare(__pyx_v_compression, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __pyx_t_4 = __pyx_t_3;
   } else {
@@ -103679,55 +103489,51 @@ static int __pyx_pf_4lxml_5etree_15_FilelikeWriter___cinit__(struct __pyx_obj_4l
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":373
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":376
  *     def __cinit__(self, filelike, exc_context=None, compression=None):
  *         if compression is not None and compression > 0:
- *             filelike = gzip.GzipFile(             # <<<<<<<<<<<<<<
+ *             filelike = GzipFile(             # <<<<<<<<<<<<<<
  *                 fileobj=filelike, mode='wb', compresslevel=compression)
  *             self._close_filelike = filelike.close
  */
-    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_gzip, __pyx_n_s__GzipFile); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(((PyObject *)__pyx_t_5));
+    __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":374
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":377
  *         if compression is not None and compression > 0:
- *             filelike = gzip.GzipFile(
+ *             filelike = GzipFile(
  *                 fileobj=filelike, mode='wb', compresslevel=compression)             # <<<<<<<<<<<<<<
  *             self._close_filelike = filelike.close
  *         self._filelike = filelike
  */
-    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__fileobj), __pyx_v_filelike) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__mode), ((PyObject *)__pyx_n_s__wb)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__compresslevel), __pyx_v_compression) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_6 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __Pyx_DECREF(__pyx_v_filelike);
-    __pyx_v_filelike = __pyx_t_6;
-    __pyx_t_6 = 0;
+    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__fileobj), __pyx_v_filelike) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__mode), ((PyObject *)__pyx_n_s__wb)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__compresslevel), __pyx_v_compression) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree_GzipFile, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+    __Pyx_DECREF_SET(__pyx_v_filelike, __pyx_t_5);
+    __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":375
- *             filelike = gzip.GzipFile(
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":378
+ *             filelike = GzipFile(
  *                 fileobj=filelike, mode='wb', compresslevel=compression)
  *             self._close_filelike = filelike.close             # <<<<<<<<<<<<<<
  *         self._filelike = filelike
  *         if exc_context is None:
  */
-    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s__close); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 375; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_GIVEREF(__pyx_t_6);
+    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_filelike, __pyx_n_s__close); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_GIVEREF(__pyx_t_5);
     __Pyx_GOTREF(__pyx_v_self->_close_filelike);
     __Pyx_DECREF(__pyx_v_self->_close_filelike);
-    __pyx_v_self->_close_filelike = __pyx_t_6;
-    __pyx_t_6 = 0;
+    __pyx_v_self->_close_filelike = __pyx_t_5;
+    __pyx_t_5 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":376
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":379
  *                 fileobj=filelike, mode='wb', compresslevel=compression)
  *             self._close_filelike = filelike.close
  *         self._filelike = filelike             # <<<<<<<<<<<<<<
@@ -103740,7 +103546,7 @@ static int __pyx_pf_4lxml_5etree_15_FilelikeWriter___cinit__(struct __pyx_obj_4l
   __Pyx_DECREF(__pyx_v_self->_filelike);
   __pyx_v_self->_filelike = __pyx_v_filelike;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":377
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":380
  *             self._close_filelike = filelike.close
  *         self._filelike = filelike
  *         if exc_context is None:             # <<<<<<<<<<<<<<
@@ -103751,32 +103557,32 @@ static int __pyx_pf_4lxml_5etree_15_FilelikeWriter___cinit__(struct __pyx_obj_4l
   __pyx_t_1 = (__pyx_t_4 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":378
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":381
  *         self._filelike = filelike
  *         if exc_context is None:
  *             self._exc_context = _ExceptionContext()             # <<<<<<<<<<<<<<
  *         else:
  *             self._exc_context = exc_context
  */
-    __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ExceptionContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 378; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_GIVEREF(__pyx_t_6);
+    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ExceptionContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_GIVEREF(__pyx_t_5);
     __Pyx_GOTREF(__pyx_v_self->_exc_context);
     __Pyx_DECREF(((PyObject *)__pyx_v_self->_exc_context));
-    __pyx_v_self->_exc_context = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_t_6);
-    __pyx_t_6 = 0;
+    __pyx_v_self->_exc_context = ((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_t_5);
+    __pyx_t_5 = 0;
     goto __pyx_L4;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":380
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":383
  *             self._exc_context = _ExceptionContext()
  *         else:
  *             self._exc_context = exc_context             # <<<<<<<<<<<<<<
  *         self.error_log = _ErrorLog()
  * 
  */
-    if (!(likely(((__pyx_v_exc_context) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_exc_context, __pyx_ptype_4lxml_5etree__ExceptionContext))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_v_exc_context) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_exc_context, __pyx_ptype_4lxml_5etree__ExceptionContext))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_INCREF(__pyx_v_exc_context);
     __Pyx_GIVEREF(__pyx_v_exc_context);
     __Pyx_GOTREF(__pyx_v_self->_exc_context);
@@ -103785,27 +103591,26 @@ static int __pyx_pf_4lxml_5etree_15_FilelikeWriter___cinit__(struct __pyx_obj_4l
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":381
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":384
  *         else:
  *             self._exc_context = exc_context
  *         self.error_log = _ErrorLog()             # <<<<<<<<<<<<<<
  * 
  *     cdef tree.xmlOutputBuffer* _createOutputBuffer(
  */
-  __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_GIVEREF(__pyx_t_5);
   __Pyx_GOTREF(__pyx_v_self->error_log);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->error_log));
-  __pyx_v_self->error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_6);
-  __pyx_t_6 = 0;
+  __pyx_v_self->error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_5);
+  __pyx_t_5 = 0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_2);
   __Pyx_XDECREF(__pyx_t_5);
-  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._FilelikeWriter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -103814,7 +103619,7 @@ static int __pyx_pf_4lxml_5etree_15_FilelikeWriter___cinit__(struct __pyx_obj_4l
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":383
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":386
  *         self.error_log = _ErrorLog()
  * 
  *     cdef tree.xmlOutputBuffer* _createOutputBuffer(             # <<<<<<<<<<<<<<
@@ -103832,7 +103637,7 @@ static xmlOutputBuffer *__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuff
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_createOutputBuffer", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":388
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":391
  *         c_buffer = tree.xmlOutputBufferCreateIO(
  *             <tree.xmlOutputWriteCallback>_writeFilelikeWriter, _closeFilelikeWriter,
  *             <python.PyObject*>self, enchandler)             # <<<<<<<<<<<<<<
@@ -103841,7 +103646,7 @@ static xmlOutputBuffer *__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuff
  */
   __pyx_v_c_buffer = xmlOutputBufferCreateIO(((xmlOutputWriteCallback)__pyx_f_4lxml_5etree__writeFilelikeWriter), __pyx_f_4lxml_5etree__closeFilelikeWriter, ((PyObject *)__pyx_v_self), __pyx_v_enchandler);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":389
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":392
  *             <tree.xmlOutputWriteCallback>_writeFilelikeWriter, _closeFilelikeWriter,
  *             <python.PyObject*>self, enchandler)
  *         if c_buffer is NULL:             # <<<<<<<<<<<<<<
@@ -103851,20 +103656,20 @@ static xmlOutputBuffer *__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuff
   __pyx_t_1 = ((__pyx_v_c_buffer == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":390
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":393
  *             <python.PyObject*>self, enchandler)
  *         if c_buffer is NULL:
  *             raise IOError, u"Could not create I/O writer context."             # <<<<<<<<<<<<<<
  *         return c_buffer
  * 
  */
-    __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_246), 0, 0);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_249), 0, 0);
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":391
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":394
  *         if c_buffer is NULL:
  *             raise IOError, u"Could not create I/O writer context."
  *         return c_buffer             # <<<<<<<<<<<<<<
@@ -103884,7 +103689,7 @@ static xmlOutputBuffer *__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuff
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":393
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":396
  *         return c_buffer
  * 
  *     cdef int write(self, char* c_buffer, int size):             # <<<<<<<<<<<<<<
@@ -103909,7 +103714,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("write", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":394
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":397
  * 
  *     cdef int write(self, char* c_buffer, int size):
  *         try:             # <<<<<<<<<<<<<<
@@ -103923,7 +103728,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":395
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":398
  *     cdef int write(self, char* c_buffer, int size):
  *         try:
  *             if self._filelike is None:             # <<<<<<<<<<<<<<
@@ -103934,53 +103739,53 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
       __pyx_t_5 = (__pyx_t_4 != 0);
       if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":396
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":399
  *         try:
  *             if self._filelike is None:
  *                 raise IOError, u"File is already closed"             # <<<<<<<<<<<<<<
  *             py_buffer = <bytes>c_buffer[:size]
  *             self._filelike.write(py_buffer)
  */
-        __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_247), 0, 0);
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 396; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __Pyx_Raise(__pyx_builtin_IOError, ((PyObject *)__pyx_kp_u_250), 0, 0);
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         goto __pyx_L11;
       }
       __pyx_L11:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":397
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":400
  *             if self._filelike is None:
  *                 raise IOError, u"File is already closed"
  *             py_buffer = <bytes>c_buffer[:size]             # <<<<<<<<<<<<<<
  *             self._filelike.write(py_buffer)
  *             return size
  */
-      __pyx_t_6 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_buffer + 0, __pyx_v_size - 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 397; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_6 = __Pyx_PyBytes_FromStringAndSize(__pyx_v_c_buffer + 0, __pyx_v_size - 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
       __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_6)));
       __pyx_v_py_buffer = ((PyObject*)__pyx_t_6);
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":398
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":401
  *                 raise IOError, u"File is already closed"
  *             py_buffer = <bytes>c_buffer[:size]
  *             self._filelike.write(py_buffer)             # <<<<<<<<<<<<<<
  *             return size
  *         except:
  */
-      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_filelike, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_filelike, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_INCREF(((PyObject *)__pyx_v_py_buffer));
       PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_v_py_buffer));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_py_buffer));
-      __pyx_t_8 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 398; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_8 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":399
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":402
  *             py_buffer = <bytes>c_buffer[:size]
  *             self._filelike.write(py_buffer)
  *             return size             # <<<<<<<<<<<<<<
@@ -104005,7 +103810,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":400
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":403
  *             self._filelike.write(py_buffer)
  *             return size
  *         except:             # <<<<<<<<<<<<<<
@@ -104014,12 +103819,12 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._FilelikeWriter.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_6);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":401
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":404
  *             return size
  *         except:
  *             self._exc_context._store_raised()             # <<<<<<<<<<<<<<
@@ -104028,7 +103833,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
  */
       ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_self->_exc_context->__pyx_vtab)->_store_raised(__pyx_v_self->_exc_context);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":402
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":405
  *         except:
  *             self._exc_context._store_raised()
  *             return -1             # <<<<<<<<<<<<<<
@@ -104079,7 +103884,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_write(struct __pyx_obj_4lxml_5
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":404
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":407
  *             return -1
  * 
  *     cdef int close(self):             # <<<<<<<<<<<<<<
@@ -104103,7 +103908,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("close", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":405
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":408
  * 
  *     cdef int close(self):
  *         try:             # <<<<<<<<<<<<<<
@@ -104117,7 +103922,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
     __Pyx_XGOTREF(__pyx_t_3);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":406
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":409
  *     cdef int close(self):
  *         try:
  *             if self._close_filelike is not None:             # <<<<<<<<<<<<<<
@@ -104128,21 +103933,21 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
       __pyx_t_5 = (__pyx_t_4 != 0);
       if (__pyx_t_5) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":407
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":410
  *         try:
  *             if self._close_filelike is not None:
  *                 self._close_filelike()             # <<<<<<<<<<<<<<
  *             # we should not close the file here as we didn't open it
  *             self._filelike = None
  */
-        __pyx_t_6 = PyObject_Call(__pyx_v_self->_close_filelike, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 407; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_6 = PyObject_Call(__pyx_v_self->_close_filelike, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         goto __pyx_L11;
       }
       __pyx_L11:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":409
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":412
  *                 self._close_filelike()
  *             # we should not close the file here as we didn't open it
  *             self._filelike = None             # <<<<<<<<<<<<<<
@@ -104155,7 +103960,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
       __Pyx_DECREF(__pyx_v_self->_filelike);
       __pyx_v_self->_filelike = Py_None;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":410
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":413
  *             # we should not close the file here as we didn't open it
  *             self._filelike = None
  *             return 0             # <<<<<<<<<<<<<<
@@ -104178,7 +103983,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
     __pyx_L3_error:;
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":411
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":414
  *             self._filelike = None
  *             return 0
  *         except:             # <<<<<<<<<<<<<<
@@ -104187,12 +103992,12 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._FilelikeWriter.close", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 411; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_7, &__pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 414; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_8);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":412
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":415
  *             return 0
  *         except:
  *             self._exc_context._store_raised()             # <<<<<<<<<<<<<<
@@ -104201,7 +104006,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
  */
       ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_self->_exc_context->__pyx_vtab)->_store_raised(__pyx_v_self->_exc_context);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":413
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":416
  *         except:
  *             self._exc_context._store_raised()
  *             return -1             # <<<<<<<<<<<<<<
@@ -104251,7 +104056,7 @@ static int __pyx_f_4lxml_5etree_15_FilelikeWriter_close(struct __pyx_obj_4lxml_5
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":415
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":418
  *             return -1
  * 
  * cdef int _writeFilelikeWriter(void* ctxt, char* c_buffer, int length):             # <<<<<<<<<<<<<<
@@ -104264,7 +104069,7 @@ static int __pyx_f_4lxml_5etree__writeFilelikeWriter(void *__pyx_v_ctxt, char *_
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_writeFilelikeWriter", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":416
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":419
  * 
  * cdef int _writeFilelikeWriter(void* ctxt, char* c_buffer, int length):
  *     return (<_FilelikeWriter>ctxt).write(c_buffer, length)             # <<<<<<<<<<<<<<
@@ -104280,7 +104085,7 @@ static int __pyx_f_4lxml_5etree__writeFilelikeWriter(void *__pyx_v_ctxt, char *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":418
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":421
  *     return (<_FilelikeWriter>ctxt).write(c_buffer, length)
  * 
  * cdef int _closeFilelikeWriter(void* ctxt):             # <<<<<<<<<<<<<<
@@ -104293,7 +104098,7 @@ static int __pyx_f_4lxml_5etree__closeFilelikeWriter(void *__pyx_v_ctxt) {
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("_closeFilelikeWriter", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":419
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":422
  * 
  * cdef int _closeFilelikeWriter(void* ctxt):
  *     return (<_FilelikeWriter>ctxt).close()             # <<<<<<<<<<<<<<
@@ -104309,7 +104114,7 @@ static int __pyx_f_4lxml_5etree__closeFilelikeWriter(void *__pyx_v_ctxt) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":421
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":424
  *     return (<_FilelikeWriter>ctxt).close()
  * 
  * cdef _tofilelike(f, _Element element, encoding, doctype, method,             # <<<<<<<<<<<<<<
@@ -104334,9 +104139,9 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   int __pyx_t_1;
   int __pyx_t_2;
   PyObject *__pyx_t_3 = NULL;
-  int __pyx_t_4;
+  PyObject *__pyx_t_4 = NULL;
   PyObject *__pyx_t_5 = NULL;
-  PyObject *__pyx_t_6 = NULL;
+  int __pyx_t_6;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -104345,7 +104150,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   __Pyx_INCREF(__pyx_v_encoding);
   __Pyx_INCREF(__pyx_v_doctype);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":425
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":428
  *                  bint pretty_print, bint with_tail, int standalone,
  *                  int compression):
  *     cdef python.PyThreadState* state = NULL             # <<<<<<<<<<<<<<
@@ -104354,7 +104159,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  */
   __pyx_v_state = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":426
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":429
  *                  int compression):
  *     cdef python.PyThreadState* state = NULL
  *     cdef _FilelikeWriter writer = None             # <<<<<<<<<<<<<<
@@ -104364,188 +104169,91 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   __Pyx_INCREF(Py_None);
   __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":432
- *     cdef const_xmlChar* c_doctype
- *     cdef int error_result
- *     if encoding is None:             # <<<<<<<<<<<<<<
- *         c_enc = NULL
- *     else:
- */
-  __pyx_t_1 = (__pyx_v_encoding == Py_None);
-  __pyx_t_2 = (__pyx_t_1 != 0);
-  if (__pyx_t_2) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":433
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":436
  *     cdef int error_result
- *     if encoding is None:
- *         c_enc = NULL             # <<<<<<<<<<<<<<
- *     else:
- *         encoding = _utf8(encoding)
- */
-    __pyx_v_c_enc = NULL;
-    goto __pyx_L3;
-  }
-  /*else*/ {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":435
- *         c_enc = NULL
- *     else:
- *         encoding = _utf8(encoding)             # <<<<<<<<<<<<<<
- *         c_enc = _cstr(encoding)
- *     if doctype is None:
- */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_encoding);
-    __pyx_v_encoding = __pyx_t_3;
-    __pyx_t_3 = 0;
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":436
- *     else:
- *         encoding = _utf8(encoding)
- *         c_enc = _cstr(encoding)             # <<<<<<<<<<<<<<
- *     if doctype is None:
- *         c_doctype = NULL
- */
-    __pyx_v_c_enc = PyBytes_AS_STRING(__pyx_v_encoding);
-  }
-  __pyx_L3:;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":437
- *         encoding = _utf8(encoding)
- *         c_enc = _cstr(encoding)
- *     if doctype is None:             # <<<<<<<<<<<<<<
- *         c_doctype = NULL
- *     else:
- */
-  __pyx_t_2 = (__pyx_v_doctype == Py_None);
-  __pyx_t_1 = (__pyx_t_2 != 0);
-  if (__pyx_t_1) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":438
- *         c_enc = _cstr(encoding)
- *     if doctype is None:
- *         c_doctype = NULL             # <<<<<<<<<<<<<<
- *     else:
- *         doctype = _utf8(doctype)
- */
-    __pyx_v_c_doctype = NULL;
-    goto __pyx_L4;
-  }
-  /*else*/ {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":440
- *         c_doctype = NULL
- *     else:
- *         doctype = _utf8(doctype)             # <<<<<<<<<<<<<<
- *         c_doctype = _xcstr(doctype)
- *     c_method = _findOutputMethod(method)
- */
-    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_doctype);
-    __pyx_v_doctype = __pyx_t_3;
-    __pyx_t_3 = 0;
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":441
- *     else:
- *         doctype = _utf8(doctype)
- *         c_doctype = _xcstr(doctype)             # <<<<<<<<<<<<<<
- *     c_method = _findOutputMethod(method)
- *     if c_method == OUTPUT_METHOD_TEXT:
- */
-    __pyx_v_c_doctype = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_doctype);
-  }
-  __pyx_L4:;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":442
- *         doctype = _utf8(doctype)
- *         c_doctype = _xcstr(doctype)
+ * 
  *     c_method = _findOutputMethod(method)             # <<<<<<<<<<<<<<
  *     if c_method == OUTPUT_METHOD_TEXT:
  *         data = _textToString(element._c_node, encoding, with_tail)
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree__findOutputMethod(__pyx_v_method); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_v_c_method = __pyx_t_4;
+  __pyx_t_1 = __pyx_f_4lxml_5etree__findOutputMethod(__pyx_v_method); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_v_c_method = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":443
- *         c_doctype = _xcstr(doctype)
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":437
+ * 
  *     c_method = _findOutputMethod(method)
  *     if c_method == OUTPUT_METHOD_TEXT:             # <<<<<<<<<<<<<<
  *         data = _textToString(element._c_node, encoding, with_tail)
  *         if compression:
  */
-  __pyx_t_1 = ((__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_TEXT) != 0);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_c_method == __pyx_e_4lxml_5etree_OUTPUT_METHOD_TEXT) != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":444
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":438
  *     c_method = _findOutputMethod(method)
  *     if c_method == OUTPUT_METHOD_TEXT:
  *         data = _textToString(element._c_node, encoding, with_tail)             # <<<<<<<<<<<<<<
  *         if compression:
  *             bytes_out = BytesIO()
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__textToString(__pyx_v_element->_c_node, __pyx_v_encoding, __pyx_v_with_tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__textToString(__pyx_v_element->_c_node, __pyx_v_encoding, __pyx_v_with_tail); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_data = __pyx_t_3;
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":445
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":439
  *     if c_method == OUTPUT_METHOD_TEXT:
  *         data = _textToString(element._c_node, encoding, with_tail)
  *         if compression:             # <<<<<<<<<<<<<<
  *             bytes_out = BytesIO()
- *             gzip_file = gzip.GzipFile(
+ *             gzip_file = GzipFile(
  */
-    __pyx_t_1 = (__pyx_v_compression != 0);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (__pyx_v_compression != 0);
+    if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":446
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":440
  *         data = _textToString(element._c_node, encoding, with_tail)
  *         if compression:
  *             bytes_out = BytesIO()             # <<<<<<<<<<<<<<
- *             gzip_file = gzip.GzipFile(
+ *             gzip_file = GzipFile(
  *                 fileobj=bytes_out, mode='wb', compresslevel=compression)
  */
-      __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_5etree_BytesIO, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_Call(__pyx_v_4lxml_5etree_BytesIO, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_v_bytes_out = __pyx_t_3;
       __pyx_t_3 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":447
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":441
  *         if compression:
  *             bytes_out = BytesIO()
- *             gzip_file = gzip.GzipFile(             # <<<<<<<<<<<<<<
+ *             gzip_file = GzipFile(             # <<<<<<<<<<<<<<
  *                 fileobj=bytes_out, mode='wb', compresslevel=compression)
  *             try:
  */
-      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_gzip, __pyx_n_s__GzipFile); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(((PyObject *)__pyx_t_5));
+      __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":448
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":442
  *             bytes_out = BytesIO()
- *             gzip_file = gzip.GzipFile(
+ *             gzip_file = GzipFile(
  *                 fileobj=bytes_out, mode='wb', compresslevel=compression)             # <<<<<<<<<<<<<<
  *             try:
  *                 gzip_file.write(data)
  */
-      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__fileobj), __pyx_v_bytes_out) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__mode), ((PyObject *)__pyx_n_s__wb)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_6 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
-      if (PyDict_SetItem(__pyx_t_5, ((PyObject *)__pyx_n_s__compresslevel), __pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __pyx_v_gzip_file = __pyx_t_6;
-      __pyx_t_6 = 0;
+      if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__fileobj), __pyx_v_bytes_out) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__mode), ((PyObject *)__pyx_n_s__wb)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__compresslevel), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+      __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_5etree_GzipFile, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 441; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
+      __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+      __pyx_v_gzip_file = __pyx_t_4;
+      __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":449
- *             gzip_file = gzip.GzipFile(
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":443
+ *             gzip_file = GzipFile(
  *                 fileobj=bytes_out, mode='wb', compresslevel=compression)
  *             try:             # <<<<<<<<<<<<<<
  *                 gzip_file.write(data)
@@ -104553,32 +104261,32 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  */
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":450
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":444
  *                 fileobj=bytes_out, mode='wb', compresslevel=compression)
  *             try:
  *                 gzip_file.write(data)             # <<<<<<<<<<<<<<
  *             finally:
  *                 gzip_file.close()
  */
-        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_gzip_file, __pyx_n_s__write); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
-        __Pyx_GOTREF(__pyx_t_6);
-        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
-        __Pyx_GOTREF(__pyx_t_5);
+        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_gzip_file, __pyx_n_s__write); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L6;}
+        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L6;}
+        __Pyx_GOTREF(__pyx_t_3);
         __Pyx_INCREF(__pyx_v_data);
-        PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_data);
+        PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data);
         __Pyx_GIVEREF(__pyx_v_data);
-        __pyx_t_3 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L8;}
-        __Pyx_GOTREF(__pyx_t_3);
-        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-        __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+        __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L6;}
+        __Pyx_GOTREF(__pyx_t_5);
+        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+        __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
+        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":452
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":446
  *                 gzip_file.write(data)
  *             finally:
  *                 gzip_file.close()             # <<<<<<<<<<<<<<
- *             data = bytes_out
+ *             data = bytes_out.getvalue()
  *         if _isString(f):
  */
       /*finally:*/ {
@@ -104586,32 +104294,32 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
         PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
         int __pyx_exc_lineno;
         __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
-        __pyx_why = 0; goto __pyx_L9;
-        __pyx_L8: {
+        __pyx_why = 0; goto __pyx_L7;
+        __pyx_L6: {
           __pyx_why = 4;
-          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
-          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
+          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
           __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
           __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
           __pyx_exc_lineno = __pyx_lineno;
-          goto __pyx_L9;
+          goto __pyx_L7;
         }
-        __pyx_L9:;
-        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_gzip_file, __pyx_n_s__close); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
-        __Pyx_GOTREF(__pyx_t_3);
-        __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+        __pyx_L7:;
+        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_gzip_file, __pyx_n_s__close); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
         __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+        __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+        __Pyx_GOTREF(__pyx_t_3);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        goto __pyx_L11;
-        __pyx_L10_error:;
+        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+        goto __pyx_L9;
+        __pyx_L8_error:;
         if (__pyx_why == 4) {
           Py_XDECREF(__pyx_exc_type);
           Py_XDECREF(__pyx_exc_value);
           Py_XDECREF(__pyx_exc_tb);
         }
         goto __pyx_L1_error;
-        __pyx_L11:;
+        __pyx_L9:;
         switch (__pyx_why) {
           case 4: {
             __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
@@ -104624,50 +104332,54 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
         }
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":453
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":447
  *             finally:
  *                 gzip_file.close()
- *             data = bytes_out             # <<<<<<<<<<<<<<
+ *             data = bytes_out.getvalue()             # <<<<<<<<<<<<<<
  *         if _isString(f):
  *             filename8 = _encodeFilename(f)
  */
-      __Pyx_INCREF(__pyx_v_bytes_out);
-      __Pyx_DECREF(__pyx_v_data);
-      __pyx_v_data = __pyx_v_bytes_out;
-      goto __pyx_L6;
+      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_bytes_out, __pyx_n_s__getvalue); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_3);
+      __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_5);
+      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+      __Pyx_DECREF_SET(__pyx_v_data, __pyx_t_5);
+      __pyx_t_5 = 0;
+      goto __pyx_L4;
     }
-    __pyx_L6:;
+    __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":454
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":448
  *                 gzip_file.close()
- *             data = bytes_out
+ *             data = bytes_out.getvalue()
  *         if _isString(f):             # <<<<<<<<<<<<<<
  *             filename8 = _encodeFilename(f)
  *             f = open(filename8, 'wb')
  */
-    __pyx_t_1 = (_isString(__pyx_v_f) != 0);
-    if (__pyx_t_1) {
+    __pyx_t_2 = (_isString(__pyx_v_f) != 0);
+    if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":455
- *             data = bytes_out
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":449
+ *             data = bytes_out.getvalue()
  *         if _isString(f):
  *             filename8 = _encodeFilename(f)             # <<<<<<<<<<<<<<
  *             f = open(filename8, 'wb')
  *             try:
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_f); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_f); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_v_filename8 = __pyx_t_5;
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":456
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":450
  *         if _isString(f):
  *             filename8 = _encodeFilename(f)
  *             f = open(filename8, 'wb')             # <<<<<<<<<<<<<<
  *             try:
  *                 f.write(data)
  */
-      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_v_filename8);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_filename8);
@@ -104675,14 +104387,13 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
       __Pyx_INCREF(((PyObject *)__pyx_n_s__wb));
       PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_n_s__wb));
       __Pyx_GIVEREF(((PyObject *)__pyx_n_s__wb));
-      __pyx_t_3 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __Pyx_DECREF(__pyx_v_f);
-      __pyx_v_f = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_f, __pyx_t_3);
       __pyx_t_3 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":457
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":451
  *             filename8 = _encodeFilename(f)
  *             f = open(filename8, 'wb')
  *             try:             # <<<<<<<<<<<<<<
@@ -104691,28 +104402,28 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  */
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":458
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":452
  *             f = open(filename8, 'wb')
  *             try:
  *                 f.write(data)             # <<<<<<<<<<<<<<
  *             finally:
  *                 f.close()
  */
-        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
+        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L12;}
         __Pyx_GOTREF(__pyx_t_3);
-        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L12;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_data);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_data);
         __Pyx_GIVEREF(__pyx_v_data);
-        __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 458; __pyx_clineno = __LINE__; goto __pyx_L14;}
-        __Pyx_GOTREF(__pyx_t_6);
+        __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 452; __pyx_clineno = __LINE__; goto __pyx_L12;}
+        __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":460
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":454
  *                 f.write(data)
  *             finally:
  *                 f.close()             # <<<<<<<<<<<<<<
@@ -104724,32 +104435,32 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
         PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
         int __pyx_exc_lineno;
         __pyx_exc_type = 0; __pyx_exc_value = 0; __pyx_exc_tb = 0; __pyx_exc_lineno = 0;
-        __pyx_why = 0; goto __pyx_L15;
-        __pyx_L14: {
+        __pyx_why = 0; goto __pyx_L13;
+        __pyx_L12: {
           __pyx_why = 4;
           __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
           __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
-          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
+          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
           __Pyx_ErrFetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
           __pyx_exc_lineno = __pyx_lineno;
-          goto __pyx_L15;
+          goto __pyx_L13;
         }
-        __pyx_L15:;
-        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__close); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
-        __Pyx_GOTREF(__pyx_t_6);
-        __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
+        __pyx_L13:;
+        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__close); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
+        __Pyx_GOTREF(__pyx_t_4);
+        __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L14_error;}
         __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        goto __pyx_L17;
-        __pyx_L16_error:;
+        goto __pyx_L15;
+        __pyx_L14_error:;
         if (__pyx_why == 4) {
           Py_XDECREF(__pyx_exc_type);
           Py_XDECREF(__pyx_exc_value);
           Py_XDECREF(__pyx_exc_tb);
         }
         goto __pyx_L1_error;
-        __pyx_L17:;
+        __pyx_L15:;
         switch (__pyx_why) {
           case 4: {
             __Pyx_ErrRestore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
@@ -104761,72 +104472,163 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
           }
         }
       }
-      goto __pyx_L12;
+      goto __pyx_L10;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":462
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":456
  *                 f.close()
  *         else:
  *             f.write(data)             # <<<<<<<<<<<<<<
  *         return
  * 
  */
-      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_f, __pyx_n_s__write); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __Pyx_GOTREF(__pyx_t_6);
+      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_data);
-      PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_data);
+      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_data);
       __Pyx_GIVEREF(__pyx_v_data);
-      __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+      __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     }
-    __pyx_L12:;
+    __pyx_L10:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":463
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":457
  *         else:
  *             f.write(data)
  *         return             # <<<<<<<<<<<<<<
  * 
- *     writer = _create_output_buffer(f, c_enc, compression, &c_buffer)
+ *     if encoding is None:
  */
     __Pyx_XDECREF(__pyx_r);
     __pyx_r = Py_None; __Pyx_INCREF(Py_None);
     goto __pyx_L0;
-    goto __pyx_L5;
+    goto __pyx_L3;
   }
-  __pyx_L5:;
+  __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":465
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":459
  *         return
  * 
+ *     if encoding is None:             # <<<<<<<<<<<<<<
+ *         c_enc = NULL
+ *     else:
+ */
+  __pyx_t_2 = (__pyx_v_encoding == Py_None);
+  __pyx_t_6 = (__pyx_t_2 != 0);
+  if (__pyx_t_6) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":460
+ * 
+ *     if encoding is None:
+ *         c_enc = NULL             # <<<<<<<<<<<<<<
+ *     else:
+ *         encoding = _utf8(encoding)
+ */
+    __pyx_v_c_enc = NULL;
+    goto __pyx_L16;
+  }
+  /*else*/ {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":462
+ *         c_enc = NULL
+ *     else:
+ *         encoding = _utf8(encoding)             # <<<<<<<<<<<<<<
+ *         c_enc = _cstr(encoding)
+ *     if doctype is None:
+ */
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_encoding)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_t_3);
+    __pyx_t_3 = 0;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":463
+ *     else:
+ *         encoding = _utf8(encoding)
+ *         c_enc = _cstr(encoding)             # <<<<<<<<<<<<<<
+ *     if doctype is None:
+ *         c_doctype = NULL
+ */
+    __pyx_v_c_enc = PyBytes_AS_STRING(__pyx_v_encoding);
+  }
+  __pyx_L16:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":464
+ *         encoding = _utf8(encoding)
+ *         c_enc = _cstr(encoding)
+ *     if doctype is None:             # <<<<<<<<<<<<<<
+ *         c_doctype = NULL
+ *     else:
+ */
+  __pyx_t_6 = (__pyx_v_doctype == Py_None);
+  __pyx_t_2 = (__pyx_t_6 != 0);
+  if (__pyx_t_2) {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":465
+ *         c_enc = _cstr(encoding)
+ *     if doctype is None:
+ *         c_doctype = NULL             # <<<<<<<<<<<<<<
+ *     else:
+ *         doctype = _utf8(doctype)
+ */
+    __pyx_v_c_doctype = NULL;
+    goto __pyx_L17;
+  }
+  /*else*/ {
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":467
+ *         c_doctype = NULL
+ *     else:
+ *         doctype = _utf8(doctype)             # <<<<<<<<<<<<<<
+ *         c_doctype = _xcstr(doctype)
+ * 
+ */
+    __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 467; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_doctype, __pyx_t_3);
+    __pyx_t_3 = 0;
+
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":468
+ *     else:
+ *         doctype = _utf8(doctype)
+ *         c_doctype = _xcstr(doctype)             # <<<<<<<<<<<<<<
+ * 
+ *     writer = _create_output_buffer(f, c_enc, compression, &c_buffer)
+ */
+    __pyx_v_c_doctype = (const xmlChar*)PyBytes_AS_STRING(__pyx_v_doctype);
+  }
+  __pyx_L17:;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":470
+ *         c_doctype = _xcstr(doctype)
+ * 
  *     writer = _create_output_buffer(f, c_enc, compression, &c_buffer)             # <<<<<<<<<<<<<<
  *     if writer is None:
  *         state = python.PyEval_SaveThread()
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree__create_output_buffer(__pyx_v_f, __pyx_v_c_enc, __pyx_v_compression, (&__pyx_v_c_buffer)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree__create_output_buffer(__pyx_v_f, __pyx_v_c_enc, __pyx_v_compression, (&__pyx_v_c_buffer)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__FilelikeWriter))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(((PyObject *)__pyx_v_writer));
-  __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_3);
+  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__FilelikeWriter))))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF_SET(__pyx_v_writer, ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_3));
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":466
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":471
  * 
  *     writer = _create_output_buffer(f, c_enc, compression, &c_buffer)
  *     if writer is None:             # <<<<<<<<<<<<<<
  *         state = python.PyEval_SaveThread()
  * 
  */
-  __pyx_t_1 = (((PyObject *)__pyx_v_writer) == Py_None);
-  __pyx_t_2 = (__pyx_t_1 != 0);
-  if (__pyx_t_2) {
+  __pyx_t_2 = (((PyObject *)__pyx_v_writer) == Py_None);
+  __pyx_t_6 = (__pyx_t_2 != 0);
+  if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":467
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":472
  *     writer = _create_output_buffer(f, c_enc, compression, &c_buffer)
  *     if writer is None:
  *         state = python.PyEval_SaveThread()             # <<<<<<<<<<<<<<
@@ -104838,7 +104640,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   }
   __pyx_L18:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":471
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":476
  *     _writeNodeToBuffer(c_buffer, element._c_node, c_enc, c_doctype, c_method,
  *                        write_xml_declaration, write_doctype,
  *                        pretty_print, with_tail, standalone)             # <<<<<<<<<<<<<<
@@ -104847,27 +104649,27 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  */
   __pyx_f_4lxml_5etree__writeNodeToBuffer(__pyx_v_c_buffer, __pyx_v_element->_c_node, __pyx_v_c_enc, __pyx_v_c_doctype, __pyx_v_c_method, __pyx_v_write_xml_declaration, __pyx_v_write_doctype, __pyx_v_pretty_print, __pyx_v_with_tail, __pyx_v_standalone);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":472
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":477
  *                        write_xml_declaration, write_doctype,
  *                        pretty_print, with_tail, standalone)
  *     error_result = c_buffer.error             # <<<<<<<<<<<<<<
  *     if error_result == xmlerror.XML_ERR_OK:
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  */
-  __pyx_t_4 = __pyx_v_c_buffer->error;
-  __pyx_v_error_result = __pyx_t_4;
+  __pyx_t_1 = __pyx_v_c_buffer->error;
+  __pyx_v_error_result = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":473
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":478
  *                        pretty_print, with_tail, standalone)
  *     error_result = c_buffer.error
  *     if error_result == xmlerror.XML_ERR_OK:             # <<<<<<<<<<<<<<
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  *         if error_result > 0:
  */
-  __pyx_t_2 = ((__pyx_v_error_result == XML_ERR_OK) != 0);
-  if (__pyx_t_2) {
+  __pyx_t_6 = ((__pyx_v_error_result == XML_ERR_OK) != 0);
+  if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":474
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":479
  *     error_result = c_buffer.error
  *     if error_result == xmlerror.XML_ERR_OK:
  *         error_result = tree.xmlOutputBufferClose(c_buffer)             # <<<<<<<<<<<<<<
@@ -104876,17 +104678,17 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
  */
     __pyx_v_error_result = xmlOutputBufferClose(__pyx_v_c_buffer);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":475
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":480
  *     if error_result == xmlerror.XML_ERR_OK:
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  *         if error_result > 0:             # <<<<<<<<<<<<<<
  *             error_result = xmlerror.XML_ERR_OK
  *     else:
  */
-    __pyx_t_2 = ((__pyx_v_error_result > 0) != 0);
-    if (__pyx_t_2) {
+    __pyx_t_6 = ((__pyx_v_error_result > 0) != 0);
+    if (__pyx_t_6) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":476
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":481
  *         error_result = tree.xmlOutputBufferClose(c_buffer)
  *         if error_result > 0:
  *             error_result = xmlerror.XML_ERR_OK             # <<<<<<<<<<<<<<
@@ -104901,7 +104703,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":478
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":483
  *             error_result = xmlerror.XML_ERR_OK
  *     else:
  *         tree.xmlOutputBufferClose(c_buffer)             # <<<<<<<<<<<<<<
@@ -104912,18 +104714,18 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   }
   __pyx_L19:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":479
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":484
  *     else:
  *         tree.xmlOutputBufferClose(c_buffer)
  *     if writer is None:             # <<<<<<<<<<<<<<
  *         python.PyEval_RestoreThread(state)
  *     else:
  */
-  __pyx_t_2 = (((PyObject *)__pyx_v_writer) == Py_None);
-  __pyx_t_1 = (__pyx_t_2 != 0);
-  if (__pyx_t_1) {
+  __pyx_t_6 = (((PyObject *)__pyx_v_writer) == Py_None);
+  __pyx_t_2 = (__pyx_t_6 != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":480
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":485
  *         tree.xmlOutputBufferClose(c_buffer)
  *     if writer is None:
  *         python.PyEval_RestoreThread(state)             # <<<<<<<<<<<<<<
@@ -104935,35 +104737,35 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":482
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":487
  *         python.PyEval_RestoreThread(state)
  *     else:
  *         writer._exc_context._raise_if_stored()             # <<<<<<<<<<<<<<
  *     if error_result != xmlerror.XML_ERR_OK:
  *         _raiseSerialisationError(error_result)
  */
-    __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_writer->_exc_context->__pyx_vtab)->_raise_if_stored(__pyx_v_writer->_exc_context); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_writer->_exc_context->__pyx_vtab)->_raise_if_stored(__pyx_v_writer->_exc_context); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L21:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":483
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":488
  *     else:
  *         writer._exc_context._raise_if_stored()
  *     if error_result != xmlerror.XML_ERR_OK:             # <<<<<<<<<<<<<<
  *         _raiseSerialisationError(error_result)
  * 
  */
-  __pyx_t_1 = ((__pyx_v_error_result != XML_ERR_OK) != 0);
-  if (__pyx_t_1) {
+  __pyx_t_2 = ((__pyx_v_error_result != XML_ERR_OK) != 0);
+  if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":484
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":489
  *         writer._exc_context._raise_if_stored()
  *     if error_result != xmlerror.XML_ERR_OK:
  *         _raiseSerialisationError(error_result)             # <<<<<<<<<<<<<<
  * 
  * cdef _create_output_buffer(f, const_char* c_enc, int compression,
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 489; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L22;
@@ -104974,8 +104776,8 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
   __Pyx_XDECREF(__pyx_t_5);
-  __Pyx_XDECREF(__pyx_t_6);
   __Pyx_AddTraceback("lxml.etree._tofilelike", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = 0;
   __pyx_L0:;
@@ -104992,7 +104794,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelike(PyObject *__pyx_v_f, struct Lx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":486
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":491
  *         _raiseSerialisationError(error_result)
  * 
  * cdef _create_output_buffer(f, const_char* c_enc, int compression,             # <<<<<<<<<<<<<<
@@ -105022,7 +104824,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_create_output_buffer", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":490
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":495
  *     cdef tree.xmlOutputBuffer* c_buffer
  *     cdef _FilelikeWriter writer
  *     enchandler = tree.xmlFindCharEncodingHandler(c_enc)             # <<<<<<<<<<<<<<
@@ -105031,7 +104833,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  */
   __pyx_v_enchandler = xmlFindCharEncodingHandler(__pyx_v_c_enc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":491
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":496
  *     cdef _FilelikeWriter writer
  *     enchandler = tree.xmlFindCharEncodingHandler(c_enc)
  *     if enchandler is NULL:             # <<<<<<<<<<<<<<
@@ -105041,7 +104843,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
   __pyx_t_1 = ((__pyx_v_enchandler == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":493
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":498
  *     if enchandler is NULL:
  *         raise LookupError(u"unknown encoding: '%s'" %
  *                           c_enc.decode(u'UTF-8') if c_enc is not NULL else u'')             # <<<<<<<<<<<<<<
@@ -105050,16 +104852,16 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  */
     if (((__pyx_v_c_enc != NULL) != 0)) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":492
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":497
  *     enchandler = tree.xmlFindCharEncodingHandler(c_enc)
  *     if enchandler is NULL:
  *         raise LookupError(u"unknown encoding: '%s'" %             # <<<<<<<<<<<<<<
  *                           c_enc.decode(u'UTF-8') if c_enc is not NULL else u'')
  *     try:
  */
-      __pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_v_c_enc, 0, strlen(__pyx_v_c_enc), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_v_c_enc, 0, strlen(__pyx_v_c_enc), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_177), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_180), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
       __pyx_t_2 = ((PyObject *)__pyx_t_4);
@@ -105068,22 +104870,22 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
       __Pyx_INCREF(((PyObject *)__pyx_kp_u_25));
       __pyx_t_2 = ((PyObject *)__pyx_kp_u_25);
     }
-    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
     __Pyx_GIVEREF(__pyx_t_2);
     __pyx_t_2 = 0;
-    __pyx_t_2 = PyObject_Call(__pyx_builtin_LookupError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_Call(__pyx_builtin_LookupError, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":494
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":499
  *         raise LookupError(u"unknown encoding: '%s'" %
  *                           c_enc.decode(u'UTF-8') if c_enc is not NULL else u'')
  *     try:             # <<<<<<<<<<<<<<
@@ -105097,7 +104899,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
     __Pyx_XGOTREF(__pyx_t_7);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":495
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":500
  *                           c_enc.decode(u'UTF-8') if c_enc is not NULL else u'')
  *     try:
  *         if _isString(f):             # <<<<<<<<<<<<<<
@@ -105107,19 +104909,19 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
       __pyx_t_1 = (_isString(__pyx_v_f) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":496
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":501
  *     try:
  *         if _isString(f):
  *             filename8 = _encodeFilename(f)             # <<<<<<<<<<<<<<
  *             c_buffer = tree.xmlOutputBufferCreateFilename(
  *                 _cstr(filename8), enchandler, compression)
  */
-        __pyx_t_2 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_2 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_f); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 501; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_2);
         __pyx_v_filename8 = __pyx_t_2;
         __pyx_t_2 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":498
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":503
  *             filename8 = _encodeFilename(f)
  *             c_buffer = tree.xmlOutputBufferCreateFilename(
  *                 _cstr(filename8), enchandler, compression)             # <<<<<<<<<<<<<<
@@ -105128,7 +104930,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  */
         __pyx_v_c_buffer = xmlOutputBufferCreateFilename(PyBytes_AS_STRING(__pyx_v_filename8), __pyx_v_enchandler, __pyx_v_compression);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":499
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":504
  *             c_buffer = tree.xmlOutputBufferCreateFilename(
  *                 _cstr(filename8), enchandler, compression)
  *             if c_buffer is NULL:             # <<<<<<<<<<<<<<
@@ -105138,7 +104940,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
         __pyx_t_1 = ((__pyx_v_c_buffer == NULL) != 0);
         if (__pyx_t_1) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":500
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":505
  *                 _cstr(filename8), enchandler, compression)
  *             if c_buffer is NULL:
  *                 return python.PyErr_SetFromErrno(IOError) # raises IOError             # <<<<<<<<<<<<<<
@@ -105146,7 +104948,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *         elif hasattr(f, 'write'):
  */
           __Pyx_XDECREF(__pyx_r);
-          __pyx_t_2 = PyErr_SetFromErrno(__pyx_builtin_IOError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 500; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+          __pyx_t_2 = PyErr_SetFromErrno(__pyx_builtin_IOError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           __Pyx_GOTREF(__pyx_t_2);
           __pyx_r = __pyx_t_2;
           __pyx_t_2 = 0;
@@ -105155,7 +104957,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
         }
         __pyx_L13:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":501
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":506
  *             if c_buffer is NULL:
  *                 return python.PyErr_SetFromErrno(IOError) # raises IOError
  *             writer = None             # <<<<<<<<<<<<<<
@@ -105167,56 +104969,56 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
         goto __pyx_L12;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":502
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":507
  *                 return python.PyErr_SetFromErrno(IOError) # raises IOError
  *             writer = None
  *         elif hasattr(f, 'write'):             # <<<<<<<<<<<<<<
  *             writer = _FilelikeWriter(f, compression=compression)
  *             c_buffer = writer._createOutputBuffer(enchandler)
  */
-      __pyx_t_1 = PyObject_HasAttr(__pyx_v_f, ((PyObject *)__pyx_n_s__write)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+      __pyx_t_1 = PyObject_HasAttr(__pyx_v_f, ((PyObject *)__pyx_n_s__write)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
       __pyx_t_8 = (__pyx_t_1 != 0);
       if (__pyx_t_8) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":503
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":508
  *             writer = None
  *         elif hasattr(f, 'write'):
  *             writer = _FilelikeWriter(f, compression=compression)             # <<<<<<<<<<<<<<
  *             c_buffer = writer._createOutputBuffer(enchandler)
  *         else:
  */
-        __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_2);
         __Pyx_INCREF(__pyx_v_f);
         PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_f);
         __Pyx_GIVEREF(__pyx_v_f);
-        __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-        __pyx_t_3 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_3 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_3);
-        if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__compression), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__compression), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-        __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FilelikeWriter)), ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FilelikeWriter)), ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
         __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
         __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_3);
         __pyx_t_3 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":504
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":509
  *         elif hasattr(f, 'write'):
  *             writer = _FilelikeWriter(f, compression=compression)
  *             c_buffer = writer._createOutputBuffer(enchandler)             # <<<<<<<<<<<<<<
  *         else:
  *             raise TypeError(
  */
-        __pyx_t_9 = __pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer(__pyx_v_writer, __pyx_v_enchandler); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_9 = __pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer(__pyx_v_writer, __pyx_v_enchandler); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __pyx_v_c_buffer = __pyx_t_9;
         goto __pyx_L12;
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":508
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":513
  *             raise TypeError(
  *                 u"File or filename expected, got '%s'" %
  *                 python._fqtypename(f).decode('UTF-8'))             # <<<<<<<<<<<<<<
@@ -105224,22 +105026,22 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  *         tree.xmlCharEncCloseFunc(enchandler)
  */
         __pyx_t_10 = _fqtypename(__pyx_v_f);
-        __pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_10, 0, strlen(__pyx_t_10), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_3 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_10, 0, strlen(__pyx_t_10), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-        __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_248), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_251), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_4));
         __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_3);
         PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_t_4));
         __Pyx_GIVEREF(((PyObject *)__pyx_t_4));
         __pyx_t_4 = 0;
-        __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_4 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
         __Pyx_Raise(__pyx_t_4, 0, 0, 0);
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
       }
       __pyx_L12:;
     }
@@ -105258,7 +105060,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":509
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":514
  *                 u"File or filename expected, got '%s'" %
  *                 python._fqtypename(f).decode('UTF-8'))
  *     except:             # <<<<<<<<<<<<<<
@@ -105267,12 +105069,12 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._create_output_buffer", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+      if (__Pyx_GetException(&__pyx_t_4, &__pyx_t_3, &__pyx_t_2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_GOTREF(__pyx_t_2);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":510
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":515
  *                 python._fqtypename(f).decode('UTF-8'))
  *     except:
  *         tree.xmlCharEncCloseFunc(enchandler)             # <<<<<<<<<<<<<<
@@ -105281,7 +105083,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  */
       xmlCharEncCloseFunc(__pyx_v_enchandler);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":511
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":516
  *     except:
  *         tree.xmlCharEncCloseFunc(enchandler)
  *         raise             # <<<<<<<<<<<<<<
@@ -105293,7 +105095,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
       __Pyx_GIVEREF(__pyx_t_2);
       __Pyx_ErrRestore(__pyx_t_4, __pyx_t_3, __pyx_t_2);
       __pyx_t_4 = 0; __pyx_t_3 = 0; __pyx_t_2 = 0; 
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -105313,7 +105115,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
     __pyx_L11_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":512
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":517
  *         tree.xmlCharEncCloseFunc(enchandler)
  *         raise
  *     c_buffer_ret[0] = c_buffer             # <<<<<<<<<<<<<<
@@ -105322,7 +105124,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
  */
   (__pyx_v_c_buffer_ret[0]) = __pyx_v_c_buffer;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":513
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":518
  *         raise
  *     c_buffer_ret[0] = c_buffer
  *     return writer             # <<<<<<<<<<<<<<
@@ -105350,7 +105152,7 @@ static PyObject *__pyx_f_4lxml_5etree__create_output_buffer(PyObject *__pyx_v_f,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":515
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":520
  *     return writer
  * 
  * cdef xmlChar **_convert_ns_prefixes(tree.xmlDict* c_dict, ns_prefixes) except NULL:             # <<<<<<<<<<<<<<
@@ -105382,17 +105184,17 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_convert_ns_prefixes", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":516
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":521
  * 
  * cdef xmlChar **_convert_ns_prefixes(tree.xmlDict* c_dict, ns_prefixes) except NULL:
  *     cdef size_t i, num_ns_prefixes = len(ns_prefixes)             # <<<<<<<<<<<<<<
  *     # Need to allocate one extra memory block to handle last NULL entry
  *     c_ns_prefixes = <xmlChar **>python.PyMem_Malloc(sizeof(xmlChar*) * (num_ns_prefixes + 1))
  */
-  __pyx_t_1 = PyObject_Length(__pyx_v_ns_prefixes); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Length(__pyx_v_ns_prefixes); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_num_ns_prefixes = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":518
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":523
  *     cdef size_t i, num_ns_prefixes = len(ns_prefixes)
  *     # Need to allocate one extra memory block to handle last NULL entry
  *     c_ns_prefixes = <xmlChar **>python.PyMem_Malloc(sizeof(xmlChar*) * (num_ns_prefixes + 1))             # <<<<<<<<<<<<<<
@@ -105401,7 +105203,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
  */
   __pyx_v_c_ns_prefixes = ((xmlChar **)PyMem_Malloc(((sizeof(xmlChar *)) * (__pyx_v_num_ns_prefixes + 1))));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":519
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":524
  *     # Need to allocate one extra memory block to handle last NULL entry
  *     c_ns_prefixes = <xmlChar **>python.PyMem_Malloc(sizeof(xmlChar*) * (num_ns_prefixes + 1))
  *     i = 0             # <<<<<<<<<<<<<<
@@ -105410,7 +105212,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
  */
   __pyx_v_i = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":520
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":525
  *     c_ns_prefixes = <xmlChar **>python.PyMem_Malloc(sizeof(xmlChar*) * (num_ns_prefixes + 1))
  *     i = 0
  *     try:             # <<<<<<<<<<<<<<
@@ -105424,7 +105226,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
     __Pyx_XGOTREF(__pyx_t_4);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":521
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":526
  *     i = 0
  *     try:
  *         for prefix in ns_prefixes:             # <<<<<<<<<<<<<<
@@ -105435,7 +105237,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
         __pyx_t_5 = __pyx_v_ns_prefixes; __Pyx_INCREF(__pyx_t_5); __pyx_t_1 = 0;
         __pyx_t_6 = NULL;
       } else {
-        __pyx_t_1 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_ns_prefixes); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_1 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_ns_prefixes); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
       }
@@ -105443,46 +105245,44 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
         if (!__pyx_t_6 && PyList_CheckExact(__pyx_t_5)) {
           if (__pyx_t_1 >= PyList_GET_SIZE(__pyx_t_5)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_1); __Pyx_INCREF(__pyx_t_7); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_1); __Pyx_INCREF(__pyx_t_7); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
           #else
-          __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
           #endif
         } else if (!__pyx_t_6 && PyTuple_CheckExact(__pyx_t_5)) {
           if (__pyx_t_1 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_1); __Pyx_INCREF(__pyx_t_7); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_1); __Pyx_INCREF(__pyx_t_7); __pyx_t_1++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
           #else
-          __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_1); __pyx_t_1++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
           #endif
         } else {
           __pyx_t_7 = __pyx_t_6(__pyx_t_5);
           if (unlikely(!__pyx_t_7)) {
             if (PyErr_Occurred()) {
               if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-              else {__pyx_filename = __pyx_f[6]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+              else {__pyx_filename = __pyx_f[6]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
             }
             break;
           }
           __Pyx_GOTREF(__pyx_t_7);
         }
-        __Pyx_XDECREF(__pyx_v_prefix);
-        __pyx_v_prefix = __pyx_t_7;
+        __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_7);
         __pyx_t_7 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":522
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":527
  *     try:
  *         for prefix in ns_prefixes:
  *              prefix_utf = _utf8(prefix)             # <<<<<<<<<<<<<<
  *              c_prefix = tree.xmlDictExists(c_dict, _xcstr(prefix_utf), len(prefix_utf))
  *              if c_prefix:
  */
-        __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_prefix)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_prefix)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_7);
-        __Pyx_XDECREF(((PyObject *)__pyx_v_prefix_utf));
-        __pyx_v_prefix_utf = ((PyObject*)__pyx_t_7);
+        __Pyx_XDECREF_SET(__pyx_v_prefix_utf, ((PyObject*)__pyx_t_7));
         __pyx_t_7 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":523
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":528
  *         for prefix in ns_prefixes:
  *              prefix_utf = _utf8(prefix)
  *              c_prefix = tree.xmlDictExists(c_dict, _xcstr(prefix_utf), len(prefix_utf))             # <<<<<<<<<<<<<<
@@ -105491,12 +105291,12 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
  */
         if (unlikely(((PyObject *)__pyx_v_prefix_utf) == Py_None)) {
           PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
-        __pyx_t_8 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_prefix_utf)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 523; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        __pyx_t_8 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_prefix_utf)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __pyx_v_c_prefix = xmlDictExists(__pyx_v_c_dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_prefix_utf)), __pyx_t_8);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":524
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":529
  *              prefix_utf = _utf8(prefix)
  *              c_prefix = tree.xmlDictExists(c_dict, _xcstr(prefix_utf), len(prefix_utf))
  *              if c_prefix:             # <<<<<<<<<<<<<<
@@ -105506,7 +105306,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
         __pyx_t_9 = (__pyx_v_c_prefix != 0);
         if (__pyx_t_9) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":526
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":531
  *              if c_prefix:
  *                  # unknown prefixes do not need to get serialised
  *                  c_ns_prefixes[i] = <xmlChar*>c_prefix             # <<<<<<<<<<<<<<
@@ -105515,7 +105315,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
  */
           (__pyx_v_c_ns_prefixes[__pyx_v_i]) = ((xmlChar *)__pyx_v_c_prefix);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":527
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":532
  *                  # unknown prefixes do not need to get serialised
  *                  c_ns_prefixes[i] = <xmlChar*>c_prefix
  *                  i += 1             # <<<<<<<<<<<<<<
@@ -105537,7 +105337,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":528
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":533
  *                  c_ns_prefixes[i] = <xmlChar*>c_prefix
  *                  i += 1
  *     except:             # <<<<<<<<<<<<<<
@@ -105546,12 +105346,12 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._convert_ns_prefixes", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 528; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_7, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_10);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":529
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":534
  *                  i += 1
  *     except:
  *         python.PyMem_Free(c_ns_prefixes)             # <<<<<<<<<<<<<<
@@ -105560,7 +105360,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
  */
       PyMem_Free(__pyx_v_c_ns_prefixes);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":530
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":535
  *     except:
  *         python.PyMem_Free(c_ns_prefixes)
  *         raise             # <<<<<<<<<<<<<<
@@ -105572,7 +105372,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
       __Pyx_GIVEREF(__pyx_t_10);
       __Pyx_ErrRestore(__pyx_t_5, __pyx_t_7, __pyx_t_10);
       __pyx_t_5 = 0; __pyx_t_7 = 0; __pyx_t_10 = 0; 
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L5_except_error;}
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
@@ -105592,7 +105392,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
     __pyx_L10_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":532
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":537
  *         raise
  * 
  *     c_ns_prefixes[i] = NULL  # append end marker             # <<<<<<<<<<<<<<
@@ -105601,7 +105401,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
  */
   (__pyx_v_c_ns_prefixes[__pyx_v_i]) = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":533
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":538
  * 
  *     c_ns_prefixes[i] = NULL  # append end marker
  *     return c_ns_prefixes             # <<<<<<<<<<<<<<
@@ -105626,7 +105426,7 @@ static xmlChar **__pyx_f_4lxml_5etree__convert_ns_prefixes(xmlDict *__pyx_v_c_di
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":535
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":540
  *     return c_ns_prefixes
  * 
  * cdef _tofilelikeC14N(f, _Element element, bint exclusive, bint with_comments,             # <<<<<<<<<<<<<<
@@ -105671,7 +105471,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_tofilelikeC14N", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":537
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":542
  * cdef _tofilelikeC14N(f, _Element element, bint exclusive, bint with_comments,
  *                      int compression, inclusive_ns_prefixes):
  *     cdef _FilelikeWriter writer = None             # <<<<<<<<<<<<<<
@@ -105681,7 +105481,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
   __Pyx_INCREF(Py_None);
   __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":539
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":544
  *     cdef _FilelikeWriter writer = None
  *     cdef tree.xmlOutputBuffer* c_buffer
  *     cdef xmlChar **c_inclusive_ns_prefixes = NULL             # <<<<<<<<<<<<<<
@@ -105690,7 +105490,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
   __pyx_v_c_inclusive_ns_prefixes = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":543
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":548
  *     cdef xmlDoc* c_base_doc
  *     cdef xmlDoc* c_doc
  *     cdef int bytes_count, error = 0             # <<<<<<<<<<<<<<
@@ -105699,7 +105499,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
   __pyx_v_error = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":545
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":550
  *     cdef int bytes_count, error = 0
  * 
  *     c_base_doc = element._c_node.doc             # <<<<<<<<<<<<<<
@@ -105709,17 +105509,17 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
   __pyx_t_1 = __pyx_v_element->_c_node->doc;
   __pyx_v_c_base_doc = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":546
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":551
  * 
  *     c_base_doc = element._c_node.doc
  *     c_doc = _fakeRootDoc(c_base_doc, element._c_node)             # <<<<<<<<<<<<<<
  *     try:
  *         c_inclusive_ns_prefixes = (
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_c_base_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_c_base_doc, __pyx_v_element->_c_node); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":547
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":552
  *     c_base_doc = element._c_node.doc
  *     c_doc = _fakeRootDoc(c_base_doc, element._c_node)
  *     try:             # <<<<<<<<<<<<<<
@@ -105728,28 +105528,28 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":550
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":555
  *         c_inclusive_ns_prefixes = (
  *             _convert_ns_prefixes(c_doc.dict, inclusive_ns_prefixes)
  *             if inclusive_ns_prefixes else NULL)             # <<<<<<<<<<<<<<
  * 
  *         if _isString(f):
  */
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 550; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 555; __pyx_clineno = __LINE__; goto __pyx_L4;}
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":549
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":554
  *     try:
  *         c_inclusive_ns_prefixes = (
  *             _convert_ns_prefixes(c_doc.dict, inclusive_ns_prefixes)             # <<<<<<<<<<<<<<
  *             if inclusive_ns_prefixes else NULL)
  * 
  */
-      __pyx_t_4 = __pyx_f_4lxml_5etree__convert_ns_prefixes(__pyx_v_c_doc->dict, __pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_4 = __pyx_f_4lxml_5etree__convert_ns_prefixes(__pyx_v_c_doc->dict, __pyx_v_inclusive_ns_prefixes); if (unlikely(__pyx_t_4 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 554; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __pyx_t_2 = __pyx_t_4;
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":550
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":555
  *         c_inclusive_ns_prefixes = (
  *             _convert_ns_prefixes(c_doc.dict, inclusive_ns_prefixes)
  *             if inclusive_ns_prefixes else NULL)             # <<<<<<<<<<<<<<
@@ -105760,7 +105560,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     }
     __pyx_v_c_inclusive_ns_prefixes = __pyx_t_2;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":552
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":557
  *             if inclusive_ns_prefixes else NULL)
  * 
  *         if _isString(f):             # <<<<<<<<<<<<<<
@@ -105770,19 +105570,19 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     __pyx_t_3 = (_isString(__pyx_v_f) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":553
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":558
  * 
  *         if _isString(f):
  *             filename8 = _encodeFilename(f)             # <<<<<<<<<<<<<<
  *             c_filename = _cstr(filename8)
  *             with nogil:
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_f); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 553; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_f); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 558; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_v_filename8 = __pyx_t_5;
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":554
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":559
  *         if _isString(f):
  *             filename8 = _encodeFilename(f)
  *             c_filename = _cstr(filename8)             # <<<<<<<<<<<<<<
@@ -105791,7 +105591,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
       __pyx_v_c_filename = PyBytes_AS_STRING(__pyx_v_filename8);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":555
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":560
  *             filename8 = _encodeFilename(f)
  *             c_filename = _cstr(filename8)
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -105805,7 +105605,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
           #endif
           /*try:*/ {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":558
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":563
  *                 error = c14n.xmlC14NDocSave(
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  *                     with_comments, c_filename, compression)             # <<<<<<<<<<<<<<
@@ -105815,7 +105615,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
             __pyx_v_error = xmlC14NDocSave(__pyx_v_c_doc, NULL, __pyx_v_exclusive, __pyx_v_c_inclusive_ns_prefixes, __pyx_v_with_comments, __pyx_v_c_filename, __pyx_v_compression);
           }
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":555
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":560
  *             filename8 = _encodeFilename(f)
  *             c_filename = _cstr(filename8)
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -105831,54 +105631,53 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
       goto __pyx_L6;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":559
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":564
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  *                     with_comments, c_filename, compression)
  *         elif hasattr(f, 'write'):             # <<<<<<<<<<<<<<
  *             writer   = _FilelikeWriter(f, compression=compression)
  *             c_buffer = writer._createOutputBuffer(NULL)
  */
-    __pyx_t_3 = PyObject_HasAttr(__pyx_v_f, ((PyObject *)__pyx_n_s__write)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 559; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_3 = PyObject_HasAttr(__pyx_v_f, ((PyObject *)__pyx_n_s__write)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __pyx_t_6 = (__pyx_t_3 != 0);
     if (__pyx_t_6) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":560
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":565
  *                     with_comments, c_filename, compression)
  *         elif hasattr(f, 'write'):
  *             writer   = _FilelikeWriter(f, compression=compression)             # <<<<<<<<<<<<<<
  *             c_buffer = writer._createOutputBuffer(NULL)
  *             with writer.error_log:
  */
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_v_f);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_f);
       __Pyx_GIVEREF(__pyx_v_f);
-      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-      __pyx_t_8 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_8 = PyInt_FromLong(__pyx_v_compression); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(__pyx_t_8);
-      if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__compression), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      if (PyDict_SetItem(__pyx_t_7, ((PyObject *)__pyx_n_s__compression), __pyx_t_8) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-      __pyx_t_8 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FilelikeWriter)), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_8 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FilelikeWriter)), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_v_writer));
-      __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_8);
+      __Pyx_DECREF_SET(__pyx_v_writer, ((struct __pyx_obj_4lxml_5etree__FilelikeWriter *)__pyx_t_8));
       __pyx_t_8 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":561
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":566
  *         elif hasattr(f, 'write'):
  *             writer   = _FilelikeWriter(f, compression=compression)
  *             c_buffer = writer._createOutputBuffer(NULL)             # <<<<<<<<<<<<<<
  *             with writer.error_log:
  *                 bytes_count = c14n.xmlC14NDocSaveTo(
  */
-      __pyx_t_9 = __pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer(__pyx_v_writer, NULL); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_9 = __pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer(__pyx_v_writer, NULL); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 566; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __pyx_v_c_buffer = __pyx_t_9;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":562
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":567
  *             writer   = _FilelikeWriter(f, compression=compression)
  *             c_buffer = writer._createOutputBuffer(NULL)
  *             with writer.error_log:             # <<<<<<<<<<<<<<
@@ -105886,9 +105685,9 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  */
       /*with:*/ {
-        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_writer->error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
+        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_writer->error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L4;}
         __Pyx_GOTREF(__pyx_t_10);
-        __pyx_t_11 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_writer->error_log); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+        __pyx_t_11 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_writer->error_log); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
         /*try:*/ {
           {
             __Pyx_ExceptionSave(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
@@ -105897,7 +105696,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
             __Pyx_XGOTREF(__pyx_t_14);
             /*try:*/ {
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":565
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":570
  *                 bytes_count = c14n.xmlC14NDocSaveTo(
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  *                     with_comments, c_buffer)             # <<<<<<<<<<<<<<
@@ -105906,7 +105705,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
               __pyx_v_bytes_count = xmlC14NDocSaveTo(__pyx_v_c_doc, NULL, __pyx_v_exclusive, __pyx_v_c_inclusive_ns_prefixes, __pyx_v_with_comments, __pyx_v_c_buffer);
 
-              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":566
+              /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":571
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  *                     with_comments, c_buffer)
  *                 error = tree.xmlOutputBufferClose(c_buffer)             # <<<<<<<<<<<<<<
@@ -105923,7 +105722,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
             __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
             __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":562
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":567
  *             writer   = _FilelikeWriter(f, compression=compression)
  *             c_buffer = writer._createOutputBuffer(NULL)
  *             with writer.error_log:             # <<<<<<<<<<<<<<
@@ -105932,11 +105731,11 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  */
             /*except:*/ {
               __Pyx_AddTraceback("lxml.etree._tofilelikeC14N", __pyx_clineno, __pyx_lineno, __pyx_filename);
-              if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              if (__Pyx_GetException(&__pyx_t_8, &__pyx_t_7, &__pyx_t_5) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
               __Pyx_GOTREF(__pyx_t_8);
               __Pyx_GOTREF(__pyx_t_7);
               __Pyx_GOTREF(__pyx_t_5);
-              __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
               __Pyx_GOTREF(__pyx_t_15);
               __Pyx_INCREF(__pyx_t_8);
               PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_8);
@@ -105949,11 +105748,11 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
               __Pyx_GIVEREF(__pyx_t_5);
               __pyx_t_16 = PyObject_Call(__pyx_t_10, __pyx_t_15, NULL);
               __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
-              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              if (unlikely(!__pyx_t_16)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
               __Pyx_GOTREF(__pyx_t_16);
               __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_16);
               __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
-              if (__pyx_t_6 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+              if (__pyx_t_6 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
               __pyx_t_3 = ((!(__pyx_t_6 != 0)) != 0);
               if (__pyx_t_3) {
                 __Pyx_GIVEREF(__pyx_t_8);
@@ -105961,7 +105760,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
                 __Pyx_GIVEREF(__pyx_t_5);
                 __Pyx_ErrRestore(__pyx_t_8, __pyx_t_7, __pyx_t_5);
                 __pyx_t_8 = 0; __pyx_t_7 = 0; __pyx_t_5 = 0; 
-                {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
+                {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L16_except_error;}
                 goto __pyx_L24;
               }
               __pyx_L24:;
@@ -105987,13 +105786,13 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
         }
         /*finally:*/ {
           if (__pyx_t_10) {
-            __pyx_t_14 = PyObject_Call(__pyx_t_10, __pyx_k_tuple_249, NULL);
+            __pyx_t_14 = PyObject_Call(__pyx_t_10, __pyx_k_tuple_252, NULL);
             __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
-            if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
+            if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L4;}
             __Pyx_GOTREF(__pyx_t_14);
             __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_14);
             __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
-            if (__pyx_t_3 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L4;}
+            if (__pyx_t_3 < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L4;}
           }
         }
         goto __pyx_L25;
@@ -106003,7 +105802,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
         __pyx_L25:;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":567
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":572
  *                     with_comments, c_buffer)
  *                 error = tree.xmlOutputBufferClose(c_buffer)
  *             if bytes_count < 0:             # <<<<<<<<<<<<<<
@@ -106013,7 +105812,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
       __pyx_t_3 = ((__pyx_v_bytes_count < 0) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":568
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":573
  *                 error = tree.xmlOutputBufferClose(c_buffer)
  *             if bytes_count < 0:
  *                 error = bytes_count             # <<<<<<<<<<<<<<
@@ -106028,7 +105827,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":571
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":576
  *         else:
  *             raise TypeError(u"File or filename expected, got '%s'" %
  *                             python._fqtypename(f).decode('UTF-8'))             # <<<<<<<<<<<<<<
@@ -106036,27 +105835,27 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
  *         _destroyFakeDoc(c_base_doc, c_doc)
  */
       __pyx_t_17 = _fqtypename(__pyx_v_f);
-      __pyx_t_5 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_17, 0, strlen(__pyx_t_17), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 571; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_5 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_17, 0, strlen(__pyx_t_17), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-      __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_248), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_251), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(__pyx_t_5);
       PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_t_7));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
       __pyx_t_7 = 0;
-      __pyx_t_7 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      __pyx_t_7 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L4;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       __Pyx_Raise(__pyx_t_7, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 570; __pyx_clineno = __LINE__; goto __pyx_L4;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L4;}
     }
     __pyx_L6:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":573
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":578
  *                             python._fqtypename(f).decode('UTF-8'))
  *     finally:
  *         _destroyFakeDoc(c_base_doc, c_doc)             # <<<<<<<<<<<<<<
@@ -106082,7 +105881,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     __pyx_L5:;
     __pyx_f_4lxml_5etree__destroyFakeDoc(__pyx_v_c_base_doc, __pyx_v_c_doc);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":574
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":579
  *     finally:
  *         _destroyFakeDoc(c_base_doc, c_doc)
  *         if c_inclusive_ns_prefixes is not NULL:             # <<<<<<<<<<<<<<
@@ -106092,7 +105891,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     __pyx_t_3 = ((__pyx_v_c_inclusive_ns_prefixes != NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":575
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":580
  *         _destroyFakeDoc(c_base_doc, c_doc)
  *         if c_inclusive_ns_prefixes is not NULL:
  *             python.PyMem_Free(c_inclusive_ns_prefixes)             # <<<<<<<<<<<<<<
@@ -106115,7 +105914,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":577
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":582
  *             python.PyMem_Free(c_inclusive_ns_prefixes)
  * 
  *     if writer is not None:             # <<<<<<<<<<<<<<
@@ -106126,19 +105925,19 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
   __pyx_t_6 = (__pyx_t_3 != 0);
   if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":578
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":583
  * 
  *     if writer is not None:
  *         writer._exc_context._raise_if_stored()             # <<<<<<<<<<<<<<
  * 
  *     if error < 0:
  */
-    __pyx_t_11 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_writer->_exc_context->__pyx_vtab)->_raise_if_stored(__pyx_v_writer->_exc_context); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_11 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_writer->_exc_context->__pyx_vtab)->_raise_if_stored(__pyx_v_writer->_exc_context); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L29;
   }
   __pyx_L29:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":580
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":585
  *         writer._exc_context._raise_if_stored()
  * 
  *     if error < 0:             # <<<<<<<<<<<<<<
@@ -106148,17 +105947,17 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
   __pyx_t_6 = ((__pyx_v_error < 0) != 0);
   if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":581
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":586
  * 
  *     if error < 0:
  *         message = u"C14N failed"             # <<<<<<<<<<<<<<
  *         if writer is not None:
  *             errors = writer.error_log
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_230));
-    __pyx_v_message = ((PyObject *)__pyx_kp_u_230);
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_233));
+    __pyx_v_message = ((PyObject *)__pyx_kp_u_233);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":582
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":587
  *     if error < 0:
  *         message = u"C14N failed"
  *         if writer is not None:             # <<<<<<<<<<<<<<
@@ -106169,7 +105968,7 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     __pyx_t_3 = (__pyx_t_6 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":583
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":588
  *         message = u"C14N failed"
  *         if writer is not None:
  *             errors = writer.error_log             # <<<<<<<<<<<<<<
@@ -106181,31 +105980,30 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
       __pyx_v_errors = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_7);
       __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":584
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":589
  *         if writer is not None:
  *             errors = writer.error_log
  *             if len(errors):             # <<<<<<<<<<<<<<
  *                 message = errors[0].message
  *         raise C14NError(message)
  */
-      __pyx_t_18 = PyObject_Length(((PyObject *)__pyx_v_errors)); if (unlikely(__pyx_t_18 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_18 = PyObject_Length(((PyObject *)__pyx_v_errors)); if (unlikely(__pyx_t_18 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_3 = (__pyx_t_18 != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":585
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":590
  *             errors = writer.error_log
  *             if len(errors):
  *                 message = errors[0].message             # <<<<<<<<<<<<<<
  *         raise C14NError(message)
  * 
  */
-        __pyx_t_7 = __Pyx_GetItemInt(((PyObject *)__pyx_v_errors), 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_7) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = __Pyx_GetItemInt(((PyObject *)__pyx_v_errors), 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_7) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
-        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-        __Pyx_DECREF(__pyx_v_message);
-        __pyx_v_message = __pyx_t_5;
+        __Pyx_DECREF_SET(__pyx_v_message, __pyx_t_5);
         __pyx_t_5 = 0;
         goto __pyx_L32;
       }
@@ -106214,27 +106012,27 @@ static PyObject *__pyx_f_4lxml_5etree__tofilelikeC14N(PyObject *__pyx_v_f, struc
     }
     __pyx_L31:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":586
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":591
  *             if len(errors):
  *                 message = errors[0].message
  *         raise C14NError(message)             # <<<<<<<<<<<<<<
  * 
  * # incremental serialisation
  */
-    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__C14NError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__C14NError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_INCREF(__pyx_v_message);
     PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_message);
     __Pyx_GIVEREF(__pyx_v_message);
-    __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
     __Pyx_Raise(__pyx_t_8, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L30;
   }
   __pyx_L30:;
@@ -106274,7 +106072,7 @@ static int __pyx_pw_4lxml_5etree_7xmlfile_1__init__(PyObject *__pyx_v_self, PyOb
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__output_file,&__pyx_n_s__encoding,&__pyx_n_s__compression,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":616
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":621
  *     cdef _IncrementalFileWriter writer
  * 
  *     def __init__(self, output_file not None, encoding=None, compression=None):             # <<<<<<<<<<<<<<
@@ -106310,7 +106108,7 @@ static int __pyx_pw_4lxml_5etree_7xmlfile_1__init__(PyObject *__pyx_v_self, PyOb
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -106327,14 +106125,14 @@ static int __pyx_pw_4lxml_5etree_7xmlfile_1__init__(PyObject *__pyx_v_self, PyOb
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.xmlfile.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
   if (unlikely(((PyObject *)__pyx_v_output_file) == Py_None)) {
-    PyErr_Format(PyExc_TypeError, "Argument 'output_file' must not be None"); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 616; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_Format(PyExc_TypeError, "Argument 'output_file' must not be None"); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_r = __pyx_pf_4lxml_5etree_7xmlfile___init__(((struct __pyx_obj_4lxml_5etree_xmlfile *)__pyx_v_self), __pyx_v_output_file, __pyx_v_encoding, __pyx_v_compression);
   goto __pyx_L0;
@@ -106356,7 +106154,7 @@ static int __pyx_pf_4lxml_5etree_7xmlfile___init__(struct __pyx_obj_4lxml_5etree
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":617
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":622
  * 
  *     def __init__(self, output_file not None, encoding=None, compression=None):
  *         self.output_file = output_file             # <<<<<<<<<<<<<<
@@ -106369,29 +106167,29 @@ static int __pyx_pf_4lxml_5etree_7xmlfile___init__(struct __pyx_obj_4lxml_5etree
   __Pyx_DECREF(__pyx_v_self->output_file);
   __pyx_v_self->output_file = __pyx_v_output_file;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":618
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":623
  *     def __init__(self, output_file not None, encoding=None, compression=None):
  *         self.output_file = output_file
  *         self.encoding = _utf8orNone(encoding)             # <<<<<<<<<<<<<<
  *         self.compresslevel = compression or 0
  * 
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8orNone(__pyx_v_encoding)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8orNone(__pyx_v_encoding)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->encoding);
-  __Pyx_DECREF(__pyx_v_self->encoding);
-  __pyx_v_self->encoding = __pyx_t_1;
+  __Pyx_DECREF(((PyObject *)__pyx_v_self->encoding));
+  __pyx_v_self->encoding = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":619
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":624
  *         self.output_file = output_file
  *         self.encoding = _utf8orNone(encoding)
  *         self.compresslevel = compression or 0             # <<<<<<<<<<<<<<
  * 
  *     def __enter__(self):
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compression); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_compression); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!__pyx_t_2) {
     __Pyx_INCREF(__pyx_int_0);
     __pyx_t_1 = __pyx_int_0;
@@ -106399,7 +106197,7 @@ static int __pyx_pf_4lxml_5etree_7xmlfile___init__(struct __pyx_obj_4lxml_5etree
     __Pyx_INCREF(__pyx_v_compression);
     __pyx_t_1 = __pyx_v_compression;
   }
-  __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_1); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_self->compresslevel = __pyx_t_3;
 
@@ -106425,7 +106223,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7xmlfile_3__enter__(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":621
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":626
  *         self.compresslevel = compression or 0
  * 
  *     def __enter__(self):             # <<<<<<<<<<<<<<
@@ -106445,7 +106243,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_2__enter__(struct __pyx_obj_4lxm
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__enter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":622
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":627
  * 
  *     def __enter__(self):
  *         assert self.output_file is not None             # <<<<<<<<<<<<<<
@@ -106456,37 +106254,37 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_2__enter__(struct __pyx_obj_4lxm
   __pyx_t_1 = (__pyx_v_self->output_file != Py_None);
   if (unlikely(!(__pyx_t_1 != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 627; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":624
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":629
  *         assert self.output_file is not None
  *         cdef _IncrementalFileWriter writer = _IncrementalFileWriter(
  *             self.output_file, self.encoding, self.compresslevel)             # <<<<<<<<<<<<<<
  *         self.writer = writer
  *         return writer
  */
-  __pyx_t_2 = PyInt_FromLong(__pyx_v_self->compresslevel); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyInt_FromLong(__pyx_v_self->compresslevel); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 629; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_self->output_file);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_self->output_file);
   __Pyx_GIVEREF(__pyx_v_self->output_file);
-  __Pyx_INCREF(__pyx_v_self->encoding);
-  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_self->encoding);
-  __Pyx_GIVEREF(__pyx_v_self->encoding);
+  __Pyx_INCREF(((PyObject *)__pyx_v_self->encoding));
+  PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->encoding));
+  __Pyx_GIVEREF(((PyObject *)__pyx_v_self->encoding));
   PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__IncrementalFileWriter)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 623; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__IncrementalFileWriter)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __pyx_v_writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":625
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":630
  *         cdef _IncrementalFileWriter writer = _IncrementalFileWriter(
  *             self.output_file, self.encoding, self.compresslevel)
  *         self.writer = writer             # <<<<<<<<<<<<<<
@@ -106499,7 +106297,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_2__enter__(struct __pyx_obj_4lxm
   __Pyx_DECREF(((PyObject *)__pyx_v_self->writer));
   __pyx_v_self->writer = __pyx_v_writer;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":626
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":631
  *             self.output_file, self.encoding, self.compresslevel)
  *         self.writer = writer
  *         return writer             # <<<<<<<<<<<<<<
@@ -106558,16 +106356,16 @@ static PyObject *__pyx_pw_4lxml_5etree_7xmlfile_5__exit__(PyObject *__pyx_v_self
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__exc_val)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__exc_tb)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__exit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__exit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
       goto __pyx_L5_argtuple_error;
@@ -106582,7 +106380,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7xmlfile_5__exit__(PyObject *__pyx_v_self
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 633; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.xmlfile.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -106593,7 +106391,7 @@ static PyObject *__pyx_pw_4lxml_5etree_7xmlfile_5__exit__(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":628
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":633
  *         return writer
  * 
  *     def __exit__(self, exc_type, exc_val, exc_tb):             # <<<<<<<<<<<<<<
@@ -106615,7 +106413,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__exit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":629
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":634
  * 
  *     def __exit__(self, exc_type, exc_val, exc_tb):
  *         if self.writer is not None:             # <<<<<<<<<<<<<<
@@ -106626,7 +106424,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":630
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":635
  *     def __exit__(self, exc_type, exc_val, exc_tb):
  *         if self.writer is not None:
  *             old_writer, self.writer = self.writer, None             # <<<<<<<<<<<<<<
@@ -106645,7 +106443,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
     __pyx_v_self->writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":631
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":636
  *         if self.writer is not None:
  *             old_writer, self.writer = self.writer, None
  *             raise_on_error = exc_type is None             # <<<<<<<<<<<<<<
@@ -106653,20 +106451,20 @@ static PyObject *__pyx_pf_4lxml_5etree_7xmlfile_4__exit__(struct __pyx_obj_4lxml
  * 
  */
     __pyx_t_2 = (__pyx_v_exc_type == Py_None);
-    __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 631; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_v_raise_on_error = __pyx_t_4;
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":632
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":637
  *             old_writer, self.writer = self.writer, None
  *             raise_on_error = exc_type is None
  *             old_writer._close(raise_on_error)             # <<<<<<<<<<<<<<
  * 
  * cdef enum _IncrementalFileWriterStatus:
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_raise_on_error); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_4 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(__pyx_v_old_writer, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_raise_on_error); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(__pyx_v_old_writer, __pyx_t_2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 637; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L3;
@@ -106721,16 +106519,16 @@ static int __pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__(PyObject *_
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__encoding)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__compresslevel)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
       goto __pyx_L5_argtuple_error;
@@ -106741,17 +106539,17 @@ static int __pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__(PyObject *_
     }
     __pyx_v_outfile = values[0];
     __pyx_v_encoding = ((PyObject*)values[1]);
-    __pyx_v_compresslevel = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_compresslevel == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_compresslevel = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_compresslevel == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._IncrementalFileWriter.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_encoding), (&PyBytes_Type), 1, "encoding", 1))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_encoding), (&PyBytes_Type), 1, "encoding", 1))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)__pyx_v_self), __pyx_v_outfile, __pyx_v_encoding, __pyx_v_compresslevel);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -106761,7 +106559,7 @@ static int __pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":651
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":656
  *     cdef int _status
  * 
  *     def __cinit__(self, outfile, bytes encoding, int compresslevel):             # <<<<<<<<<<<<<<
@@ -106782,7 +106580,7 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
   __Pyx_RefNannySetupContext("__cinit__", 0);
   __Pyx_INCREF(__pyx_v_encoding);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":652
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":657
  * 
  *     def __cinit__(self, outfile, bytes encoding, int compresslevel):
  *         self._status = WRITER_STARTING             # <<<<<<<<<<<<<<
@@ -106791,14 +106589,14 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
  */
   __pyx_v_self->_status = __pyx_e_4lxml_5etree_WRITER_STARTING;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":653
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":658
  *     def __cinit__(self, outfile, bytes encoding, int compresslevel):
  *         self._status = WRITER_STARTING
  *         self._element_stack = []             # <<<<<<<<<<<<<<
  *         if encoding is None:
  *             encoding = b'ASCII'
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
   __Pyx_GOTREF(__pyx_v_self->_element_stack);
@@ -106806,7 +106604,7 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
   __pyx_v_self->_element_stack = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":654
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":659
  *         self._status = WRITER_STARTING
  *         self._element_stack = []
  *         if encoding is None:             # <<<<<<<<<<<<<<
@@ -106817,7 +106615,7 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":655
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":660
  *         self._element_stack = []
  *         if encoding is None:
  *             encoding = b'ASCII'             # <<<<<<<<<<<<<<
@@ -106825,13 +106623,12 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
  *         self._c_encoding = _cstr(encoding) if encoding is not None else NULL
  */
     __Pyx_INCREF(((PyObject *)__pyx_n_b__ASCII));
-    __Pyx_DECREF(((PyObject *)__pyx_v_encoding));
-    __pyx_v_encoding = __pyx_n_b__ASCII;
+    __Pyx_DECREF_SET(__pyx_v_encoding, __pyx_n_b__ASCII);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":656
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":661
  *         if encoding is None:
  *             encoding = b'ASCII'
  *         self._encoding = encoding             # <<<<<<<<<<<<<<
@@ -106841,10 +106638,10 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
   __Pyx_INCREF(((PyObject *)__pyx_v_encoding));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_encoding));
   __Pyx_GOTREF(__pyx_v_self->_encoding);
-  __Pyx_DECREF(__pyx_v_self->_encoding);
-  __pyx_v_self->_encoding = ((PyObject *)__pyx_v_encoding);
+  __Pyx_DECREF(((PyObject *)__pyx_v_self->_encoding));
+  __pyx_v_self->_encoding = __pyx_v_encoding;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":657
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":662
  *             encoding = b'ASCII'
  *         self._encoding = encoding
  *         self._c_encoding = _cstr(encoding) if encoding is not None else NULL             # <<<<<<<<<<<<<<
@@ -106859,14 +106656,14 @@ static int __pyx_pf_4lxml_5etree_22_IncrementalFileWriter___cinit__(struct __pyx
   }
   __pyx_v_self->_c_encoding = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":658
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":663
  *         self._encoding = encoding
  *         self._c_encoding = _cstr(encoding) if encoding is not None else NULL
  *         self._target = _create_output_buffer(outfile, self._c_encoding, compresslevel, &self._c_out)             # <<<<<<<<<<<<<<
  * 
  *     def __dealloc__(self):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__create_output_buffer(__pyx_v_outfile, __pyx_v_self->_c_encoding, __pyx_v_compresslevel, (&__pyx_v_self->_c_out)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__create_output_buffer(__pyx_v_outfile, __pyx_v_self->_c_encoding, __pyx_v_compresslevel, (&__pyx_v_self->_c_out)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->_target);
@@ -106895,7 +106692,7 @@ static void __pyx_pw_4lxml_5etree_22_IncrementalFileWriter_3__dealloc__(PyObject
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":660
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":665
  *         self._target = _create_output_buffer(outfile, self._c_encoding, compresslevel, &self._c_out)
  * 
  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
@@ -106908,7 +106705,7 @@ static void __pyx_pf_4lxml_5etree_22_IncrementalFileWriter_2__dealloc__(struct _
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("__dealloc__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":661
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":666
  * 
  *     def __dealloc__(self):
  *         if self._c_out is not NULL:             # <<<<<<<<<<<<<<
@@ -106918,7 +106715,7 @@ static void __pyx_pf_4lxml_5etree_22_IncrementalFileWriter_2__dealloc__(struct _
   __pyx_t_1 = ((__pyx_v_self->_c_out != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":662
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":667
  *     def __dealloc__(self):
  *         if self._c_out is not NULL:
  *             tree.xmlOutputBufferClose(self._c_out)             # <<<<<<<<<<<<<<
@@ -106950,7 +106747,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_5write_declarati
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__version,&__pyx_n_s__standalone,&__pyx_n_s__doctype,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":664
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":669
  *             tree.xmlOutputBufferClose(self._c_out)
  * 
  *     def write_declaration(self, version=None, standalone=None, doctype=None):             # <<<<<<<<<<<<<<
@@ -106989,7 +106786,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_5write_declarati
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_declaration") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "write_declaration") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -107006,7 +106803,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_5write_declarati
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("write_declaration", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("write_declaration", 0, 0, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._IncrementalFileWriter.write_declaration", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -107035,7 +106832,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   __Pyx_INCREF(__pyx_v_version);
   __Pyx_INCREF(__pyx_v_doctype);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":669
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":674
  *         Write an XML declaration and (optionally) a doctype into the file.
  *         """
  *         assert self._c_out is not NULL             # <<<<<<<<<<<<<<
@@ -107045,11 +106842,11 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_out != NULL) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":672
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":677
  *         cdef const_xmlChar* c_version
  *         cdef int c_standalone
  *         if self._status >= WRITER_DECL_WRITTEN:             # <<<<<<<<<<<<<<
@@ -107059,39 +106856,38 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   __pyx_t_1 = ((__pyx_v_self->_status >= __pyx_e_4lxml_5etree_WRITER_DECL_WRITTEN) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":673
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":678
  *         cdef int c_standalone
  *         if self._status >= WRITER_DECL_WRITTEN:
  *             raise LxmlSyntaxError("XML declaration already written")             # <<<<<<<<<<<<<<
  *         version = _utf8orNone(version)
  *         c_version = _xcstr(version) if version is not None else NULL
  */
-    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_251), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_254), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":674
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":679
  *         if self._status >= WRITER_DECL_WRITTEN:
  *             raise LxmlSyntaxError("XML declaration already written")
  *         version = _utf8orNone(version)             # <<<<<<<<<<<<<<
  *         c_version = _xcstr(version) if version is not None else NULL
  *         doctype = _utf8orNone(doctype)
  */
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8orNone(__pyx_v_version)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8orNone(__pyx_v_version)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_DECREF(__pyx_v_version);
-  __pyx_v_version = __pyx_t_3;
+  __Pyx_DECREF_SET(__pyx_v_version, __pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":675
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":680
  *             raise LxmlSyntaxError("XML declaration already written")
  *         version = _utf8orNone(version)
  *         c_version = _xcstr(version) if version is not None else NULL             # <<<<<<<<<<<<<<
@@ -107106,20 +106902,19 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   }
   __pyx_v_c_version = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":676
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":681
  *         version = _utf8orNone(version)
  *         c_version = _xcstr(version) if version is not None else NULL
  *         doctype = _utf8orNone(doctype)             # <<<<<<<<<<<<<<
  *         if standalone is None:
  *             c_standalone = -1
  */
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8orNone(__pyx_v_doctype)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8orNone(__pyx_v_doctype)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_DECREF(__pyx_v_doctype);
-  __pyx_v_doctype = __pyx_t_3;
+  __Pyx_DECREF_SET(__pyx_v_doctype, __pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":677
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":682
  *         c_version = _xcstr(version) if version is not None else NULL
  *         doctype = _utf8orNone(doctype)
  *         if standalone is None:             # <<<<<<<<<<<<<<
@@ -107130,7 +106925,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   __pyx_t_5 = (__pyx_t_1 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":678
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":683
  *         doctype = _utf8orNone(doctype)
  *         if standalone is None:
  *             c_standalone = -1             # <<<<<<<<<<<<<<
@@ -107142,14 +106937,14 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":680
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":685
  *             c_standalone = -1
  *         else:
  *             c_standalone = 1 if standalone else 0             # <<<<<<<<<<<<<<
  *         _writeDeclarationToBuffer(self._c_out, c_version, self._c_encoding, c_standalone)
  *         if doctype is not None:
  */
-    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_standalone); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_5) {
       __pyx_t_6 = 1;
     } else {
@@ -107159,7 +106954,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":681
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":686
  *         else:
  *             c_standalone = 1 if standalone else 0
  *         _writeDeclarationToBuffer(self._c_out, c_version, self._c_encoding, c_standalone)             # <<<<<<<<<<<<<<
@@ -107168,7 +106963,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  */
   __pyx_f_4lxml_5etree__writeDeclarationToBuffer(__pyx_v_self->_c_out, __pyx_v_c_version, __pyx_v_self->_c_encoding, __pyx_v_c_standalone);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":682
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":687
  *             c_standalone = 1 if standalone else 0
  *         _writeDeclarationToBuffer(self._c_out, c_version, self._c_encoding, c_standalone)
  *         if doctype is not None:             # <<<<<<<<<<<<<<
@@ -107179,7 +106974,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   __pyx_t_1 = (__pyx_t_5 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":683
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":688
  *         _writeDeclarationToBuffer(self._c_out, c_version, self._c_encoding, c_standalone)
  *         if doctype is not None:
  *             _writeDoctype(self._c_out, _xcstr(doctype))             # <<<<<<<<<<<<<<
@@ -107188,7 +106983,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
  */
     __pyx_f_4lxml_5etree__writeDoctype(__pyx_v_self->_c_out, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_doctype));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":684
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":689
  *         if doctype is not None:
  *             _writeDoctype(self._c_out, _xcstr(doctype))
  *             self._status = WRITER_DTD_WRITTEN             # <<<<<<<<<<<<<<
@@ -107200,7 +106995,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":686
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":691
  *             self._status = WRITER_DTD_WRITTEN
  *         else:
  *             self._status = WRITER_DECL_WRITTEN             # <<<<<<<<<<<<<<
@@ -107211,14 +107006,14 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_4write_declarati
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":687
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":692
  *         else:
  *             self._status = WRITER_DECL_WRITTEN
  *         self._handle_error(self._c_out.error)             # <<<<<<<<<<<<<<
  * 
  *     def write_doctype(self, doctype):
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 687; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
@@ -107249,7 +107044,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_7write_doctype(P
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":689
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":694
  *         self._handle_error(self._c_out.error)
  * 
  *     def write_doctype(self, doctype):             # <<<<<<<<<<<<<<
@@ -107270,7 +107065,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
   __Pyx_RefNannySetupContext("write_doctype", 0);
   __Pyx_INCREF(__pyx_v_doctype);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":694
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":699
  *         Writes the given doctype declaration verbatimly into the file.
  *         """
  *         assert self._c_out is not NULL             # <<<<<<<<<<<<<<
@@ -107280,11 +107075,11 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_out != NULL) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":695
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":700
  *         """
  *         assert self._c_out is not NULL
  *         if doctype is None:             # <<<<<<<<<<<<<<
@@ -107295,7 +107090,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":696
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":701
  *         assert self._c_out is not NULL
  *         if doctype is None:
  *             return             # <<<<<<<<<<<<<<
@@ -107309,7 +107104,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":697
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":702
  *         if doctype is None:
  *             return
  *         if self._status >= WRITER_DTD_WRITTEN:             # <<<<<<<<<<<<<<
@@ -107319,39 +107114,38 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
   __pyx_t_2 = ((__pyx_v_self->_status >= __pyx_e_4lxml_5etree_WRITER_DTD_WRITTEN) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":698
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":703
  *             return
  *         if self._status >= WRITER_DTD_WRITTEN:
  *             raise LxmlSyntaxError("DOCTYPE already written or cannot write it here")             # <<<<<<<<<<<<<<
  *         doctype = _utf8(doctype)
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  */
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_253), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_256), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_Raise(__pyx_t_4, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":699
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":704
  *         if self._status >= WRITER_DTD_WRITTEN:
  *             raise LxmlSyntaxError("DOCTYPE already written or cannot write it here")
  *         doctype = _utf8(doctype)             # <<<<<<<<<<<<<<
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  *         self._status = WRITER_DTD_WRITTEN
  */
-  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 699; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_doctype)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(__pyx_v_doctype);
-  __pyx_v_doctype = __pyx_t_4;
+  __Pyx_DECREF_SET(__pyx_v_doctype, __pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":700
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":705
  *             raise LxmlSyntaxError("DOCTYPE already written or cannot write it here")
  *         doctype = _utf8(doctype)
  *         _writeDoctype(self._c_out, _xcstr(doctype))             # <<<<<<<<<<<<<<
@@ -107360,7 +107154,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  */
   __pyx_f_4lxml_5etree__writeDoctype(__pyx_v_self->_c_out, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_doctype));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":701
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":706
  *         doctype = _utf8(doctype)
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  *         self._status = WRITER_DTD_WRITTEN             # <<<<<<<<<<<<<<
@@ -107369,14 +107163,14 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_6write_doctype(s
  */
   __pyx_v_self->_status = __pyx_e_4lxml_5etree_WRITER_DTD_WRITTEN;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":702
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":707
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  *         self._status = WRITER_DTD_WRITTEN
  *         self._handle_error(self._c_out.error)             # <<<<<<<<<<<<<<
  * 
  *     def element(self, tag, attrib=None, nsmap=None, **_extra):
  */
-  __pyx_t_4 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 702; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
@@ -107414,7 +107208,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_9element(PyObjec
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tag,&__pyx_n_s__attrib,&__pyx_n_s__nsmap,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":704
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":709
  *         self._handle_error(self._c_out.error)
  * 
  *     def element(self, tag, attrib=None, nsmap=None, **_extra):             # <<<<<<<<<<<<<<
@@ -107450,7 +107244,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_9element(PyObjec
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "element") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__extra, values, pos_args, "element") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -107467,7 +107261,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_9element(PyObjec
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 704; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__extra); __pyx_v__extra = 0;
   __Pyx_AddTraceback("lxml.etree._IncrementalFileWriter.element", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -107510,7 +107304,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   __Pyx_RefNannySetupContext("element", 0);
   __Pyx_INCREF(__pyx_v_attrib);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":709
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":714
  *         Returns a context manager that writes an opening and closing tag.
  *         """
  *         assert self._c_out is not NULL             # <<<<<<<<<<<<<<
@@ -107520,23 +107314,23 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_out != NULL) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":710
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":715
  *         """
  *         assert self._c_out is not NULL
  *         attributes = []             # <<<<<<<<<<<<<<
  *         if attrib is not None:
  *             if isinstance(attrib, (dict, _Attrib)):
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_attributes = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":711
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":716
  *         assert self._c_out is not NULL
  *         attributes = []
  *         if attrib is not None:             # <<<<<<<<<<<<<<
@@ -107547,7 +107341,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":712
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":717
  *         attributes = []
  *         if attrib is not None:
  *             if isinstance(attrib, (dict, _Attrib)):             # <<<<<<<<<<<<<<
@@ -107567,26 +107361,25 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
     __pyx_t_3 = (__pyx_t_4 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":713
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":718
  *         if attrib is not None:
  *             if isinstance(attrib, (dict, _Attrib)):
  *                 attrib = attrib.items()             # <<<<<<<<<<<<<<
  *             for name, value in attrib:
  *                 if name not in _extra:
  */
-      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __Pyx_DECREF(__pyx_v_attrib);
-      __pyx_v_attrib = __pyx_t_5;
+      __Pyx_DECREF_SET(__pyx_v_attrib, __pyx_t_5);
       __pyx_t_5 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":714
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":719
  *             if isinstance(attrib, (dict, _Attrib)):
  *                 attrib = attrib.items()
  *             for name, value in attrib:             # <<<<<<<<<<<<<<
@@ -107597,7 +107390,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
       __pyx_t_5 = __pyx_v_attrib; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
       __pyx_t_7 = NULL;
     } else {
-      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_attrib); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_attrib); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext;
     }
@@ -107605,23 +107398,23 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
       if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_5)) {
         if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_5)) {
         if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_1 = __pyx_t_7(__pyx_t_5);
         if (unlikely(!__pyx_t_1)) {
           if (PyErr_Occurred()) {
             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
@@ -107637,7 +107430,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -107650,16 +107443,16 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_INCREF(__pyx_t_8);
         __Pyx_INCREF(__pyx_t_9);
         #else
-        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
-        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
         #endif
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
@@ -107667,7 +107460,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_GOTREF(__pyx_t_8);
         index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_9);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_11 = NULL;
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         goto __pyx_L8_unpacking_done;
@@ -107675,35 +107468,33 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         __pyx_t_11 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L8_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_name);
-      __pyx_v_name = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_8);
       __pyx_t_8 = 0;
-      __Pyx_XDECREF(__pyx_v_value);
-      __pyx_v_value = __pyx_t_9;
+      __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_9);
       __pyx_t_9 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":715
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":720
  *                 attrib = attrib.items()
  *             for name, value in attrib:
  *                 if name not in _extra:             # <<<<<<<<<<<<<<
  *                     ns, name = _getNsTag(name)
  *                     attributes.append((ns, name, _utf8(value)))
  */
-      __pyx_t_3 = (__Pyx_PyDict_Contains(__pyx_v_name, ((PyObject *)__pyx_v__extra), Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = (__Pyx_PyDict_Contains(__pyx_v_name, ((PyObject *)__pyx_v__extra), Py_NE)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_4 = (__pyx_t_3 != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":716
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":721
  *             for name, value in attrib:
  *                 if name not in _extra:
  *                     ns, name = _getNsTag(name)             # <<<<<<<<<<<<<<
  *                     attributes.append((ns, name, _utf8(value)))
  *         if _extra:
  */
-        __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
         if (likely(PyTuple_CheckExact(__pyx_t_1))) {
           PyObject* sequence = __pyx_t_1;
@@ -107715,7 +107506,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
           if (unlikely(size != 2)) {
             if (size > 2) __Pyx_RaiseTooManyValuesError(2);
             else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-            {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           #if CYTHON_COMPILING_IN_CPYTHON
           __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
@@ -107723,18 +107514,18 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
           __Pyx_INCREF(__pyx_t_9);
           __Pyx_INCREF(__pyx_t_8);
           #else
-          __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_9);
-          __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_8);
           #endif
           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         } else if (1) {
-          __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         } else
         {
           Py_ssize_t index = -1;
-          __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_10);
           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
           __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
@@ -107742,7 +107533,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
           __Pyx_GOTREF(__pyx_t_9);
           index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L10_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_8);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_t_11 = NULL;
           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
           goto __pyx_L11_unpacking_done;
@@ -107750,26 +107541,24 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
           __pyx_t_11 = NULL;
           if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L11_unpacking_done:;
         }
-        __Pyx_XDECREF(__pyx_v_ns);
-        __pyx_v_ns = __pyx_t_9;
+        __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_9);
         __pyx_t_9 = 0;
-        __Pyx_DECREF(__pyx_v_name);
-        __pyx_v_name = __pyx_t_8;
+        __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_8);
         __pyx_t_8 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":717
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":722
  *                 if name not in _extra:
  *                     ns, name = _getNsTag(name)
  *                     attributes.append((ns, name, _utf8(value)))             # <<<<<<<<<<<<<<
  *         if _extra:
  *             for name, value in _extra.iteritems():
  */
-        __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
-        __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_INCREF(__pyx_v_ns);
         PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_ns);
@@ -107780,7 +107569,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_1);
         __Pyx_GIVEREF(__pyx_t_1);
         __pyx_t_1 = 0;
-        __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_attributes, ((PyObject *)__pyx_t_8)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_attributes, ((PyObject *)__pyx_t_8)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
         goto __pyx_L9;
       }
@@ -107791,17 +107580,17 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":718
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":723
  *                     ns, name = _getNsTag(name)
  *                     attributes.append((ns, name, _utf8(value)))
  *         if _extra:             # <<<<<<<<<<<<<<
  *             for name, value in _extra.iteritems():
  *                 ns, name = _getNsTag(name)
  */
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v__extra)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v__extra)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":719
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":724
  *                     attributes.append((ns, name, _utf8(value)))
  *         if _extra:
  *             for name, value in _extra.iteritems():             # <<<<<<<<<<<<<<
@@ -107809,7 +107598,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
  *                 attributes.append((ns, name, _utf8(value)))
  */
     __pyx_t_6 = 0;
-    __pyx_t_8 = __Pyx_dict_iterator(((PyObject *)__pyx_v__extra), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_13), (&__pyx_t_14)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_dict_iterator(((PyObject *)__pyx_v__extra), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_13), (&__pyx_t_14)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_XDECREF(__pyx_t_5);
     __pyx_t_5 = __pyx_t_8;
@@ -107817,24 +107606,22 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
     while (1) {
       __pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_13, &__pyx_t_6, &__pyx_t_8, &__pyx_t_1, NULL, __pyx_t_14);
       if (unlikely(__pyx_t_15 == 0)) break;
-      if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (unlikely(__pyx_t_15 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_GOTREF(__pyx_t_1);
-      __Pyx_XDECREF(__pyx_v_name);
-      __pyx_v_name = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_8);
       __pyx_t_8 = 0;
-      __Pyx_XDECREF(__pyx_v_value);
-      __pyx_v_value = __pyx_t_1;
+      __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1);
       __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":720
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":725
  *         if _extra:
  *             for name, value in _extra.iteritems():
  *                 ns, name = _getNsTag(name)             # <<<<<<<<<<<<<<
  *                 attributes.append((ns, name, _utf8(value)))
  *         reversed_nsmap = {}
  */
-      __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       if (likely(PyTuple_CheckExact(__pyx_t_1))) {
         PyObject* sequence = __pyx_t_1;
@@ -107846,7 +107633,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
@@ -107854,18 +107641,18 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_INCREF(__pyx_t_8);
         __Pyx_INCREF(__pyx_t_9);
         #else
-        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
-        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
         #endif
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       } else if (1) {
-        __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
@@ -107873,7 +107660,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_GOTREF(__pyx_t_8);
         index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L15_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_9);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_11 = NULL;
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         goto __pyx_L16_unpacking_done;
@@ -107881,26 +107668,24 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         __pyx_t_11 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 725; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L16_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_ns);
-      __pyx_v_ns = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_8);
       __pyx_t_8 = 0;
-      __Pyx_DECREF(__pyx_v_name);
-      __pyx_v_name = __pyx_t_9;
+      __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_9);
       __pyx_t_9 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":721
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":726
  *             for name, value in _extra.iteritems():
  *                 ns, name = _getNsTag(name)
  *                 attributes.append((ns, name, _utf8(value)))             # <<<<<<<<<<<<<<
  *         reversed_nsmap = {}
  *         if nsmap:
  */
-      __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = PyTuple_New(3); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_v_ns);
       PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_ns);
@@ -107911,7 +107696,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
       PyTuple_SET_ITEM(__pyx_t_9, 2, __pyx_t_1);
       __Pyx_GIVEREF(__pyx_t_1);
       __pyx_t_1 = 0;
-      __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_attributes, ((PyObject *)__pyx_t_9)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_attributes, ((PyObject *)__pyx_t_9)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
     }
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -107919,45 +107704,45 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   }
   __pyx_L12:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":722
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":727
  *                 ns, name = _getNsTag(name)
  *                 attributes.append((ns, name, _utf8(value)))
  *         reversed_nsmap = {}             # <<<<<<<<<<<<<<
  *         if nsmap:
  *             for prefix, ns in nsmap.items():
  */
-  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
   __pyx_v_reversed_nsmap = ((PyObject*)__pyx_t_5);
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":723
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":728
  *                 attributes.append((ns, name, _utf8(value)))
  *         reversed_nsmap = {}
  *         if nsmap:             # <<<<<<<<<<<<<<
  *             for prefix, ns in nsmap.items():
  *                 if prefix is not None:
  */
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_nsmap); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_nsmap); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":724
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":729
  *         reversed_nsmap = {}
  *         if nsmap:
  *             for prefix, ns in nsmap.items():             # <<<<<<<<<<<<<<
  *                 if prefix is not None:
  *                     prefix = _utf8(prefix)
  */
-    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_9 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_9);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     if (PyList_CheckExact(__pyx_t_9) || PyTuple_CheckExact(__pyx_t_9)) {
       __pyx_t_5 = __pyx_t_9; __Pyx_INCREF(__pyx_t_5); __pyx_t_13 = 0;
       __pyx_t_7 = NULL;
     } else {
-      __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext;
     }
@@ -107966,23 +107751,23 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
       if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_5)) {
         if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_5)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_9); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_9); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_5)) {
         if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_9); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_9); __pyx_t_13++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_9 = __pyx_t_7(__pyx_t_5);
         if (unlikely(!__pyx_t_9)) {
           if (PyErr_Occurred()) {
             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
@@ -107998,7 +107783,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -108011,16 +107796,16 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_INCREF(__pyx_t_1);
         __Pyx_INCREF(__pyx_t_8);
         #else
-        __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
-        __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
         #endif
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_10 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_10 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
@@ -108028,7 +107813,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_GOTREF(__pyx_t_1);
         index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_8)) goto __pyx_L20_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_8);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_11 = NULL;
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         goto __pyx_L21_unpacking_done;
@@ -108036,17 +107821,15 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         __pyx_t_11 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 724; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L21_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_prefix);
-      __pyx_v_prefix = __pyx_t_1;
+      __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_1);
       __pyx_t_1 = 0;
-      __Pyx_XDECREF(__pyx_v_ns);
-      __pyx_v_ns = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_8);
       __pyx_t_8 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":725
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":730
  *         if nsmap:
  *             for prefix, ns in nsmap.items():
  *                 if prefix is not None:             # <<<<<<<<<<<<<<
@@ -108057,41 +107840,40 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
       __pyx_t_3 = (__pyx_t_4 != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":726
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":731
  *             for prefix, ns in nsmap.items():
  *                 if prefix is not None:
  *                     prefix = _utf8(prefix)             # <<<<<<<<<<<<<<
  *                     _prefixValidOrRaise(prefix)
  *                 reversed_nsmap[_utf8(ns)] = prefix
  */
-        __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_prefix)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_prefix)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
-        __Pyx_DECREF(__pyx_v_prefix);
-        __pyx_v_prefix = __pyx_t_9;
+        __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_9);
         __pyx_t_9 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":727
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":732
  *                 if prefix is not None:
  *                     prefix = _utf8(prefix)
  *                     _prefixValidOrRaise(prefix)             # <<<<<<<<<<<<<<
  *                 reversed_nsmap[_utf8(ns)] = prefix
  *         ns, name = _getNsTag(tag)
  */
-        __pyx_t_14 = __pyx_f_4lxml_5etree__prefixValidOrRaise(__pyx_v_prefix); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_14 = __pyx_f_4lxml_5etree__prefixValidOrRaise(__pyx_v_prefix); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L22;
       }
       __pyx_L22:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":728
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":733
  *                     prefix = _utf8(prefix)
  *                     _prefixValidOrRaise(prefix)
  *                 reversed_nsmap[_utf8(ns)] = prefix             # <<<<<<<<<<<<<<
  *         ns, name = _getNsTag(tag)
  *         return _FileWriterElement(self, (ns, name, attributes, reversed_nsmap))
  */
-      __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_ns)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_ns)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_9);
-      if (PyDict_SetItem(((PyObject *)__pyx_v_reversed_nsmap), __pyx_t_9, __pyx_v_prefix) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (PyDict_SetItem(((PyObject *)__pyx_v_reversed_nsmap), __pyx_t_9, __pyx_v_prefix) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
     }
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -108099,14 +107881,14 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   }
   __pyx_L17:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":729
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":734
  *                     _prefixValidOrRaise(prefix)
  *                 reversed_nsmap[_utf8(ns)] = prefix
  *         ns, name = _getNsTag(tag)             # <<<<<<<<<<<<<<
  *         return _FileWriterElement(self, (ns, name, attributes, reversed_nsmap))
  * 
  */
-  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__getNsTag(__pyx_v_tag)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   if (likely(PyTuple_CheckExact(__pyx_t_5))) {
     PyObject* sequence = __pyx_t_5;
@@ -108118,7 +107900,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
@@ -108126,18 +107908,18 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
     __Pyx_INCREF(__pyx_t_9);
     __Pyx_INCREF(__pyx_t_8);
     #else
-    __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_9);
-    __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     #endif
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   } else if (1) {
-    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseNoneNotIterableError(); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext;
@@ -108145,7 +107927,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
     __Pyx_GOTREF(__pyx_t_9);
     index = 1; __pyx_t_8 = __pyx_t_11(__pyx_t_1); if (unlikely(!__pyx_t_8)) goto __pyx_L23_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_8);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_1), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_11 = NULL;
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     goto __pyx_L24_unpacking_done;
@@ -108153,17 +107935,15 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_11 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L24_unpacking_done:;
   }
-  __Pyx_XDECREF(__pyx_v_ns);
-  __pyx_v_ns = __pyx_t_9;
+  __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_9);
   __pyx_t_9 = 0;
-  __Pyx_XDECREF(__pyx_v_name);
-  __pyx_v_name = __pyx_t_8;
+  __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_8);
   __pyx_t_8 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":730
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":735
  *                 reversed_nsmap[_utf8(ns)] = prefix
  *         ns, name = _getNsTag(tag)
  *         return _FileWriterElement(self, (ns, name, attributes, reversed_nsmap))             # <<<<<<<<<<<<<<
@@ -108171,7 +107951,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
  *     cdef _write_qname(self, bytes name, bytes prefix):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_INCREF(__pyx_v_ns);
   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_ns);
@@ -108185,7 +107965,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   __Pyx_INCREF(((PyObject *)__pyx_v_reversed_nsmap));
   PyTuple_SET_ITEM(__pyx_t_5, 3, ((PyObject *)__pyx_v_reversed_nsmap));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_reversed_nsmap));
-  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_8);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_self));
@@ -108193,7 +107973,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_t_5));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FileWriterElement)), ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__FileWriterElement)), ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
   __pyx_r = __pyx_t_5;
@@ -108223,7 +108003,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_8element(struct
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":732
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":737
  *         return _FileWriterElement(self, (ns, name, attributes, reversed_nsmap))
  * 
  *     cdef _write_qname(self, bytes name, bytes prefix):             # <<<<<<<<<<<<<<
@@ -108242,7 +108022,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_write_qname", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":733
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":738
  * 
  *     cdef _write_qname(self, bytes name, bytes prefix):
  *         if prefix is not None:             # <<<<<<<<<<<<<<
@@ -108253,7 +108033,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":734
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":739
  *     cdef _write_qname(self, bytes name, bytes prefix):
  *         if prefix is not None:
  *             tree.xmlOutputBufferWrite(self._c_out, len(prefix), _cstr(prefix))             # <<<<<<<<<<<<<<
@@ -108262,24 +108042,24 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
  */
     if (unlikely(((PyObject *)__pyx_v_prefix) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_prefix)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_prefix)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 739; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     xmlOutputBufferWrite(__pyx_v_self->_c_out, __pyx_t_3, PyBytes_AS_STRING(((PyObject *)__pyx_v_prefix)));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":735
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":740
  *         if prefix is not None:
  *             tree.xmlOutputBufferWrite(self._c_out, len(prefix), _cstr(prefix))
  *             tree.xmlOutputBufferWrite(self._c_out, 1, ':')             # <<<<<<<<<<<<<<
  *         tree.xmlOutputBufferWrite(self._c_out, len(name), _cstr(name))
  * 
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_254);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_257);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":736
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":741
  *             tree.xmlOutputBufferWrite(self._c_out, len(prefix), _cstr(prefix))
  *             tree.xmlOutputBufferWrite(self._c_out, 1, ':')
  *         tree.xmlOutputBufferWrite(self._c_out, len(name), _cstr(name))             # <<<<<<<<<<<<<<
@@ -108288,9 +108068,9 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
  */
   if (unlikely(((PyObject *)__pyx_v_name) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_3 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_name)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 736; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_name)); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   xmlOutputBufferWrite(__pyx_v_self->_c_out, __pyx_t_3, PyBytes_AS_STRING(((PyObject *)__pyx_v_name)));
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -108304,7 +108084,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(stru
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":738
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":743
  *         tree.xmlOutputBufferWrite(self._c_out, len(name), _cstr(name))
  * 
  *     cdef _write_start_element(self, element_config):             # <<<<<<<<<<<<<<
@@ -108335,7 +108115,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_write_start_element", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":739
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":744
  * 
  *     cdef _write_start_element(self, element_config):
  *         if self._status > WRITER_IN_ELEMENT:             # <<<<<<<<<<<<<<
@@ -108345,26 +108125,26 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
   __pyx_t_1 = ((__pyx_v_self->_status > __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":740
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":745
  *     cdef _write_start_element(self, element_config):
  *         if self._status > WRITER_IN_ELEMENT:
  *             raise LxmlSyntaxError("cannot append trailing element to complete XML document")             # <<<<<<<<<<<<<<
  *         ns, name, attributes, nsmap = element_config
  *         flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)
  */
-    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_256), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_259), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":741
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":746
  *         if self._status > WRITER_IN_ELEMENT:
  *             raise LxmlSyntaxError("cannot append trailing element to complete XML document")
  *         ns, name, attributes, nsmap = element_config             # <<<<<<<<<<<<<<
@@ -108381,7 +108161,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
     if (unlikely(size != 4)) {
       if (size > 4) __Pyx_RaiseTooManyValuesError(4);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -108403,7 +108183,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
     Py_ssize_t i;
     PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_2,&__pyx_t_4,&__pyx_t_5};
     for (i=0; i < 4; i++) {
-      PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(item);
       *(temps[i]) = item;
     }
@@ -108412,7 +108192,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
   {
     Py_ssize_t index = -1;
     PyObject** temps[4] = {&__pyx_t_3,&__pyx_t_2,&__pyx_t_4,&__pyx_t_5};
-    __pyx_t_6 = PyObject_GetIter(__pyx_v_element_config); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_GetIter(__pyx_v_element_config); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
     for (index=0; index < 4; index++) {
@@ -108420,7 +108200,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
       __Pyx_GOTREF(item);
       *(temps[index]) = item;
     }
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 4) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_7 = NULL;
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     goto __pyx_L5_unpacking_done;
@@ -108428,7 +108208,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_t_7 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 741; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L5_unpacking_done:;
   }
   __pyx_v_ns = __pyx_t_3;
@@ -108440,15 +108220,15 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
   __pyx_v_nsmap = __pyx_t_5;
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":742
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":747
  *             raise LxmlSyntaxError("cannot append trailing element to complete XML document")
  *         ns, name, attributes, nsmap = element_config
  *         flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)             # <<<<<<<<<<<<<<
  *         prefix = self._find_prefix(ns, flat_namespace_map, new_namespaces)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '<')
  */
-  if (!(likely(PyDict_CheckExact(__pyx_v_nsmap))||((__pyx_v_nsmap) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected dict, got %.200s", Py_TYPE(__pyx_v_nsmap)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespaces(__pyx_v_self, ((PyObject*)__pyx_v_nsmap)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyDict_CheckExact(__pyx_v_nsmap))||((__pyx_v_nsmap) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected dict, got %.200s", Py_TYPE(__pyx_v_nsmap)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespaces(__pyx_v_self, ((PyObject*)__pyx_v_nsmap)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
     PyObject* sequence = __pyx_t_5;
@@ -108460,7 +108240,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -108473,16 +108253,16 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
     __Pyx_INCREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_t_2);
     #else
-    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     #endif
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext;
@@ -108490,7 +108270,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
     __Pyx_GOTREF(__pyx_t_4);
     index = 1; __pyx_t_2 = __pyx_t_7(__pyx_t_3); if (unlikely(!__pyx_t_2)) goto __pyx_L6_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_2);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_3), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_7 = NULL;
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L7_unpacking_done;
@@ -108498,7 +108278,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_t_7 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L7_unpacking_done:;
   }
   __pyx_v_flat_namespace_map = __pyx_t_4;
@@ -108506,78 +108286,78 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
   __pyx_v_new_namespaces = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":743
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":748
  *         ns, name, attributes, nsmap = element_config
  *         flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)
  *         prefix = self._find_prefix(ns, flat_namespace_map, new_namespaces)             # <<<<<<<<<<<<<<
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '<')
  *         self._write_qname(name, prefix)
  */
-  if (!(likely(PyBytes_CheckExact(__pyx_v_ns))||((__pyx_v_ns) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_ns)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (!(likely(PyDict_CheckExact(__pyx_v_flat_namespace_map))||((__pyx_v_flat_namespace_map) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected dict, got %.200s", Py_TYPE(__pyx_v_flat_namespace_map)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (!(likely(PyList_CheckExact(__pyx_v_new_namespaces))||((__pyx_v_new_namespaces) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_new_namespaces)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(__pyx_v_self, ((PyObject*)__pyx_v_ns), ((PyObject*)__pyx_v_flat_namespace_map), ((PyObject*)__pyx_v_new_namespaces)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyBytes_CheckExact(__pyx_v_ns))||((__pyx_v_ns) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_ns)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyDict_CheckExact(__pyx_v_flat_namespace_map))||((__pyx_v_flat_namespace_map) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected dict, got %.200s", Py_TYPE(__pyx_v_flat_namespace_map)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyList_CheckExact(__pyx_v_new_namespaces))||((__pyx_v_new_namespaces) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_new_namespaces)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(__pyx_v_self, ((PyObject*)__pyx_v_ns), ((PyObject*)__pyx_v_flat_namespace_map), ((PyObject*)__pyx_v_new_namespaces)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __pyx_v_prefix = __pyx_t_5;
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":744
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":749
  *         flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)
  *         prefix = self._find_prefix(ns, flat_namespace_map, new_namespaces)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '<')             # <<<<<<<<<<<<<<
  *         self._write_qname(name, prefix)
  *         self._write_attributes_and_namespaces(
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_257);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_260);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":745
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":750
  *         prefix = self._find_prefix(ns, flat_namespace_map, new_namespaces)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '<')
  *         self._write_qname(name, prefix)             # <<<<<<<<<<<<<<
  *         self._write_attributes_and_namespaces(
  *             attributes, flat_namespace_map, new_namespaces)
  */
-  if (!(likely(PyBytes_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_name)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (!(likely(PyBytes_CheckExact(__pyx_v_prefix))||((__pyx_v_prefix) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_prefix)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(__pyx_v_self, ((PyObject*)__pyx_v_name), ((PyObject*)__pyx_v_prefix)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyBytes_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_name)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyBytes_CheckExact(__pyx_v_prefix))||((__pyx_v_prefix) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_prefix)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(__pyx_v_self, ((PyObject*)__pyx_v_name), ((PyObject*)__pyx_v_prefix)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":747
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":752
  *         self._write_qname(name, prefix)
  *         self._write_attributes_and_namespaces(
  *             attributes, flat_namespace_map, new_namespaces)             # <<<<<<<<<<<<<<
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
  *         self._handle_error(self._c_out.error)
  */
-  if (!(likely(PyList_CheckExact(__pyx_v_attributes))||((__pyx_v_attributes) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_attributes)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (!(likely(PyDict_CheckExact(__pyx_v_flat_namespace_map))||((__pyx_v_flat_namespace_map) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected dict, got %.200s", Py_TYPE(__pyx_v_flat_namespace_map)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (!(likely(PyList_CheckExact(__pyx_v_new_namespaces))||((__pyx_v_new_namespaces) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_new_namespaces)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_and_namespaces(__pyx_v_self, ((PyObject*)__pyx_v_attributes), ((PyObject*)__pyx_v_flat_namespace_map), ((PyObject*)__pyx_v_new_namespaces)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyList_CheckExact(__pyx_v_attributes))||((__pyx_v_attributes) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_attributes)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyDict_CheckExact(__pyx_v_flat_namespace_map))||((__pyx_v_flat_namespace_map) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected dict, got %.200s", Py_TYPE(__pyx_v_flat_namespace_map)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyList_CheckExact(__pyx_v_new_namespaces))||((__pyx_v_new_namespaces) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected list, got %.200s", Py_TYPE(__pyx_v_new_namespaces)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_and_namespaces(__pyx_v_self, ((PyObject*)__pyx_v_attributes), ((PyObject*)__pyx_v_flat_namespace_map), ((PyObject*)__pyx_v_new_namespaces)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":748
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":753
  *         self._write_attributes_and_namespaces(
  *             attributes, flat_namespace_map, new_namespaces)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')             # <<<<<<<<<<<<<<
  *         self._handle_error(self._c_out.error)
  * 
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_258);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_261);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":749
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":754
  *             attributes, flat_namespace_map, new_namespaces)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
  *         self._handle_error(self._c_out.error)             # <<<<<<<<<<<<<<
  * 
  *         self._element_stack.append((ns, name, prefix, flat_namespace_map))
  */
-  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":751
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":756
  *         self._handle_error(self._c_out.error)
  * 
  *         self._element_stack.append((ns, name, prefix, flat_namespace_map))             # <<<<<<<<<<<<<<
@@ -108586,9 +108366,9 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
  */
   if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_INCREF(__pyx_v_ns);
   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_ns);
@@ -108602,10 +108382,10 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
   __Pyx_INCREF(__pyx_v_flat_namespace_map);
   PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_v_flat_namespace_map);
   __Pyx_GIVEREF(__pyx_v_flat_namespace_map);
-  __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->_element_stack, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = __Pyx_PyList_Append(__pyx_v_self->_element_stack, ((PyObject *)__pyx_t_5)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":752
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":757
  * 
  *         self._element_stack.append((ns, name, prefix, flat_namespace_map))
  *         self._status = WRITER_IN_ELEMENT             # <<<<<<<<<<<<<<
@@ -108637,7 +108417,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_elem
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":754
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":759
  *         self._status = WRITER_IN_ELEMENT
  * 
  *     cdef _write_attributes_and_namespaces(self, list attributes,             # <<<<<<<<<<<<<<
@@ -108668,7 +108448,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
   __Pyx_RefNannySetupContext("_write_attributes_and_namespaces", 0);
   __Pyx_INCREF(__pyx_v_attributes);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":757
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":762
  *                                           dict flat_namespace_map,
  *                                           list new_namespaces):
  *         if attributes:             # <<<<<<<<<<<<<<
@@ -108678,17 +108458,17 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
   __pyx_t_1 = (((PyObject *)__pyx_v_attributes) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_attributes)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":759
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":764
  *         if attributes:
  *             # _find_prefix() may append to new_namespaces => build them first
  *             attributes = [             # <<<<<<<<<<<<<<
  *                 (self._find_prefix(ns, flat_namespace_map, new_namespaces), name, value)
  *                 for ns, name, value in attributes ]
  */
-    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":761
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":766
  *             attributes = [
  *                 (self._find_prefix(ns, flat_namespace_map, new_namespaces), name, value)
  *                 for ns, name, value in attributes ]             # <<<<<<<<<<<<<<
@@ -108697,15 +108477,15 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  */
     if (unlikely(((PyObject *)__pyx_v_attributes) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_t_3 = ((PyObject *)__pyx_v_attributes); __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
     for (;;) {
       if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
       if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
         PyObject* sequence = __pyx_t_5;
@@ -108717,7 +108497,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
         if (unlikely(size != 3)) {
           if (size > 3) __Pyx_RaiseTooManyValuesError(3);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -108733,18 +108513,18 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
         __Pyx_INCREF(__pyx_t_7);
         __Pyx_INCREF(__pyx_t_8);
         #else
-        __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
-        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
-        __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
         #endif
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_9 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
@@ -108754,7 +108534,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
         __Pyx_GOTREF(__pyx_t_7);
         index = 2; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L6_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_8);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 3) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_10 = NULL;
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         goto __pyx_L7_unpacking_done;
@@ -108762,30 +108542,27 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         __pyx_t_10 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L7_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_ns);
-      __pyx_v_ns = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_6);
       __pyx_t_6 = 0;
-      __Pyx_XDECREF(__pyx_v_name);
-      __pyx_v_name = __pyx_t_7;
+      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_7);
       __pyx_t_7 = 0;
-      __Pyx_XDECREF(__pyx_v_value);
-      __pyx_v_value = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8);
       __pyx_t_8 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":760
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":765
  *             # _find_prefix() may append to new_namespaces => build them first
  *             attributes = [
  *                 (self._find_prefix(ns, flat_namespace_map, new_namespaces), name, value)             # <<<<<<<<<<<<<<
  *                 for ns, name, value in attributes ]
  *         if new_namespaces:
  */
-      if (!(likely(PyBytes_CheckExact(__pyx_v_ns))||((__pyx_v_ns) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_ns)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(__pyx_v_self, ((PyObject*)__pyx_v_ns), __pyx_v_flat_namespace_map, __pyx_v_new_namespaces); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (!(likely(PyBytes_CheckExact(__pyx_v_ns))||((__pyx_v_ns) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_ns)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(__pyx_v_self, ((PyObject*)__pyx_v_ns), __pyx_v_flat_namespace_map, __pyx_v_new_namespaces); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_5);
@@ -108796,18 +108573,17 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
       PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_value);
       __Pyx_GIVEREF(__pyx_v_value);
       __pyx_t_5 = 0;
-      if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_8))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
     }
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __Pyx_DECREF(((PyObject *)__pyx_v_attributes));
-    __pyx_v_attributes = ((PyObject*)__pyx_t_2);
+    __Pyx_DECREF_SET(__pyx_v_attributes, ((PyObject*)__pyx_t_2));
     __pyx_t_2 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":762
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":767
  *                 (self._find_prefix(ns, flat_namespace_map, new_namespaces), name, value)
  *                 for ns, name, value in attributes ]
  *         if new_namespaces:             # <<<<<<<<<<<<<<
@@ -108817,7 +108593,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
   __pyx_t_1 = (((PyObject *)__pyx_v_new_namespaces) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_new_namespaces)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":763
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":768
  *                 for ns, name, value in attributes ]
  *         if new_namespaces:
  *             new_namespaces.sort()             # <<<<<<<<<<<<<<
@@ -108826,25 +108602,25 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  */
     if (unlikely(((PyObject *)__pyx_v_new_namespaces) == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "sort");
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_11 = PyList_Sort(((PyObject *)__pyx_v_new_namespaces)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_11 = PyList_Sort(((PyObject *)__pyx_v_new_namespaces)); if (unlikely(__pyx_t_11 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 768; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":764
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":769
  *         if new_namespaces:
  *             new_namespaces.sort()
  *             self._write_attributes_list(new_namespaces)             # <<<<<<<<<<<<<<
  *         if attributes:
  *             self._write_attributes_list(attributes)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_list(__pyx_v_self, __pyx_v_new_namespaces); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_list(__pyx_v_self, __pyx_v_new_namespaces); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     goto __pyx_L8;
   }
   __pyx_L8:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":765
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":770
  *             new_namespaces.sort()
  *             self._write_attributes_list(new_namespaces)
  *         if attributes:             # <<<<<<<<<<<<<<
@@ -108854,14 +108630,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
   __pyx_t_1 = (((PyObject *)__pyx_v_attributes) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_attributes)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":766
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":771
  *             self._write_attributes_list(new_namespaces)
  *         if attributes:
  *             self._write_attributes_list(attributes)             # <<<<<<<<<<<<<<
  * 
  *     cdef _write_attributes_list(self, list attributes):
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_list(__pyx_v_self, __pyx_v_attributes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes_list(__pyx_v_self, __pyx_v_attributes); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     goto __pyx_L9;
@@ -108890,7 +108666,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":768
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":773
  *             self._write_attributes_list(attributes)
  * 
  *     cdef _write_attributes_list(self, list attributes):             # <<<<<<<<<<<<<<
@@ -108917,7 +108693,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_write_attributes_list", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":769
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":774
  * 
  *     cdef _write_attributes_list(self, list attributes):
  *         for prefix, name, value in attributes:             # <<<<<<<<<<<<<<
@@ -108926,15 +108702,15 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  */
   if (unlikely(((PyObject *)__pyx_v_attributes) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_1 = ((PyObject *)__pyx_v_attributes); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
   for (;;) {
     if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
       PyObject* sequence = __pyx_t_3;
@@ -108946,7 +108722,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
       if (unlikely(size != 3)) {
         if (size > 3) __Pyx_RaiseTooManyValuesError(3);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -108962,18 +108738,18 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
       __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
       #else
-      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       #endif
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -108983,7 +108759,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
       __Pyx_GOTREF(__pyx_t_5);
       index = 2; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_6);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 3) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_8 = NULL;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       goto __pyx_L6_unpacking_done;
@@ -108991,20 +108767,17 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __pyx_t_8 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 774; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_prefix);
-    __pyx_v_prefix = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_4);
     __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_6);
     __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":770
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":775
  *     cdef _write_attributes_list(self, list attributes):
  *         for prefix, name, value in attributes:
  *             tree.xmlOutputBufferWrite(self._c_out, 1, ' ')             # <<<<<<<<<<<<<<
@@ -109013,29 +108786,29 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  */
     xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_17);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":771
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":776
  *         for prefix, name, value in attributes:
  *             tree.xmlOutputBufferWrite(self._c_out, 1, ' ')
  *             self._write_qname(name, prefix)             # <<<<<<<<<<<<<<
  *             tree.xmlOutputBufferWrite(self._c_out, 2, '="')
  *             tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(value), NULL)
  */
-    if (!(likely(PyBytes_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_name)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (!(likely(PyBytes_CheckExact(__pyx_v_prefix))||((__pyx_v_prefix) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_prefix)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(__pyx_v_self, ((PyObject*)__pyx_v_name), ((PyObject*)__pyx_v_prefix)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 771; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_name)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(PyBytes_CheckExact(__pyx_v_prefix))||((__pyx_v_prefix) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_prefix)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(__pyx_v_self, ((PyObject*)__pyx_v_name), ((PyObject*)__pyx_v_prefix)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":772
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":777
  *             tree.xmlOutputBufferWrite(self._c_out, 1, ' ')
  *             self._write_qname(name, prefix)
  *             tree.xmlOutputBufferWrite(self._c_out, 2, '="')             # <<<<<<<<<<<<<<
  *             tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(value), NULL)
  *             tree.xmlOutputBufferWrite(self._c_out, 1, '"')
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_259);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_262);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":773
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":778
  *             self._write_qname(name, prefix)
  *             tree.xmlOutputBufferWrite(self._c_out, 2, '="')
  *             tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(value), NULL)             # <<<<<<<<<<<<<<
@@ -109044,14 +108817,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
  */
     xmlOutputBufferWriteEscape(__pyx_v_self->_c_out, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_value), NULL);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":774
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":779
  *             tree.xmlOutputBufferWrite(self._c_out, 2, '="')
  *             tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(value), NULL)
  *             tree.xmlOutputBufferWrite(self._c_out, 1, '"')             # <<<<<<<<<<<<<<
  * 
  *     cdef _write_end_element(self, element_config):
  */
-    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_242);
+    xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_245);
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -109075,7 +108848,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_attributes
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":776
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":781
  *             tree.xmlOutputBufferWrite(self._c_out, 1, '"')
  * 
  *     cdef _write_end_element(self, element_config):             # <<<<<<<<<<<<<<
@@ -109101,7 +108874,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_write_end_element", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":777
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":782
  * 
  *     cdef _write_end_element(self, element_config):
  *         if self._status != WRITER_IN_ELEMENT:             # <<<<<<<<<<<<<<
@@ -109111,26 +108884,26 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   __pyx_t_1 = ((__pyx_v_self->_status != __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":778
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":783
  *     cdef _write_end_element(self, element_config):
  *         if self._status != WRITER_IN_ELEMENT:
  *             raise LxmlSyntaxError("not in an element")             # <<<<<<<<<<<<<<
  *         if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
  */
-    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_261), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_264), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":779
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":784
  *         if self._status != WRITER_IN_ELEMENT:
  *             raise LxmlSyntaxError("not in an element")
  *         if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:             # <<<<<<<<<<<<<<
@@ -109142,19 +108915,19 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   if (!__pyx_t_4) {
     if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_3) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 2, NULL, NULL, &__pyx_k_slice_262, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 2, NULL, NULL, &__pyx_k_slice_265, 0, 1, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_element_config, 0, 2, NULL, NULL, &__pyx_k_slice_263, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_element_config, 0, 2, NULL, NULL, &__pyx_k_slice_266, 0, 1, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_6 = __pyx_t_1;
   } else {
@@ -109162,35 +108935,35 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   }
   if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":780
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":785
  *             raise LxmlSyntaxError("not in an element")
  *         if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")             # <<<<<<<<<<<<<<
  * 
  *         name, prefix = self._element_stack.pop()[1:3]
  */
-    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_265), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_268), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":782
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":787
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
  * 
  *         name, prefix = self._element_stack.pop()[1:3]             # <<<<<<<<<<<<<<
  *         tree.xmlOutputBufferWrite(self._c_out, 2, '</')
  *         self._write_qname(name, prefix)
  */
-  __pyx_t_3 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self->_element_stack)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_Pop(((PyObject *)__pyx_v_self->_element_stack)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_3, 1, 3, NULL, NULL, &__pyx_k_slice_266, 1, 1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_t_3, 1, 3, NULL, NULL, &__pyx_k_slice_269, 1, 1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
@@ -109203,7 +108976,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -109216,16 +108989,16 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
     __Pyx_INCREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_t_2);
     #else
-    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     #endif
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -109233,7 +109006,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
     __Pyx_GOTREF(__pyx_t_3);
     index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L5_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_2);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_8 = NULL;
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     goto __pyx_L6_unpacking_done;
@@ -109241,7 +109014,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     __pyx_t_8 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L6_unpacking_done:;
   }
   __pyx_v_name = __pyx_t_3;
@@ -109249,38 +109022,38 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   __pyx_v_prefix = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":783
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":788
  * 
  *         name, prefix = self._element_stack.pop()[1:3]
  *         tree.xmlOutputBufferWrite(self._c_out, 2, '</')             # <<<<<<<<<<<<<<
  *         self._write_qname(name, prefix)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_267);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 2, __pyx_k_270);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":784
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":789
  *         name, prefix = self._element_stack.pop()[1:3]
  *         tree.xmlOutputBufferWrite(self._c_out, 2, '</')
  *         self._write_qname(name, prefix)             # <<<<<<<<<<<<<<
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
  * 
  */
-  if (!(likely(PyBytes_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_name)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (!(likely(PyBytes_CheckExact(__pyx_v_prefix))||((__pyx_v_prefix) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_prefix)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(__pyx_v_self, ((PyObject*)__pyx_v_name), ((PyObject*)__pyx_v_prefix)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyBytes_CheckExact(__pyx_v_name))||((__pyx_v_name) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_name)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyBytes_CheckExact(__pyx_v_prefix))||((__pyx_v_prefix) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_v_prefix)->tp_name), 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_qname(__pyx_v_self, ((PyObject*)__pyx_v_name), ((PyObject*)__pyx_v_prefix)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":785
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":790
  *         tree.xmlOutputBufferWrite(self._c_out, 2, '</')
  *         self._write_qname(name, prefix)
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')             # <<<<<<<<<<<<<<
  * 
  *         if not self._element_stack:
  */
-  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_258);
+  xmlOutputBufferWrite(__pyx_v_self->_c_out, 1, __pyx_k_261);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":787
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":792
  *         tree.xmlOutputBufferWrite(self._c_out, 1, '>')
  * 
  *         if not self._element_stack:             # <<<<<<<<<<<<<<
@@ -109291,7 +109064,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   __pyx_t_4 = ((!__pyx_t_6) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":788
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":793
  * 
  *         if not self._element_stack:
  *             self._status = WRITER_FINISHED             # <<<<<<<<<<<<<<
@@ -109303,14 +109076,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":789
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":794
  *         if not self._element_stack:
  *             self._status = WRITER_FINISHED
  *         self._handle_error(self._c_out.error)             # <<<<<<<<<<<<<<
  * 
  *     cdef _find_prefix(self, bytes href, dict flat_namespaces_map, list new_namespaces):
  */
-  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
@@ -109331,7 +109104,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_elemen
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":791
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":796
  *         self._handle_error(self._c_out.error)
  * 
  *     cdef _find_prefix(self, bytes href, dict flat_namespaces_map, list new_namespaces):             # <<<<<<<<<<<<<<
@@ -109355,7 +109128,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_find_prefix", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":792
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":797
  * 
  *     cdef _find_prefix(self, bytes href, dict flat_namespaces_map, list new_namespaces):
  *         if href is None:             # <<<<<<<<<<<<<<
@@ -109366,7 +109139,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":793
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":798
  *     cdef _find_prefix(self, bytes href, dict flat_namespaces_map, list new_namespaces):
  *         if href is None:
  *             return None             # <<<<<<<<<<<<<<
@@ -109381,7 +109154,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":794
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":799
  *         if href is None:
  *             return None
  *         if href in flat_namespaces_map:             # <<<<<<<<<<<<<<
@@ -109390,13 +109163,13 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
  */
   if (unlikely(((PyObject *)__pyx_v_flat_namespaces_map) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_2 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_v_href), ((PyObject *)__pyx_v_flat_namespaces_map), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_v_href), ((PyObject *)__pyx_v_flat_namespaces_map), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":795
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":800
  *             return None
  *         if href in flat_namespaces_map:
  *             return flat_namespaces_map[href]             # <<<<<<<<<<<<<<
@@ -109406,9 +109179,9 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
     __Pyx_XDECREF(__pyx_r);
     if (unlikely(((PyObject *)__pyx_v_flat_namespaces_map) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_flat_namespaces_map), ((PyObject *)__pyx_v_href)); if (!__pyx_t_3) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 795; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyDict_GetItem(((PyObject *)__pyx_v_flat_namespaces_map), ((PyObject *)__pyx_v_href)); if (!__pyx_t_3) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -109417,7 +109190,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":797
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":802
  *             return flat_namespaces_map[href]
  *         # need to create a new prefix
  *         prefixes = flat_namespaces_map.values()             # <<<<<<<<<<<<<<
@@ -109426,14 +109199,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
  */
   if (unlikely(((PyObject *)__pyx_v_flat_namespaces_map) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "values");
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_3 = __Pyx_PyDict_Values(__pyx_v_flat_namespaces_map); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyDict_Values(__pyx_v_flat_namespaces_map); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_v_prefixes = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":798
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":803
  *         # need to create a new prefix
  *         prefixes = flat_namespaces_map.values()
  *         i = 0             # <<<<<<<<<<<<<<
@@ -109443,7 +109216,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
   __Pyx_INCREF(__pyx_int_0);
   __pyx_v_i = __pyx_int_0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":799
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":804
  *         prefixes = flat_namespaces_map.values()
  *         i = 0
  *         while True:             # <<<<<<<<<<<<<<
@@ -109453,34 +109226,33 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
   while (1) {
     if (!1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":800
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":805
  *         i = 0
  *         while True:
  *             prefix = _utf8('ns%d' % i)             # <<<<<<<<<<<<<<
  *             if prefix not in prefixes:
  *                 new_namespaces.append((b'xmlns', prefix, href))
  */
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_59), __pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_62), __pyx_v_i); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(((PyObject *)__pyx_t_3))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 800; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(((PyObject *)__pyx_t_3))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_XDECREF(((PyObject *)__pyx_v_prefix));
-    __pyx_v_prefix = ((PyObject*)__pyx_t_4);
+    __Pyx_XDECREF_SET(__pyx_v_prefix, ((PyObject*)__pyx_t_4));
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":801
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":806
  *         while True:
  *             prefix = _utf8('ns%d' % i)
  *             if prefix not in prefixes:             # <<<<<<<<<<<<<<
  *                 new_namespaces.append((b'xmlns', prefix, href))
  *                 flat_namespaces_map[href] = prefix
  */
-    __pyx_t_1 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_v_prefix), __pyx_v_prefixes, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 801; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_v_prefix), __pyx_v_prefixes, Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":802
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":807
  *             prefix = _utf8('ns%d' % i)
  *             if prefix not in prefixes:
  *                 new_namespaces.append((b'xmlns', prefix, href))             # <<<<<<<<<<<<<<
@@ -109489,9 +109261,9 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
  */
       if (unlikely(((PyObject *)__pyx_v_new_namespaces) == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(((PyObject *)__pyx_n_b__xmlns));
       PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_n_b__xmlns));
@@ -109502,10 +109274,10 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
       __Pyx_INCREF(((PyObject *)__pyx_v_href));
       PyTuple_SET_ITEM(__pyx_t_4, 2, ((PyObject *)__pyx_v_href));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_href));
-      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_4)); if (unlikely(__pyx_t_5 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":803
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":808
  *             if prefix not in prefixes:
  *                 new_namespaces.append((b'xmlns', prefix, href))
  *                 flat_namespaces_map[href] = prefix             # <<<<<<<<<<<<<<
@@ -109514,11 +109286,11 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
  */
       if (unlikely(((PyObject *)__pyx_v_flat_namespaces_map) == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      if (PyDict_SetItem(((PyObject *)__pyx_v_flat_namespaces_map), ((PyObject *)__pyx_v_href), ((PyObject *)__pyx_v_prefix)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 803; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (PyDict_SetItem(((PyObject *)__pyx_v_flat_namespaces_map), ((PyObject *)__pyx_v_href), ((PyObject *)__pyx_v_prefix)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":804
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":809
  *                 new_namespaces.append((b'xmlns', prefix, href))
  *                 flat_namespaces_map[href] = prefix
  *                 return prefix             # <<<<<<<<<<<<<<
@@ -109533,17 +109305,16 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
     }
     __pyx_L7:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":805
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":810
  *                 flat_namespaces_map[href] = prefix
  *                 return prefix
  *             i += 1             # <<<<<<<<<<<<<<
  * 
  *     cdef _collect_namespaces(self, dict nsmap):
  */
-    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_i);
-    __pyx_v_i = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_4);
     __pyx_t_4 = 0;
   }
 
@@ -109563,7 +109334,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__find_prefix(CYTH
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":807
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":812
  *             i += 1
  * 
  *     cdef _collect_namespaces(self, dict nsmap):             # <<<<<<<<<<<<<<
@@ -109593,31 +109364,31 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_collect_namespaces", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":808
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":813
  * 
  *     cdef _collect_namespaces(self, dict nsmap):
  *         new_namespaces = []             # <<<<<<<<<<<<<<
  *         flat_namespaces_map = {}
  *         for ns, prefix in nsmap.iteritems():
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 808; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_new_namespaces = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":809
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":814
  *     cdef _collect_namespaces(self, dict nsmap):
  *         new_namespaces = []
  *         flat_namespaces_map = {}             # <<<<<<<<<<<<<<
  *         for ns, prefix in nsmap.iteritems():
  *             flat_namespaces_map[ns] = prefix
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 814; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_v_flat_namespaces_map = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":810
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":815
  *         new_namespaces = []
  *         flat_namespaces_map = {}
  *         for ns, prefix in nsmap.iteritems():             # <<<<<<<<<<<<<<
@@ -109627,9 +109398,9 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
   __pyx_t_2 = 0;
   if (unlikely(((PyObject *)__pyx_v_nsmap) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems");
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_5 = __Pyx_dict_iterator(((PyObject *)__pyx_v_nsmap), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_dict_iterator(((PyObject *)__pyx_v_nsmap), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_3), (&__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_XDECREF(__pyx_t_1);
   __pyx_t_1 = __pyx_t_5;
@@ -109637,26 +109408,24 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
   while (1) {
     __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_3, &__pyx_t_2, &__pyx_t_5, &__pyx_t_6, NULL, __pyx_t_4);
     if (unlikely(__pyx_t_7 == 0)) break;
-    if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_XDECREF(__pyx_v_ns);
-    __pyx_v_ns = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_prefix);
-    __pyx_v_prefix = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_6);
     __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":811
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":816
  *         flat_namespaces_map = {}
  *         for ns, prefix in nsmap.iteritems():
  *             flat_namespaces_map[ns] = prefix             # <<<<<<<<<<<<<<
  *             if prefix is None:
  *                 new_namespaces.append((None, b'xmlns', ns))
  */
-    if (PyDict_SetItem(((PyObject *)__pyx_v_flat_namespaces_map), __pyx_v_ns, __pyx_v_prefix) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 811; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(((PyObject *)__pyx_v_flat_namespaces_map), __pyx_v_ns, __pyx_v_prefix) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":812
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":817
  *         for ns, prefix in nsmap.iteritems():
  *             flat_namespaces_map[ns] = prefix
  *             if prefix is None:             # <<<<<<<<<<<<<<
@@ -109667,14 +109436,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
     __pyx_t_9 = (__pyx_t_8 != 0);
     if (__pyx_t_9) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":813
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":818
  *             flat_namespaces_map[ns] = prefix
  *             if prefix is None:
  *                 new_namespaces.append((None, b'xmlns', ns))             # <<<<<<<<<<<<<<
  *             else:
  *                 new_namespaces.append((b'xmlns', prefix, ns))
  */
-      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_INCREF(Py_None);
       PyTuple_SET_ITEM(__pyx_t_6, 0, Py_None);
@@ -109685,20 +109454,20 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
       __Pyx_INCREF(__pyx_v_ns);
       PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_ns);
       __Pyx_GIVEREF(__pyx_v_ns);
-      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
       goto __pyx_L5;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":815
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":820
  *                 new_namespaces.append((None, b'xmlns', ns))
  *             else:
  *                 new_namespaces.append((b'xmlns', prefix, ns))             # <<<<<<<<<<<<<<
  *         # merge in flat namespace map of parent
  *         if self._element_stack:
  */
-      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_INCREF(((PyObject *)__pyx_n_b__xmlns));
       PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_n_b__xmlns));
@@ -109709,14 +109478,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
       __Pyx_INCREF(__pyx_v_ns);
       PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_v_ns);
       __Pyx_GIVEREF(__pyx_v_ns);
-      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_new_namespaces, ((PyObject *)__pyx_t_6)); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 820; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
     }
     __pyx_L5:;
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":817
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":822
  *                 new_namespaces.append((b'xmlns', prefix, ns))
  *         # merge in flat namespace map of parent
  *         if self._element_stack:             # <<<<<<<<<<<<<<
@@ -109726,7 +109495,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
   __pyx_t_9 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
   if (__pyx_t_9) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":818
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":823
  *         # merge in flat namespace map of parent
  *         if self._element_stack:
  *             for ns, prefix in (<dict>self._element_stack[-1][-1]).iteritems():             # <<<<<<<<<<<<<<
@@ -109736,18 +109505,18 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
     __pyx_t_3 = 0;
     if (unlikely(((PyObject *)__pyx_v_self->_element_stack) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_self->_element_stack), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_6, -1, sizeof(long), PyInt_FromLong, 0, 1, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     if (unlikely(__pyx_t_5 == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems");
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_6 = __Pyx_dict_iterator(((PyObject *)((PyObject*)__pyx_t_5)), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_2), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_dict_iterator(((PyObject *)((PyObject*)__pyx_t_5)), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_2), (&__pyx_t_4)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_XDECREF(__pyx_t_1);
@@ -109756,38 +109525,36 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
     while (1) {
       __pyx_t_7 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_2, &__pyx_t_3, &__pyx_t_6, &__pyx_t_5, NULL, __pyx_t_4);
       if (unlikely(__pyx_t_7 == 0)) break;
-      if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 823; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_XDECREF(__pyx_v_ns);
-      __pyx_v_ns = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_6);
       __pyx_t_6 = 0;
-      __Pyx_XDECREF(__pyx_v_prefix);
-      __pyx_v_prefix = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_5);
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":819
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":824
  *         if self._element_stack:
  *             for ns, prefix in (<dict>self._element_stack[-1][-1]).iteritems():
  *                 if flat_namespaces_map.get(ns) is None:             # <<<<<<<<<<<<<<
  *                     # unknown or empty prefix => prefer a 'real' prefix
  *                     flat_namespaces_map[ns] = prefix
  */
-      __pyx_t_5 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_flat_namespaces_map), __pyx_v_ns, Py_None); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 819; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_flat_namespaces_map), __pyx_v_ns, Py_None); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_t_9 = (__pyx_t_5 == Py_None);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_t_8 = (__pyx_t_9 != 0);
       if (__pyx_t_8) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":821
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":826
  *                 if flat_namespaces_map.get(ns) is None:
  *                     # unknown or empty prefix => prefer a 'real' prefix
  *                     flat_namespaces_map[ns] = prefix             # <<<<<<<<<<<<<<
  *         return flat_namespaces_map, new_namespaces
  * 
  */
-        if (PyDict_SetItem(((PyObject *)__pyx_v_flat_namespaces_map), __pyx_v_ns, __pyx_v_prefix) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (PyDict_SetItem(((PyObject *)__pyx_v_flat_namespaces_map), __pyx_v_ns, __pyx_v_prefix) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 826; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L9;
       }
       __pyx_L9:;
@@ -109797,7 +109564,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":822
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":827
  *                     # unknown or empty prefix => prefer a 'real' prefix
  *                     flat_namespaces_map[ns] = prefix
  *         return flat_namespaces_map, new_namespaces             # <<<<<<<<<<<<<<
@@ -109805,7 +109572,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespac
  *     def write(self, *args, bint with_tail=True, bint pretty_print=False):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 822; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_flat_namespaces_map));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_flat_namespaces_map));
@@ -109877,17 +109644,17 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_11write(PyObject
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "write") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "write") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) < 0) {
       goto __pyx_L5_argtuple_error;
     } else {
     }
     if (values[0]) {
-      __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_with_tail = __Pyx_PyObject_IsTrue(values[0]); if (unlikely((__pyx_v_with_tail == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":824
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":829
  *         return flat_namespaces_map, new_namespaces
  * 
  *     def write(self, *args, bint with_tail=True, bint pretty_print=False):             # <<<<<<<<<<<<<<
@@ -109897,14 +109664,14 @@ static PyObject *__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_11write(PyObject
       __pyx_v_with_tail = ((int)1);
     }
     if (values[1]) {
-      __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_pretty_print = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pretty_print == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_pretty_print = ((int)0);
     }
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("write", 0, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("write", 0, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
   __Pyx_AddTraceback("lxml.etree._IncrementalFileWriter.write", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -109934,7 +109701,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("write", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":829
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":834
  *         Write subtrees or strings into the file.
  *         """
  *         assert self._c_out is not NULL             # <<<<<<<<<<<<<<
@@ -109944,11 +109711,11 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_out != NULL) != 0))) {
     PyErr_SetNone(PyExc_AssertionError);
-    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 829; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":830
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":835
  *         """
  *         assert self._c_out is not NULL
  *         for content in args:             # <<<<<<<<<<<<<<
@@ -109959,15 +109726,14 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
   for (;;) {
     if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    __Pyx_XDECREF(__pyx_v_content);
-    __pyx_v_content = __pyx_t_3;
+    __Pyx_XDECREF_SET(__pyx_v_content, __pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":831
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":836
  *         assert self._c_out is not NULL
  *         for content in args:
  *             if _isString(content):             # <<<<<<<<<<<<<<
@@ -109977,7 +109743,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
     __pyx_t_4 = (_isString(__pyx_v_content) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":832
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":837
  *         for content in args:
  *             if _isString(content):
  *                 if self._status != WRITER_IN_ELEMENT:             # <<<<<<<<<<<<<<
@@ -109987,7 +109753,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
       __pyx_t_4 = ((__pyx_v_self->_status != __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":833
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":838
  *             if _isString(content):
  *                 if self._status != WRITER_IN_ELEMENT:
  *                     if self._status > WRITER_IN_ELEMENT or content.strip():             # <<<<<<<<<<<<<<
@@ -109996,12 +109762,12 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  */
         __pyx_t_4 = (__pyx_v_self->_status > __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT);
         if (!__pyx_t_4) {
-          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_content, __pyx_n_s__strip); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_content, __pyx_n_s__strip); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_3);
-          __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_5);
           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
           __pyx_t_7 = __pyx_t_6;
         } else {
@@ -110009,21 +109775,21 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
         }
         if (__pyx_t_7) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":834
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":839
  *                 if self._status != WRITER_IN_ELEMENT:
  *                     if self._status > WRITER_IN_ELEMENT or content.strip():
  *                         raise LxmlSyntaxError("not in an element")             # <<<<<<<<<<<<<<
  *                 content = _utf8(content)
  *                 tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
  */
-          __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_268), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_3 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_271), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_3);
           __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
           __Pyx_Raise(__pyx_t_3, 0, 0, 0);
           __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           goto __pyx_L7;
         }
         __pyx_L7:;
@@ -110031,20 +109797,19 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
       }
       __pyx_L6:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":835
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":840
  *                     if self._status > WRITER_IN_ELEMENT or content.strip():
  *                         raise LxmlSyntaxError("not in an element")
  *                 content = _utf8(content)             # <<<<<<<<<<<<<<
  *                 tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
  *             elif iselement(content):
  */
-      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_content)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_content)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_content);
-      __pyx_v_content = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_content, __pyx_t_3);
       __pyx_t_3 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":836
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":841
  *                         raise LxmlSyntaxError("not in an element")
  *                 content = _utf8(content)
  *                 tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)             # <<<<<<<<<<<<<<
@@ -110055,29 +109820,29 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
       goto __pyx_L5;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":837
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":842
  *                 content = _utf8(content)
  *                 tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
  *             elif iselement(content):             # <<<<<<<<<<<<<<
  *                 if self._status > WRITER_IN_ELEMENT:
  *                     raise LxmlSyntaxError("cannot append trailing element to complete XML document")
  */
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__iselement); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__iselement); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_content);
     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_content);
     __Pyx_GIVEREF(__pyx_v_content);
-    __pyx_t_8 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":838
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":843
  *                 tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
  *             elif iselement(content):
  *                 if self._status > WRITER_IN_ELEMENT:             # <<<<<<<<<<<<<<
@@ -110087,26 +109852,26 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
       __pyx_t_7 = ((__pyx_v_self->_status > __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
       if (__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":839
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":844
  *             elif iselement(content):
  *                 if self._status > WRITER_IN_ELEMENT:
  *                     raise LxmlSyntaxError("cannot append trailing element to complete XML document")             # <<<<<<<<<<<<<<
  *                 _writeNodeToBuffer(self._c_out, (<_Element>content)._c_node,
  *                                    self._c_encoding, NULL, OUTPUT_METHOD_XML,
  */
-        __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
-        __pyx_t_5 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_269), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_k_tuple_272), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         __Pyx_Raise(__pyx_t_5, 0, 0, 0);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[6]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L8;
       }
       __pyx_L8:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":842
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":847
  *                 _writeNodeToBuffer(self._c_out, (<_Element>content)._c_node,
  *                                    self._c_encoding, NULL, OUTPUT_METHOD_XML,
  *                                    False, False, pretty_print, with_tail, False)             # <<<<<<<<<<<<<<
@@ -110115,7 +109880,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
  */
       __pyx_f_4lxml_5etree__writeNodeToBuffer(__pyx_v_self->_c_out, ((struct LxmlElement *)__pyx_v_content)->_c_node, __pyx_v_self->_c_encoding, NULL, __pyx_e_4lxml_5etree_OUTPUT_METHOD_XML, 0, 0, __pyx_v_pretty_print, __pyx_v_with_tail, 0);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":843
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":848
  *                                    self._c_encoding, NULL, OUTPUT_METHOD_XML,
  *                                    False, False, pretty_print, with_tail, False)
  *                 if (<_Element>content)._c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -110125,7 +109890,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
       __pyx_t_7 = ((((struct LxmlElement *)__pyx_v_content)->_c_node->type == XML_ELEMENT_NODE) != 0);
       if (__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":844
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":849
  *                                    False, False, pretty_print, with_tail, False)
  *                 if (<_Element>content)._c_node.type == tree.XML_ELEMENT_NODE:
  *                     if not self._element_stack:             # <<<<<<<<<<<<<<
@@ -110136,7 +109901,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
         __pyx_t_4 = ((!__pyx_t_7) != 0);
         if (__pyx_t_4) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":845
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":850
  *                 if (<_Element>content)._c_node.type == tree.XML_ELEMENT_NODE:
  *                     if not self._element_stack:
  *                         self._status = WRITER_FINISHED             # <<<<<<<<<<<<<<
@@ -110154,37 +109919,37 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":847
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":852
  *                         self._status = WRITER_FINISHED
  *             else:
  *                 raise TypeError("got invalid input value of type %s, expected string or Element" % type(content))             # <<<<<<<<<<<<<<
  *             self._handle_error(self._c_out.error)
  * 
  */
-      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_270), ((PyObject *)Py_TYPE(__pyx_v_content))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_273), ((PyObject *)Py_TYPE(__pyx_v_content))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_t_5));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
       __pyx_t_5 = 0;
-      __pyx_t_5 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
       __Pyx_Raise(__pyx_t_5, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":848
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":853
  *             else:
  *                 raise TypeError("got invalid input value of type %s, expected string or Element" % type(content))
  *             self._handle_error(self._c_out.error)             # <<<<<<<<<<<<<<
  * 
  *     cdef _close(self, bint raise_on_error):
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_self->_c_out->error); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   }
@@ -110206,7 +109971,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_IncrementalFileWriter_10write(struct _
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":850
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":855
  *             self._handle_error(self._c_out.error)
  * 
  *     cdef _close(self, bint raise_on_error):             # <<<<<<<<<<<<<<
@@ -110227,7 +109992,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_close", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":851
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":856
  * 
  *     cdef _close(self, bint raise_on_error):
  *         if raise_on_error:             # <<<<<<<<<<<<<<
@@ -110237,7 +110002,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   __pyx_t_1 = (__pyx_v_raise_on_error != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":852
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":857
  *     cdef _close(self, bint raise_on_error):
  *         if raise_on_error:
  *             if self._status < WRITER_IN_ELEMENT:             # <<<<<<<<<<<<<<
@@ -110247,26 +110012,26 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
     __pyx_t_1 = ((__pyx_v_self->_status < __pyx_e_4lxml_5etree_WRITER_IN_ELEMENT) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":853
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":858
  *         if raise_on_error:
  *             if self._status < WRITER_IN_ELEMENT:
  *                 raise LxmlSyntaxError("no content written")             # <<<<<<<<<<<<<<
  *             if self._element_stack:
  *                 raise LxmlSyntaxError("pending open tags on close")
  */
-      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_272), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_275), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":854
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":859
  *             if self._status < WRITER_IN_ELEMENT:
  *                 raise LxmlSyntaxError("no content written")
  *             if self._element_stack:             # <<<<<<<<<<<<<<
@@ -110276,21 +110041,21 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
     __pyx_t_1 = (((PyObject *)__pyx_v_self->_element_stack) != Py_None) && (PyList_GET_SIZE(((PyObject *)__pyx_v_self->_element_stack)) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":855
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":860
  *                 raise LxmlSyntaxError("no content written")
  *             if self._element_stack:
  *                 raise LxmlSyntaxError("pending open tags on close")             # <<<<<<<<<<<<<<
  *         error_result = self._c_out.error
  *         if error_result == xmlerror.XML_ERR_OK:
  */
-      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_274), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_277), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_Raise(__pyx_t_2, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[6]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
     }
     __pyx_L5:;
@@ -110298,7 +110063,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":856
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":861
  *             if self._element_stack:
  *                 raise LxmlSyntaxError("pending open tags on close")
  *         error_result = self._c_out.error             # <<<<<<<<<<<<<<
@@ -110308,7 +110073,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   __pyx_t_4 = __pyx_v_self->_c_out->error;
   __pyx_v_error_result = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":857
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":862
  *                 raise LxmlSyntaxError("pending open tags on close")
  *         error_result = self._c_out.error
  *         if error_result == xmlerror.XML_ERR_OK:             # <<<<<<<<<<<<<<
@@ -110318,7 +110083,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   __pyx_t_1 = ((__pyx_v_error_result == XML_ERR_OK) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":858
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":863
  *         error_result = self._c_out.error
  *         if error_result == xmlerror.XML_ERR_OK:
  *             error_result = tree.xmlOutputBufferClose(self._c_out)             # <<<<<<<<<<<<<<
@@ -110327,7 +110092,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  */
     __pyx_v_error_result = xmlOutputBufferClose(__pyx_v_self->_c_out);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":859
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":864
  *         if error_result == xmlerror.XML_ERR_OK:
  *             error_result = tree.xmlOutputBufferClose(self._c_out)
  *             if error_result > 0:             # <<<<<<<<<<<<<<
@@ -110337,7 +110102,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
     __pyx_t_1 = ((__pyx_v_error_result > 0) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":860
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":865
  *             error_result = tree.xmlOutputBufferClose(self._c_out)
  *             if error_result > 0:
  *                 error_result = xmlerror.XML_ERR_OK             # <<<<<<<<<<<<<<
@@ -110352,7 +110117,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":862
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":867
  *                 error_result = xmlerror.XML_ERR_OK
  *         else:
  *             tree.xmlOutputBufferClose(self._c_out)             # <<<<<<<<<<<<<<
@@ -110363,7 +110128,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":863
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":868
  *         else:
  *             tree.xmlOutputBufferClose(self._c_out)
  *         self._c_out = NULL             # <<<<<<<<<<<<<<
@@ -110372,7 +110137,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
  */
   __pyx_v_self->_c_out = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":864
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":869
  *             tree.xmlOutputBufferClose(self._c_out)
  *         self._c_out = NULL
  *         if raise_on_error:             # <<<<<<<<<<<<<<
@@ -110382,14 +110147,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   __pyx_t_1 = (__pyx_v_raise_on_error != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":865
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":870
  *         self._c_out = NULL
  *         if raise_on_error:
  *             self._handle_error(error_result)             # <<<<<<<<<<<<<<
  * 
  *     cdef _handle_error(self, int error_result):
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(__pyx_v_self, __pyx_v_error_result); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     goto __pyx_L8;
@@ -110409,7 +110174,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close(struct __p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":867
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":872
  *             self._handle_error(error_result)
  * 
  *     cdef _handle_error(self, int error_result):             # <<<<<<<<<<<<<<
@@ -110429,7 +110194,7 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_handle_error", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":868
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":873
  * 
  *     cdef _handle_error(self, int error_result):
  *         if error_result != xmlerror.XML_ERR_OK:             # <<<<<<<<<<<<<<
@@ -110439,36 +110204,36 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
   __pyx_t_1 = ((__pyx_v_error_result != XML_ERR_OK) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":869
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":874
  *     cdef _handle_error(self, int error_result):
  *         if error_result != xmlerror.XML_ERR_OK:
  *             if self._writer is not None:             # <<<<<<<<<<<<<<
  *                 self._writer._exc_context._raise_if_stored()
  *             _raiseSerialisationError(error_result)
  */
-    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___writer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___writer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = (__pyx_t_2 != Py_None);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":870
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":875
  *         if error_result != xmlerror.XML_ERR_OK:
  *             if self._writer is not None:
  *                 self._writer._exc_context._raise_if_stored()             # <<<<<<<<<<<<<<
  *             _raiseSerialisationError(error_result)
  * 
  */
-      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___writer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___writer); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s___exc_context); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s___exc_context); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s___raise_if_stored); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s___raise_if_stored); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -110476,14 +110241,14 @@ static PyObject *__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error(str
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":871
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":876
  *             if self._writer is not None:
  *                 self._writer._exc_context._raise_if_stored()
  *             _raiseSerialisationError(error_result)             # <<<<<<<<<<<<<<
  * 
  * @cython.final
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__raiseSerialisationError(__pyx_v_error_result); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L3;
@@ -110534,11 +110299,11 @@ static int __pyx_pw_4lxml_5etree_18_FileWriterElement_1__cinit__(PyObject *__pyx
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__element_config)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -110551,13 +110316,13 @@ static int __pyx_pw_4lxml_5etree_18_FileWriterElement_1__cinit__(PyObject *__pyx
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._FileWriterElement.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writer), __pyx_ptype_4lxml_5etree__IncrementalFileWriter, 0, "writer", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_writer), __pyx_ptype_4lxml_5etree__IncrementalFileWriter, 0, "writer", 0))) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_18_FileWriterElement___cinit__(((struct __pyx_obj_4lxml_5etree__FileWriterElement *)__pyx_v_self), __pyx_v_writer, __pyx_v_element_config);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -110567,7 +110332,7 @@ static int __pyx_pw_4lxml_5etree_18_FileWriterElement_1__cinit__(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":879
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":884
  *     cdef _IncrementalFileWriter _writer
  * 
  *     def __cinit__(self, _IncrementalFileWriter writer not None, element_config):             # <<<<<<<<<<<<<<
@@ -110580,7 +110345,7 @@ static int __pyx_pf_4lxml_5etree_18_FileWriterElement___cinit__(struct __pyx_obj
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":880
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":885
  * 
  *     def __cinit__(self, _IncrementalFileWriter writer not None, element_config):
  *         self._writer = writer             # <<<<<<<<<<<<<<
@@ -110593,7 +110358,7 @@ static int __pyx_pf_4lxml_5etree_18_FileWriterElement___cinit__(struct __pyx_obj
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_writer));
   __pyx_v_self->_writer = __pyx_v_writer;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":881
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":886
  *     def __cinit__(self, _IncrementalFileWriter writer not None, element_config):
  *         self._writer = writer
  *         self._element = element_config             # <<<<<<<<<<<<<<
@@ -110622,7 +110387,7 @@ static PyObject *__pyx_pw_4lxml_5etree_18_FileWriterElement_3__enter__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":883
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":888
  *         self._element = element_config
  * 
  *     def __enter__(self):             # <<<<<<<<<<<<<<
@@ -110640,7 +110405,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18_FileWriterElement_2__enter__(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__enter__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":884
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":889
  * 
  *     def __enter__(self):
  *         self._writer._write_start_element(self._element)             # <<<<<<<<<<<<<<
@@ -110649,7 +110414,7 @@ static PyObject *__pyx_pf_4lxml_5etree_18_FileWriterElement_2__enter__(struct __
  */
   __pyx_t_1 = __pyx_v_self->_element;
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_element(__pyx_v_self->_writer, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_start_element(__pyx_v_self->_writer, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -110700,16 +110465,16 @@ static PyObject *__pyx_pw_4lxml_5etree_18_FileWriterElement_5__exit__(PyObject *
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__exc_val)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 1); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__exc_tb)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, 2); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__exit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__exit__") < 0)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
       goto __pyx_L5_argtuple_error;
@@ -110724,7 +110489,7 @@ static PyObject *__pyx_pw_4lxml_5etree_18_FileWriterElement_5__exit__(PyObject *
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 886; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__exit__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[6]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._FileWriterElement.__exit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -110735,7 +110500,7 @@ static PyObject *__pyx_pw_4lxml_5etree_18_FileWriterElement_5__exit__(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":886
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":891
  *         self._writer._write_start_element(self._element)
  * 
  *     def __exit__(self, exc_type, exc_val, exc_tb):             # <<<<<<<<<<<<<<
@@ -110752,14 +110517,14 @@ static PyObject *__pyx_pf_4lxml_5etree_18_FileWriterElement_4__exit__(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__exit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":887
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":892
  * 
  *     def __exit__(self, exc_type, exc_val, exc_tb):
  *         self._writer._write_end_element(self._element)             # <<<<<<<<<<<<<<
  */
   __pyx_t_1 = __pyx_v_self->_element;
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_element(__pyx_v_self->_writer, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_22_IncrementalFileWriter__write_end_element(__pyx_v_self->_writer, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -110850,8 +110615,7 @@ static int __pyx_f_4lxml_5etree__buildIterparseEventFilter(PyObject *__pyx_v_eve
       }
       __Pyx_GOTREF(__pyx_t_4);
     }
-    __Pyx_XDECREF(__pyx_v_event);
-    __pyx_v_event = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_event, __pyx_t_4);
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":17
@@ -110907,7 +110671,7 @@ static int __pyx_f_4lxml_5etree__buildIterparseEventFilter(PyObject *__pyx_v_eve
  *             event_filter |= ITERPARSE_FILTER_START_NS
  *         elif event == u'end-ns':
  */
-    __pyx_t_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_275), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_278), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     if (__pyx_t_5) {
@@ -110930,7 +110694,7 @@ static int __pyx_f_4lxml_5etree__buildIterparseEventFilter(PyObject *__pyx_v_eve
  *             event_filter |= ITERPARSE_FILTER_END_NS
  *         elif event == u'comment':
  */
-    __pyx_t_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_276), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_279), Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     if (__pyx_t_5) {
@@ -111000,7 +110764,7 @@ static int __pyx_f_4lxml_5etree__buildIterparseEventFilter(PyObject *__pyx_v_eve
  *     return event_filter
  * 
  */
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_277), __pyx_v_event); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_280), __pyx_v_event); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_4), 0, 0);
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -111205,8 +110969,7 @@ static int __pyx_f_4lxml_5etree__appendStartNsEvents(xmlNode *__pyx_v_c_node, Py
     __Pyx_GIVEREF(__pyx_t_4);
     __pyx_t_3 = 0;
     __pyx_t_4 = 0;
-    __Pyx_XDECREF(((PyObject *)__pyx_v_ns_tuple));
-    __pyx_v_ns_tuple = ((PyObject*)__pyx_t_5);
+    __Pyx_XDECREF_SET(__pyx_v_ns_tuple, ((PyObject*)__pyx_t_5));
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":51
@@ -111222,9 +110985,9 @@ static int __pyx_f_4lxml_5etree__appendStartNsEvents(xmlNode *__pyx_v_c_node, Py
     }
     __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_275));
-    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_u_275));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_275));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_278));
+    PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_kp_u_278));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_278));
     __Pyx_INCREF(((PyObject *)__pyx_v_ns_tuple));
     PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_ns_tuple));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_ns_tuple));
@@ -111668,7 +111431,7 @@ static PyObject *__pyx_f_4lxml_5etree_17_IterparseContext__setEventFilter(struct
  */
   __pyx_t_2 = (__pyx_v_tag == Py_None);
   if (!__pyx_t_2) {
-    __pyx_t_3 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_115), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_118), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_t_5 = __pyx_t_4;
@@ -112263,8 +112026,8 @@ static int __pyx_f_4lxml_5etree_17_IterparseContext_endNode(struct __pyx_obj_4lx
  *                 for i from 0 <= i < ns_count:
  *                     self._events.append(event)
  */
-      __Pyx_INCREF(((PyObject *)__pyx_k_tuple_278));
-      __pyx_v_event = __pyx_k_tuple_278;
+      __Pyx_INCREF(((PyObject *)__pyx_k_tuple_281));
+      __pyx_v_event = __pyx_k_tuple_281;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":167
  *             if ns_count > 0:
@@ -113713,18 +113476,18 @@ static int __pyx_pw_4lxml_5etree_9iterparse_1__init__(PyObject *__pyx_v_self, Py
  *                  attribute_defaults=False, dtd_validation=False,
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
  */
-    values[1] = ((PyObject *)__pyx_k_tuple_279);
+    values[1] = ((PyObject *)__pyx_k_tuple_282);
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_280;
-    values[4] = __pyx_k_281;
-    values[5] = __pyx_k_282;
-    values[6] = __pyx_k_283;
-    values[7] = __pyx_k_284;
-    values[8] = __pyx_k_285;
-    values[9] = __pyx_k_286;
-    values[10] = __pyx_k_287;
-    values[11] = __pyx_k_288;
-    values[12] = __pyx_k_289;
+    values[3] = __pyx_k_283;
+    values[4] = __pyx_k_284;
+    values[5] = __pyx_k_285;
+    values[6] = __pyx_k_286;
+    values[7] = __pyx_k_287;
+    values[8] = __pyx_k_288;
+    values[9] = __pyx_k_289;
+    values[10] = __pyx_k_290;
+    values[11] = __pyx_k_291;
+    values[12] = __pyx_k_292;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":372
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
@@ -113734,8 +113497,8 @@ static int __pyx_pw_4lxml_5etree_9iterparse_1__init__(PyObject *__pyx_v_self, Py
  *         cdef _IterparseContext context
  */
     values[13] = ((PyObject *)Py_None);
-    values[14] = __pyx_k_290;
-    values[15] = __pyx_k_291;
+    values[14] = __pyx_k_293;
+    values[15] = __pyx_k_294;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":373
  *                  compact=True, resolve_entities=True, remove_comments=False,
@@ -113892,8 +113655,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  *             self._close_source_after_read = True
  */
       __Pyx_INCREF(__pyx_v_filename);
-      __Pyx_DECREF(__pyx_v_source);
-      __pyx_v_source = __pyx_v_filename;
+      __Pyx_DECREF_SET(__pyx_v_source, __pyx_v_filename);
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -113916,8 +113678,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
     __pyx_t_4 = PyObject_Call(__pyx_builtin_open, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 381; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(__pyx_v_source);
-    __pyx_v_source = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_source, __pyx_t_4);
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":382
@@ -114040,8 +113801,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
         }
         __Pyx_GOTREF(__pyx_t_7);
       }
-      __Pyx_XDECREF(__pyx_v_event);
-      __pyx_v_event = __pyx_t_7;
+      __Pyx_XDECREF_SET(__pyx_v_event, __pyx_t_7);
       __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":391
@@ -114051,11 +113811,11 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
  * 
  *         self._events = events
  */
-      __pyx_t_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_275), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_278), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       if (__pyx_t_2) {
-        __pyx_t_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_276), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyObject_RichCompare(__pyx_v_event, ((PyObject *)__pyx_kp_u_279), Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
         __pyx_t_8 = __pyx_t_1;
@@ -114080,8 +113840,7 @@ static int __pyx_pf_4lxml_5etree_9iterparse___init__(struct __pyx_obj_4lxml_5etr
     __pyx_t_4 = ((PyObject *)PyList_AsTuple(((PyObject*)__pyx_t_3))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    __Pyx_DECREF(__pyx_v_events);
-    __pyx_v_events = ((PyObject *)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_events, ((PyObject *)__pyx_t_4));
     __pyx_t_4 = 0;
     goto __pyx_L5;
   }
@@ -114817,8 +114576,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__close_source(struct __pyx_obj_
  *             self._source = None
  */
         __Pyx_INCREF(Py_None);
-        __Pyx_XDECREF(__pyx_v_close);
-        __pyx_v_close = Py_None;
+        __Pyx_XDECREF_SET(__pyx_v_close, Py_None);
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
@@ -114953,7 +114711,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9iterparse_2copy(CYTHON_UNUSED struct __p
  * 
  *     def __iter__(self):
  */
-  __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_292), 0, 0);
+  __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_295), 0, 0);
   {__pyx_filename = __pyx_f[14]; __pyx_lineno = 475; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -115329,11 +115087,10 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  */
       __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_source, __pyx_n_s__read); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_293), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_296), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __Pyx_XDECREF(__pyx_v_data);
-      __pyx_v_data = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_data, __pyx_t_5);
       __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":507
@@ -115365,7 +115122,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                 c_data_len = python.PyBytes_GET_SIZE(data)
  *                 c_data = _cstr(data)
  */
-        __pyx_t_5 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_295), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyObject_Call(__pyx_builtin_TypeError, ((PyObject *)__pyx_k_tuple_298), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_Raise(__pyx_t_5, 0, 0, 0);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -115420,7 +115177,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                     self._buffer = python.PyBytes_FromStringAndSize(
  *                         NULL, __ITERPARSE_CHUNK_SIZE)
  */
-      __pyx_t_3 = (__pyx_v_self->_buffer == Py_None);
+      __pyx_t_3 = (__pyx_v_self->_buffer == ((PyObject*)Py_None));
       __pyx_t_4 = (__pyx_t_3 != 0);
       if (__pyx_t_4) {
 
@@ -115443,8 +115200,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  */
         __Pyx_GIVEREF(__pyx_t_5);
         __Pyx_GOTREF(__pyx_v_self->_buffer);
-        __Pyx_DECREF(__pyx_v_self->_buffer);
-        __pyx_v_self->_buffer = __pyx_t_5;
+        __Pyx_DECREF(((PyObject *)__pyx_v_self->_buffer));
+        __pyx_v_self->_buffer = ((PyObject*)__pyx_t_5);
         __pyx_t_5 = 0;
         goto __pyx_L7;
       }
@@ -115457,7 +115214,7 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
  *                 with nogil:
  *                     c_data_len = stdio.fread(
  */
-      __pyx_t_5 = __pyx_v_self->_buffer;
+      __pyx_t_5 = ((PyObject *)__pyx_v_self->_buffer);
       __Pyx_INCREF(__pyx_t_5);
       __pyx_v_c_data = PyBytes_AS_STRING(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -115615,8 +115372,8 @@ static PyObject *__pyx_f_4lxml_5etree_9iterparse__read_more_events(struct __pyx_
       __Pyx_INCREF(Py_None);
       __Pyx_GIVEREF(Py_None);
       __Pyx_GOTREF(__pyx_v_self->_buffer);
-      __Pyx_DECREF(__pyx_v_self->_buffer);
-      __pyx_v_self->_buffer = Py_None;
+      __Pyx_DECREF(((PyObject *)__pyx_v_self->_buffer));
+      __pyx_v_self->_buffer = ((PyObject*)Py_None);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":533
  *                 self._close_source()
@@ -115742,7 +115499,7 @@ static PyObject *__pyx_pw_4lxml_5etree_9iterparse_4root_1__get__(PyObject *__pyx
  *     cdef object _events
  *     cdef readonly object root             # <<<<<<<<<<<<<<
  *     cdef object _source
- *     cdef object _buffer
+ *     cdef bytes _buffer
  */
 
 static PyObject *__pyx_pf_4lxml_5etree_9iterparse_4root___get__(struct __pyx_obj_4lxml_5etree_iterparse *__pyx_v_self) {
@@ -115784,7 +115541,7 @@ static int __pyx_pw_4lxml_5etree_8iterwalk_1__init__(PyObject *__pyx_v_self, PyO
  *         cdef _Element root
  *         cdef int ns_count
  */
-    values[1] = ((PyObject *)__pyx_k_tuple_296);
+    values[1] = ((PyObject *)__pyx_k_tuple_299);
     values[2] = ((PyObject *)Py_None);
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
@@ -115889,7 +115646,7 @@ static int __pyx_pf_4lxml_5etree_8iterwalk___init__(struct __pyx_obj_4lxml_5etre
  */
   __pyx_t_3 = (__pyx_v_tag == Py_None);
   if (!__pyx_t_3) {
-    __pyx_t_1 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_115), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_RichCompare(__pyx_v_tag, ((PyObject *)__pyx_kp_s_118), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 561; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_5 = __pyx_t_4;
@@ -116169,7 +115926,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *             node = self._node_stack[self._index][0]
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_297), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_300), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_r = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -116257,8 +116014,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_node));
-    __pyx_v_node = ((struct LxmlElement *)__pyx_t_2);
+    __Pyx_XDECREF_SET(__pyx_v_node, ((struct LxmlElement *)__pyx_t_2));
     __pyx_t_2 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":594
@@ -116292,8 +116048,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
       __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_2), __pyx_v_c_child)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 597; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __Pyx_XDECREF(((PyObject *)__pyx_v_next_node));
-      __pyx_v_next_node = ((struct LxmlElement *)__pyx_t_5);
+      __Pyx_XDECREF_SET(__pyx_v_next_node, ((struct LxmlElement *)__pyx_t_5));
       __pyx_t_5 = 0;
       goto __pyx_L7;
     }
@@ -116307,8 +116062,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  *                     # back off through parents
  */
       __Pyx_INCREF(Py_None);
-      __Pyx_XDECREF(((PyObject *)__pyx_v_next_node));
-      __pyx_v_next_node = ((struct LxmlElement *)Py_None);
+      __Pyx_XDECREF_SET(__pyx_v_next_node, ((struct LxmlElement *)Py_None));
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":601
  *                 # back off
@@ -116340,8 +116094,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  */
         __pyx_t_5 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree_iterwalk *)__pyx_v_self->__pyx_vtab)->_end_node(__pyx_v_self)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 604; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_DECREF(((PyObject *)__pyx_v_node));
-        __pyx_v_node = ((struct LxmlElement *)__pyx_t_5);
+        __Pyx_DECREF_SET(__pyx_v_node, ((struct LxmlElement *)__pyx_t_5));
         __pyx_t_5 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":605
@@ -116379,8 +116132,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
         __Pyx_GOTREF(__pyx_t_2);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         if (!(likely(((__pyx_t_2) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_2, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_DECREF(((PyObject *)__pyx_v_next_node));
-        __pyx_v_next_node = ((struct LxmlElement *)__pyx_t_2);
+        __Pyx_DECREF_SET(__pyx_v_next_node, ((struct LxmlElement *)__pyx_t_2));
         __pyx_t_2 = 0;
       }
       __pyx_L9_break:;
@@ -116495,7 +116247,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8iterwalk_4__next__(struct __pyx_obj_4lxm
  * 
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_5 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_298), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_v_self->_pop_event, ((PyObject *)__pyx_k_tuple_301), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_r = __pyx_t_5;
       __pyx_t_5 = 0;
@@ -116852,8 +116604,8 @@ static struct LxmlElement *__pyx_f_4lxml_5etree_8iterwalk__end_node(struct __pyx
  *             for i from 0 <= i < ns_count:
  *                 self._events.append(event)
  */
-    __Pyx_INCREF(((PyObject *)__pyx_k_tuple_299));
-    __pyx_v_event = __pyx_k_tuple_299;
+    __Pyx_INCREF(((PyObject *)__pyx_k_tuple_302));
+    __pyx_v_event = __pyx_k_tuple_302;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":642
  *         if self._event_filter & ITERPARSE_FILTER_END_NS:
@@ -117025,12 +116777,11 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  * 
  *     # ElementTree compatible implementation: parse and look for 'id' attributes
  */
-    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_301), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_304), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_XGOTREF(__pyx_v_4lxml_5etree__find_id_attributes);
-    __Pyx_DECREF(__pyx_v_4lxml_5etree__find_id_attributes);
+    __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__find_id_attributes, __pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
-    __pyx_v_4lxml_5etree__find_id_attributes = __pyx_t_3;
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -117126,8 +116877,7 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
       }
       __Pyx_GOTREF(__pyx_t_5);
     }
-    __Pyx_XDECREF(__pyx_v_elem);
-    __pyx_v_elem = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_elem, __pyx_t_5);
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":21
@@ -117139,7 +116889,7 @@ static PyObject *__pyx_pf_4lxml_5etree_46XMLID(CYTHON_UNUSED PyObject *__pyx_sel
  */
     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_elem, __pyx_n_s__get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_302), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_305), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     if (PyDict_SetItem(((PyObject *)__pyx_v_dic), __pyx_t_4, __pyx_v_elem) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -117637,7 +117387,7 @@ static int __pyx_pf_4lxml_5etree_7_IDDict___cinit__(struct __pyx_obj_4lxml_5etre
  *         self._doc = doc
  *         self._keys  = None
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_303), 0, 0);
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_306), 0, 0);
     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -117842,7 +117592,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_4__getitem__(struct __pyx_obj_4l
  *         c_attr = c_id.attr
  *         if c_attr is NULL or c_attr.parent is NULL:
  */
-    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_304), 0, 0);
+    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_307), 0, 0);
     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -117881,7 +117631,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_4__getitem__(struct __pyx_obj_4l
  *         return _elementFactory(self._doc, c_attr.parent)
  * 
  */
-    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_305), 0, 0);
+    __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_kp_u_308), 0, 0);
     {__pyx_filename = __pyx_f[15]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
@@ -118233,7 +117983,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_14keys(struct __pyx_obj_4lxml_5e
  *     def __iter__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_keys, 0, 0, NULL, NULL, &__pyx_k_slice_306, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_keys, 0, 0, NULL, NULL, &__pyx_k_slice_309, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_r = __pyx_t_3;
   __pyx_t_3 = 0;
@@ -118536,7 +118286,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_22items(struct __pyx_obj_4lxml_5
  *     def iteritems(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_items, 0, 0, NULL, NULL, &__pyx_k_slice_307, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_self->_items, 0, 0, NULL, NULL, &__pyx_k_slice_310, 0, 0, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_r = __pyx_t_3;
   __pyx_t_3 = 0;
@@ -118763,8 +118513,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_26values(struct __pyx_obj_4lxml_
       }
       __Pyx_GOTREF(__pyx_t_6);
     }
-    __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_6);
     __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":144
@@ -118776,8 +118525,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7_IDDict_26values(struct __pyx_obj_4lxml_
  */
     __pyx_t_6 = PyTuple_GET_ITEM(__pyx_v_item, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_XDECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_6);
     __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":145
@@ -119400,7 +119148,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_9error_log___get__(struct __pyx
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
   if (unlikely(!(__pyx_t_1 != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_308));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_311));
     {__pyx_filename = __pyx_f[16]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -119532,7 +119280,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_2__call__(struct __pyx_obj_4lxm
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __pyx_t_2 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
   if (unlikely(!(__pyx_t_2 != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_309));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_312));
     {__pyx_filename = __pyx_f[16]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -119666,7 +119414,7 @@ static PyObject *__pyx_pf_4lxml_5etree_8XInclude_2__call__(struct __pyx_obj_4lxm
  *                     u"XInclude processing failed"),
  *                 self._error_log)
  */
-    __pyx_t_5 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_310)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_313)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":54
@@ -121400,8 +121148,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
       __Pyx_INCREF(__pyx_v_extensions);
       PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_extensions);
       __Pyx_GIVEREF(__pyx_v_extensions);
-      __Pyx_DECREF(__pyx_v_extensions);
-      __pyx_v_extensions = ((PyObject *)__pyx_t_1);
+      __Pyx_DECREF_SET(__pyx_v_extensions, ((PyObject *)__pyx_t_1));
       __pyx_t_1 = 0;
       goto __pyx_L4;
     }
@@ -121460,8 +121207,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
         }
         __Pyx_GOTREF(__pyx_t_6);
       }
-      __Pyx_XDECREF(__pyx_v_extension);
-      __pyx_v_extension = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_v_extension, __pyx_t_6);
       __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":69
@@ -121613,14 +121359,11 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L12_unpacking_done:;
         }
-        __Pyx_XDECREF(__pyx_v_ns_uri);
-        __pyx_v_ns_uri = __pyx_t_12;
+        __Pyx_XDECREF_SET(__pyx_v_ns_uri, __pyx_t_12);
         __pyx_t_12 = 0;
-        __Pyx_XDECREF(__pyx_v_name);
-        __pyx_v_name = __pyx_t_14;
+        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_14);
         __pyx_t_14 = 0;
-        __Pyx_XDECREF(__pyx_v_function);
-        __pyx_v_function = __pyx_t_11;
+        __Pyx_XDECREF_SET(__pyx_v_function, __pyx_t_11);
         __pyx_t_11 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":70
@@ -121641,7 +121384,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                     ns_utf   = self._to_utf(ns_uri)
  *                     name_utf = self._to_utf(name)
  */
-          __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_158), 0, 0);
+          __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_161), 0, 0);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           goto __pyx_L13;
         }
@@ -121656,8 +121399,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  */
         __pyx_t_7 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_ns_uri)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
-        __Pyx_XDECREF(((PyObject *)__pyx_v_ns_utf));
-        __pyx_v_ns_utf = ((PyObject*)__pyx_t_7);
+        __Pyx_XDECREF_SET(__pyx_v_ns_utf, ((PyObject*)__pyx_t_7));
         __pyx_t_7 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":73
@@ -121669,8 +121411,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  */
         __pyx_t_7 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_name)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 73; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
-        __Pyx_XDECREF(((PyObject *)__pyx_v_name_utf));
-        __pyx_v_name_utf = ((PyObject*)__pyx_t_7);
+        __Pyx_XDECREF_SET(__pyx_v_name_utf, ((PyObject*)__pyx_t_7));
         __pyx_t_7 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":74
@@ -121710,8 +121451,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
       __Pyx_INCREF(((PyObject *)__pyx_v_new_extensions));
       __pyx_t_1 = __pyx_v_new_extensions;
     }
-    __Pyx_DECREF(__pyx_v_extensions);
-    __pyx_v_extensions = __pyx_t_1;
+    __Pyx_DECREF_SET(__pyx_v_extensions, __pyx_t_1);
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
@@ -121751,8 +121491,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
       __pyx_t_6 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __Pyx_DECREF(__pyx_v_namespaces);
-      __pyx_v_namespaces = __pyx_t_6;
+      __Pyx_DECREF_SET(__pyx_v_namespaces, __pyx_t_6);
       __pyx_t_6 = 0;
       goto __pyx_L15;
     }
@@ -121872,11 +121611,9 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 82; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L20_unpacking_done:;
         }
-        __Pyx_XDECREF(__pyx_v_prefix);
-        __pyx_v_prefix = __pyx_t_7;
+        __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_7);
         __pyx_t_7 = 0;
-        __Pyx_XDECREF(__pyx_v_ns_uri);
-        __pyx_v_ns_uri = __pyx_t_11;
+        __Pyx_XDECREF_SET(__pyx_v_ns_uri, __pyx_t_11);
         __pyx_t_11 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":83
@@ -121903,7 +121640,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                             u"empty namespace prefix is not supported in XPath"
  *                     if ns_uri is None or not ns_uri:
  */
-          __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_311), 0, 0);
+          __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_314), 0, 0);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 84; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           goto __pyx_L21;
         }
@@ -121933,7 +121670,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                             u"setting default namespace is not supported in XPath"
  *                     prefix_utf = self._to_utf(prefix)
  */
-          __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_312), 0, 0);
+          __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_315), 0, 0);
           {__pyx_filename = __pyx_f[7]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           goto __pyx_L22;
         }
@@ -121948,8 +121685,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  */
         __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
-        __Pyx_XDECREF(((PyObject *)__pyx_v_prefix_utf));
-        __pyx_v_prefix_utf = ((PyObject*)__pyx_t_1);
+        __Pyx_XDECREF_SET(__pyx_v_prefix_utf, ((PyObject*)__pyx_t_1));
         __pyx_t_1 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":90
@@ -121961,8 +121697,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  */
         __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_vtab)->_to_utf(__pyx_v_self, __pyx_v_ns_uri)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
-        __Pyx_XDECREF(((PyObject *)__pyx_v_ns_uri_utf));
-        __pyx_v_ns_uri_utf = ((PyObject*)__pyx_t_1);
+        __Pyx_XDECREF_SET(__pyx_v_ns_uri_utf, ((PyObject*)__pyx_t_1));
         __pyx_t_1 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":91
@@ -121993,8 +121728,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *                 namespaces = None
  */
       __Pyx_INCREF(((PyObject *)__pyx_v_ns));
-      __Pyx_DECREF(__pyx_v_namespaces);
-      __pyx_v_namespaces = ((PyObject *)__pyx_v_ns);
+      __Pyx_DECREF_SET(__pyx_v_namespaces, ((PyObject *)__pyx_v_ns));
       goto __pyx_L16;
     }
     /*else*/ {
@@ -122007,8 +121741,7 @@ static int __pyx_pf_4lxml_5etree_12_BaseContext_2__init__(struct __pyx_obj_4lxml
  *         self._doc        = None
  */
       __Pyx_INCREF(Py_None);
-      __Pyx_DECREF(__pyx_v_namespaces);
-      __pyx_v_namespaces = Py_None;
+      __Pyx_DECREF_SET(__pyx_v_namespaces, Py_None);
     }
     __pyx_L16:;
     goto __pyx_L14;
@@ -122649,8 +122382,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(struct __p
       if (unlikely(__pyx_t_7 == 0)) break;
       if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_XDECREF(__pyx_v_ref);
-      __pyx_v_ref = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_v_ref, __pyx_t_6);
       __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":152
@@ -122817,7 +122549,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *         prefix_utf = self._to_utf(prefix)
  *         ns_uri_utf = self._to_utf(ns_uri)
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_313), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_316), 0, 0);
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -122928,8 +122660,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
       #else
       __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-      __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5);
       __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":177
@@ -122955,8 +122686,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *                 namespaces.append(item)
  */
         __Pyx_INCREF(__pyx_v_new_item);
-        __Pyx_DECREF(__pyx_v_item);
-        __pyx_v_item = __pyx_v_new_item;
+        __Pyx_DECREF_SET(__pyx_v_item, __pyx_v_new_item);
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":179
  *                 if item[0] == prefix_utf:
@@ -122966,8 +122696,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_addNamespace(struct __pyx_o
  *             if new_item is not None:
  */
         __Pyx_INCREF(Py_None);
-        __Pyx_DECREF(__pyx_v_new_item);
-        __pyx_v_new_item = Py_None;
+        __Pyx_DECREF_SET(__pyx_v_new_item, Py_None);
         goto __pyx_L7;
       }
       __pyx_L7:;
@@ -123102,7 +122831,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerNamespace(struct __
  *         prefix_utf = self._to_utf(prefix)
  *         ns_uri_utf = self._to_utf(ns_uri)
  */
-    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_313), 0, 0);
+    __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_316), 0, 0);
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
@@ -123290,11 +123019,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalNamespaces(str
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_prefix_utf);
-    __pyx_v_prefix_utf = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_prefix_utf, __pyx_t_6);
     __pyx_t_6 = 0;
-    __Pyx_XDECREF(__pyx_v_ns_uri_utf);
-    __pyx_v_ns_uri_utf = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_ns_uri_utf, __pyx_t_7);
     __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":202
@@ -123446,11 +123173,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerGlobalNamespaces(st
         {__pyx_filename = __pyx_f[7]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L7_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_prefix_utf);
-      __pyx_v_prefix_utf = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_prefix_utf, __pyx_t_5);
       __pyx_t_5 = 0;
-      __Pyx_XDECREF(__pyx_v_ns_uri_utf);
-      __pyx_v_ns_uri_utf = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_v_ns_uri_utf, __pyx_t_6);
       __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":208
@@ -123552,8 +123277,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_unregisterGlobalNamespaces(
       #else
       __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-      __Pyx_XDECREF(__pyx_v_prefix_utf);
-      __pyx_v_prefix_utf = __pyx_t_4;
+      __Pyx_XDECREF_SET(__pyx_v_prefix_utf, __pyx_t_4);
       __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":216
@@ -123755,11 +123479,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerGlobalFunctions(str
     if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_XDECREF(__pyx_v_ns_utf);
-    __pyx_v_ns_utf = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_ns_utf, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_ns_functions);
-    __pyx_v_ns_functions = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_ns_functions, __pyx_t_6);
     __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":236
@@ -123792,8 +123514,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerGlobalFunctions(str
  *                 d = {}
  */
       __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_v_dict_result)));
-      __Pyx_XDECREF(((PyObject *)__pyx_v_d));
-      __pyx_v_d = ((PyObject*)__pyx_v_dict_result);
+      __Pyx_XDECREF_SET(__pyx_v_d, ((PyObject*)__pyx_v_dict_result));
       goto __pyx_L5;
     }
     /*else*/ {
@@ -123807,8 +123528,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerGlobalFunctions(str
  */
       __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
-      __Pyx_XDECREF(((PyObject *)__pyx_v_d));
-      __pyx_v_d = ((PyObject*)__pyx_t_6);
+      __Pyx_XDECREF_SET(__pyx_v_d, ((PyObject*)__pyx_t_6));
       __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":241
@@ -123849,11 +123569,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerGlobalFunctions(str
       if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_GOTREF(__pyx_t_11);
-      __Pyx_XDECREF(__pyx_v_name_utf);
-      __pyx_v_name_utf = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_name_utf, __pyx_t_5);
       __pyx_t_5 = 0;
-      __Pyx_XDECREF(__pyx_v_function);
-      __pyx_v_function = __pyx_t_11;
+      __Pyx_XDECREF_SET(__pyx_v_function, __pyx_t_11);
       __pyx_t_11 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":243
@@ -124057,14 +123775,11 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_ns_utf);
-    __pyx_v_ns_utf = __pyx_t_10;
+    __Pyx_XDECREF_SET(__pyx_v_ns_utf, __pyx_t_10);
     __pyx_t_10 = 0;
-    __Pyx_XDECREF(__pyx_v_name_utf);
-    __pyx_v_name_utf = __pyx_t_11;
+    __Pyx_XDECREF_SET(__pyx_v_name_utf, __pyx_t_11);
     __pyx_t_11 = 0;
-    __Pyx_XDECREF(__pyx_v_function);
-    __pyx_v_function = __pyx_t_8;
+    __Pyx_XDECREF_SET(__pyx_v_function, __pyx_t_8);
     __pyx_t_8 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":255
@@ -124091,8 +123806,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  *                     self._function_cache, ns_utf)
  */
       __Pyx_INCREF(__pyx_v_ns_utf);
-      __Pyx_DECREF(__pyx_v_last_ns);
-      __pyx_v_last_ns = __pyx_v_ns_utf;
+      __Pyx_DECREF_SET(__pyx_v_last_ns, __pyx_v_ns_utf);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":258
  *                 last_ns = ns_utf
@@ -124124,8 +123838,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  *                     d = {}
  */
         __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_v_dict_result)));
-        __Pyx_DECREF(((PyObject *)__pyx_v_d));
-        __pyx_v_d = ((PyObject*)__pyx_v_dict_result);
+        __Pyx_DECREF_SET(__pyx_v_d, ((PyObject*)__pyx_v_dict_result));
         goto __pyx_L9;
       }
       /*else*/ {
@@ -124139,8 +123852,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_registerLocalFunctions(stru
  */
         __pyx_t_8 = PyDict_New(); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_8));
-        __Pyx_DECREF(((PyObject *)__pyx_v_d));
-        __pyx_v_d = ((PyObject*)__pyx_t_8);
+        __Pyx_DECREF_SET(__pyx_v_d, ((PyObject*)__pyx_t_8));
         __pyx_t_8 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":263
@@ -124258,11 +123970,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_unregisterAllFunctions(stru
     if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_XDECREF(__pyx_v_ns_utf);
-    __pyx_v_ns_utf = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_ns_utf, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_functions);
-    __pyx_v_functions = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_functions, __pyx_t_6);
     __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":270
@@ -124306,8 +124016,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_unregisterAllFunctions(stru
         }
         __Pyx_GOTREF(__pyx_t_5);
       }
-      __Pyx_XDECREF(__pyx_v_name_utf);
-      __pyx_v_name_utf = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_name_utf, __pyx_t_5);
       __pyx_t_5 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":271
@@ -124471,11 +124180,9 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_unregisterGlobalFunctions(s
       {__pyx_filename = __pyx_f[7]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_ns_utf);
-    __pyx_v_ns_utf = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_ns_utf, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_functions);
-    __pyx_v_functions = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_functions, __pyx_t_6);
     __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":276
@@ -124519,8 +124226,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext_unregisterGlobalFunctions(s
         }
         __Pyx_GOTREF(__pyx_t_6);
       }
-      __Pyx_XDECREF(__pyx_v_name_utf);
-      __pyx_v_name_utf = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_v_name_utf, __pyx_t_6);
       __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":277
@@ -124767,7 +124473,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_314), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_317), 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
@@ -124803,7 +124509,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_315), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_318), 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
@@ -124829,7 +124535,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_316), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_319), 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
@@ -124856,7 +124562,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_BaseContext_12context_node___get__(str
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_317), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_320), 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L6;
@@ -125173,8 +124879,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_BaseContext__hold(struct __pyx_obj_4lxm
       }
       __Pyx_GOTREF(__pyx_t_9);
     }
-    __Pyx_XDECREF(__pyx_v_o);
-    __pyx_v_o = __pyx_t_9;
+    __Pyx_XDECREF_SET(__pyx_v_o, __pyx_t_9);
     __pyx_t_9 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":346
@@ -125278,8 +124983,7 @@ static struct LxmlDocument *__pyx_f_4lxml_5etree_12_BaseContext__findDocumentFor
       __Pyx_GOTREF(__pyx_t_3);
     }
     if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__Document))))) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 360; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_doc));
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+    __Pyx_XDECREF_SET(__pyx_v_doc, ((struct LxmlDocument *)__pyx_t_3));
     __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":361
@@ -125449,7 +125153,7 @@ static void __pyx_f_4lxml_5etree__forwardXPathError(void *__pyx_v_c_ctxt, xmlErr
  *     error.domain = c_error.domain
  *     error.code = c_error.code
  */
-      __pyx_v_error.message = __pyx_k_43;
+      __pyx_v_error.message = __pyx_k_46;
     }
     __pyx_L4:;
   }
@@ -125804,11 +125508,9 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
         {__pyx_filename = __pyx_f[7]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L7_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_function_name);
-      __pyx_v_function_name = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_v_function_name, __pyx_t_6);
       __pyx_t_6 = 0;
-      __Pyx_XDECREF(__pyx_v_xpath_name);
-      __pyx_v_xpath_name = __pyx_t_7;
+      __Pyx_XDECREF_SET(__pyx_v_xpath_name, __pyx_t_7);
       __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":441
@@ -125894,8 +125596,7 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
           }
           __Pyx_GOTREF(__pyx_t_3);
         }
-        __Pyx_XDECREF(__pyx_v_name);
-        __pyx_v_name = __pyx_t_3;
+        __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3);
         __pyx_t_3 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":445
@@ -125907,7 +125608,7 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
  */
         __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__startswith); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
-        __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_318), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_321), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -125928,8 +125629,7 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
         __pyx_L11:;
       }
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __Pyx_DECREF(__pyx_v_function_mapping);
-      __pyx_v_function_mapping = ((PyObject *)__pyx_t_1);
+      __Pyx_DECREF_SET(__pyx_v_function_mapping, ((PyObject *)__pyx_t_1));
       __pyx_t_1 = 0;
       goto __pyx_L8;
     }
@@ -125976,8 +125676,7 @@ static PyObject *__pyx_pf_4lxml_5etree_60Extension(CYTHON_UNUSED PyObject *__pyx
         }
         __Pyx_GOTREF(__pyx_t_7);
       }
-      __Pyx_XDECREF(__pyx_v_function_name);
-      __pyx_v_function_name = __pyx_t_7;
+      __Pyx_XDECREF_SET(__pyx_v_function_name, __pyx_t_7);
       __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":447
@@ -126413,8 +126112,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__compile(struct __pyx_obj_4
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(__pyx_v_self, __pyx_v_rexp); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_rexp);
-  __pyx_v_rexp = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_rexp, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":486
@@ -126506,8 +126204,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__compile(struct __pyx_obj_4
     __pyx_t_3 = PyNumber_Or(__pyx_v_py_flags, __pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 492; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __Pyx_DECREF(__pyx_v_py_flags);
-    __pyx_v_py_flags = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_py_flags, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L4;
   }
@@ -126693,8 +126390,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_2test(struct __pyx_obj_4lx
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(__pyx_v_self, __pyx_v_flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 498; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_flags);
-  __pyx_v_flags = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_flags, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":499
@@ -126706,8 +126402,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_2test(struct __pyx_obj_4lx
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(__pyx_v_self, __pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_s);
-  __pyx_v_s = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":500
@@ -126923,8 +126618,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(__pyx_v_self, __pyx_v_flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_flags);
-  __pyx_v_flags = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_flags, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":509
@@ -126936,8 +126630,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(__pyx_v_self, __pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_s);
-  __pyx_v_s = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":510
@@ -127095,7 +126788,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_result, __pyx_n_s__groups); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_319), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_322), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -127132,7 +126825,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
  */
   __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__Element); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_320), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_k_tuple_323), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __pyx_v_root = __pyx_t_1;
@@ -127191,8 +126884,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
       }
       __Pyx_GOTREF(__pyx_t_5);
     }
-    __Pyx_XDECREF(__pyx_v_s_match);
-    __pyx_v_s_match = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_s_match, __pyx_t_5);
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":525
@@ -127220,8 +126912,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
       __pyx_t_3 = PyObject_Call(__pyx_v_join_groups, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __Pyx_DECREF(__pyx_v_s_match);
-      __pyx_v_s_match = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_s_match, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L8;
     }
@@ -127248,8 +126939,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_4match(struct __pyx_obj_4l
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_elem);
-    __pyx_v_elem = __pyx_t_8;
+    __Pyx_XDECREF_SET(__pyx_v_elem, __pyx_t_8);
     __pyx_t_8 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":528
@@ -127430,8 +127120,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_6replace(struct __pyx_obj_
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(__pyx_v_self, __pyx_v_replacement); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 533; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_replacement);
-  __pyx_v_replacement = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_replacement, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":534
@@ -127443,8 +127132,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_6replace(struct __pyx_obj_
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(__pyx_v_self, __pyx_v_flags); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 534; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_flags);
-  __pyx_v_flags = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_flags, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":535
@@ -127456,8 +127144,7 @@ static PyObject *__pyx_pf_4lxml_5etree_12_ExsltRegExp_6replace(struct __pyx_obj_
  */
   __pyx_t_1 = __pyx_f_4lxml_5etree_12_ExsltRegExp__make_string(__pyx_v_self, __pyx_v_s); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_s);
-  __pyx_v_s = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_s, __pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":536
@@ -127584,8 +127271,8 @@ static PyObject *__pyx_f_4lxml_5etree_12_ExsltRegExp__register_in_context(struct
  *         context._addLocalExtensionFunction(ns, b"test",    self.test)
  *         context._addLocalExtensionFunction(ns, b"match",   self.match)
  */
-  __Pyx_INCREF(((PyObject *)__pyx_kp_b_321));
-  __pyx_v_ns = __pyx_kp_b_321;
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_324));
+  __pyx_v_ns = __pyx_kp_b_324;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":545
  *     cdef _register_in_context(self, _BaseContext context):
@@ -127700,8 +127387,7 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  */
     __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_obj)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 560; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_obj);
-    __pyx_v_obj = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_obj, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -127901,8 +127587,7 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
             }
             __Pyx_GOTREF(__pyx_t_11);
           }
-          __Pyx_XDECREF(__pyx_v_value);
-          __pyx_v_value = __pyx_t_11;
+          __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_11);
           __pyx_t_11 = 0;
 
           /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":576
@@ -127986,7 +127671,7 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                     # support strings by appending text nodes to an Element
  *                     if isinstance(value, unicode):
  */
-              __pyx_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_322), __pyx_v_value); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+              __pyx_t_13 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_325), __pyx_v_value); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
               __Pyx_GOTREF(((PyObject *)__pyx_t_13));
               __Pyx_Raise(__pyx_t_11, ((PyObject *)__pyx_t_13), 0, 0);
               __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
@@ -128016,8 +127701,7 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  */
               __pyx_t_13 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
               __Pyx_GOTREF(__pyx_t_13);
-              __Pyx_DECREF(__pyx_v_value);
-              __pyx_v_value = __pyx_t_13;
+              __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_13);
               __pyx_t_13 = 0;
               goto __pyx_L21;
             }
@@ -128052,10 +127736,9 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *                             context._hold(fake_node)
  *                         else:
  */
-                __pyx_t_13 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(((PyObject *)__pyx_kp_s_323), NULL, __pyx_v_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+                __pyx_t_13 = ((PyObject *)__pyx_f_4lxml_5etree__makeElement(((PyObject *)__pyx_kp_s_326), NULL, __pyx_v_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)Py_None), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
                 __Pyx_GOTREF(__pyx_t_13);
-                __Pyx_DECREF(((PyObject *)__pyx_v_fake_node));
-                __pyx_v_fake_node = ((struct LxmlElement *)__pyx_t_13);
+                __Pyx_DECREF_SET(__pyx_v_fake_node, ((struct LxmlElement *)__pyx_t_13));
                 __pyx_t_13 = 0;
 
                 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":591
@@ -128194,7 +127877,7 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  *         except:
  *             xpath.xmlXPathFreeNodeSet(resultSet)
  */
-              __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_324), __pyx_v_value); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+              __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_327), __pyx_v_value); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 606; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
               __Pyx_GOTREF(((PyObject *)__pyx_t_11));
               __Pyx_Raise(__pyx_t_13, ((PyObject *)__pyx_t_11), 0, 0);
               __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
@@ -128293,7 +127976,7 @@ static xmlXPathObject *__pyx_f_4lxml_5etree__wrapXPathObject(PyObject *__pyx_v_o
  */
     __pyx_t_11 = __Pyx_PyBytes_FromString(_fqtypename(__pyx_v_obj)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 612; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_11));
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_325), ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_328), ((PyObject *)__pyx_t_11)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_DECREF(((PyObject *)__pyx_t_11)); __pyx_t_11 = 0;
     __Pyx_Raise(__pyx_t_13, ((PyObject *)__pyx_t_3), 0, 0);
@@ -128369,7 +128052,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  */
     __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathResultError); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_326), 0, 0);
+    __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_kp_u_329), 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     {__pyx_filename = __pyx_f[7]; __pyx_lineno = 618; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
@@ -128494,8 +128177,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
  */
       __pyx_t_2 = __pyx_f_4lxml_5etree__elementStringResultFactory(__pyx_v_stringval, ((struct LxmlElement *)Py_None), Py_None, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_stringval);
-      __pyx_v_stringval = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_stringval, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
@@ -128649,7 +128331,7 @@ static PyObject *__pyx_f_4lxml_5etree__unwrapXPathObject(xmlXPathObject *__pyx_v
     __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_327), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_330), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_Raise(__pyx_t_2, ((PyObject *)__pyx_t_4), 0, 0);
@@ -129109,7 +128791,7 @@ static PyObject *__pyx_f_4lxml_5etree__unpackNodeSetEntry(PyObject *__pyx_v_resu
  */
     __pyx_t_8 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
-    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_328), __pyx_t_8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_331), __pyx_t_8); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
     __Pyx_Raise(__pyx_builtin_NotImplementedError, ((PyObject *)__pyx_t_7), 0, 0);
@@ -129234,8 +128916,7 @@ static struct LxmlElement *__pyx_f_4lxml_5etree__instantiateElementFromXPath(xml
  */
     __pyx_t_4 = ((PyObject *)__pyx_f_4lxml_5etree_12_BaseContext__findDocumentForNode(__pyx_v_context, __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 710; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(((PyObject *)__pyx_v_doc));
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
+    __Pyx_DECREF_SET(__pyx_v_doc, ((struct LxmlDocument *)__pyx_t_4));
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":711
@@ -129654,7 +129335,7 @@ static PyObject *__pyx_f_4lxml_5etree__elementStringResultFactory(PyObject *__py
  *         result._parent = parent
  *         result.is_attribute = is_attribute
  */
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_329); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_332); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
@@ -129904,8 +129585,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  */
     __pyx_t_2 = __pyx_f_4lxml_5etree__namespacedName(__pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_v_attrname);
-    __pyx_v_attrname = __pyx_t_2;
+    __Pyx_DECREF_SET(__pyx_v_attrname, __pyx_t_2);
     __pyx_t_2 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":773
@@ -130121,8 +129801,7 @@ static PyObject *__pyx_f_4lxml_5etree__buildElementStringResult(struct LxmlDocum
  */
     __pyx_t_2 = ((PyObject *)__pyx_f_4lxml_5etree__instantiateElementFromXPath(__pyx_v_c_element, __pyx_v_doc, __pyx_v_context)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 797; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(((PyObject *)__pyx_v_parent));
-    __pyx_v_parent = ((struct LxmlElement *)__pyx_t_2);
+    __Pyx_DECREF_SET(__pyx_v_parent, ((struct LxmlElement *)__pyx_t_2));
     __pyx_t_2 = 0;
     goto __pyx_L12;
   }
@@ -130263,8 +129942,7 @@ static void __pyx_f_4lxml_5etree__extension_function_call(struct __pyx_obj_4lxml
  */
         __pyx_t_1 = __pyx_f_4lxml_5etree__unwrapXPathObject(__pyx_v_obj, __pyx_v_doc, __pyx_v_context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         __Pyx_GOTREF(__pyx_t_1);
-        __Pyx_XDECREF(__pyx_v_o);
-        __pyx_v_o = __pyx_t_1;
+        __Pyx_XDECREF_SET(__pyx_v_o, __pyx_t_1);
         __pyx_t_1 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":817
@@ -130547,7 +130225,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
       __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-      __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_42), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_45), ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_6));
       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
       __pyx_v_fref = ((PyObject *)__pyx_t_6);
@@ -130588,7 +130266,7 @@ static void __pyx_f_4lxml_5etree__xpath_function_call(xmlXPathParserContext *__p
  */
     __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathFunctionError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_330), __pyx_v_fref); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_333), __pyx_v_fref); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
     __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
@@ -130922,7 +130600,7 @@ static int __pyx_pf_4lxml_5etree_13_XPathContext___init__(struct __pyx_obj_4lxml
  * 
  *     cdef set_context(self, xpath.xmlXPathContext* xpathCtxt):             # <<<<<<<<<<<<<<
  *         self._set_xpath_context(xpathCtxt)
- *         self._setupDict(xpathCtxt)
+ *         # This would be a good place to set up the XPath parser dict, but
  */
 
 static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_set_context(struct __pyx_obj_4lxml_5etree__XPathContext *__pyx_v_self, xmlXPathContext *__pyx_v_xpathCtxt) {
@@ -130938,39 +130616,30 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_set_context(struct __pyx_o
  * 
  *     cdef set_context(self, xpath.xmlXPathContext* xpathCtxt):
  *         self._set_xpath_context(xpathCtxt)             # <<<<<<<<<<<<<<
- *         self._setupDict(xpathCtxt)
- *         self.registerLocalNamespaces()
+ *         # This would be a good place to set up the XPath parser dict, but
+ *         # we cannot use the current thread dict as we do not know which
  */
   ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._set_xpath_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_xpathCtxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":62
- *     cdef set_context(self, xpath.xmlXPathContext* xpathCtxt):
- *         self._set_xpath_context(xpathCtxt)
- *         self._setupDict(xpathCtxt)             # <<<<<<<<<<<<<<
- *         self.registerLocalNamespaces()
- *         self.registerLocalFunctions(xpathCtxt, _register_xpath_function)
- */
-  __pyx_f_4lxml_5etree_13_XPathContext__setupDict(__pyx_v_self, __pyx_v_xpathCtxt);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":63
- *         self._set_xpath_context(xpathCtxt)
- *         self._setupDict(xpathCtxt)
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":65
+ *         # we cannot use the current thread dict as we do not know which
+ *         # thread will execute the XPath evaluator - so, no dict for now.
  *         self.registerLocalNamespaces()             # <<<<<<<<<<<<<<
  *         self.registerLocalFunctions(xpathCtxt, _register_xpath_function)
  * 
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerLocalNamespaces(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 63; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerLocalNamespaces(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":64
- *         self._setupDict(xpathCtxt)
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":66
+ *         # thread will execute the XPath evaluator - so, no dict for now.
  *         self.registerLocalNamespaces()
  *         self.registerLocalFunctions(xpathCtxt, _register_xpath_function)             # <<<<<<<<<<<<<<
  * 
  *     cdef register_context(self, _Document doc):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerLocalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_xpathCtxt, __pyx_f_4lxml_5etree__register_xpath_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerLocalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_xpathCtxt, __pyx_f_4lxml_5etree__register_xpath_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -130986,7 +130655,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_set_context(struct __pyx_o
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":66
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":68
  *         self.registerLocalFunctions(xpathCtxt, _register_xpath_function)
  * 
  *     cdef register_context(self, _Document doc):             # <<<<<<<<<<<<<<
@@ -131006,40 +130675,40 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("register_context", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":67
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":69
  * 
  *     cdef register_context(self, _Document doc):
  *         self._register_context(doc)             # <<<<<<<<<<<<<<
  *         self.registerGlobalNamespaces()
  *         self.registerGlobalFunctions(self._xpathCtxt, _register_xpath_function)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__register_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 67; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__register_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":68
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":70
  *     cdef register_context(self, _Document doc):
  *         self._register_context(doc)
  *         self.registerGlobalNamespaces()             # <<<<<<<<<<<<<<
  *         self.registerGlobalFunctions(self._xpathCtxt, _register_xpath_function)
  *         self.registerExsltFunctions()
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerGlobalNamespaces(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerGlobalNamespaces(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":69
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":71
  *         self._register_context(doc)
  *         self.registerGlobalNamespaces()
  *         self.registerGlobalFunctions(self._xpathCtxt, _register_xpath_function)             # <<<<<<<<<<<<<<
  *         self.registerExsltFunctions()
  *         if self._variables is not None:
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerGlobalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_self->__pyx_base._xpathCtxt, __pyx_f_4lxml_5etree__register_xpath_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 69; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerGlobalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_self->__pyx_base._xpathCtxt, __pyx_f_4lxml_5etree__register_xpath_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 71; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":70
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":72
  *         self.registerGlobalNamespaces()
  *         self.registerGlobalFunctions(self._xpathCtxt, _register_xpath_function)
  *         self.registerExsltFunctions()             # <<<<<<<<<<<<<<
@@ -131048,7 +130717,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
  */
   __pyx_f_4lxml_5etree_13_XPathContext_registerExsltFunctions(__pyx_v_self);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":71
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":73
  *         self.registerGlobalFunctions(self._xpathCtxt, _register_xpath_function)
  *         self.registerExsltFunctions()
  *         if self._variables is not None:             # <<<<<<<<<<<<<<
@@ -131059,7 +130728,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":72
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":74
  *         self.registerExsltFunctions()
  *         if self._variables is not None:
  *             self.registerVariables(self._variables)             # <<<<<<<<<<<<<<
@@ -131068,7 +130737,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
  */
     __pyx_t_1 = __pyx_v_self->_variables;
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_4 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self, __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 74; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -131089,7 +130758,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_register_context(struct __
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":74
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":76
  *             self.registerVariables(self._variables)
  * 
  *     cdef unregister_context(self):             # <<<<<<<<<<<<<<
@@ -131106,29 +130775,29 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_unregister_context(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("unregister_context", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":76
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":78
  *     cdef unregister_context(self):
  *         self.unregisterGlobalFunctions(
  *             self._xpathCtxt, _unregister_xpath_function)             # <<<<<<<<<<<<<<
  *         self.unregisterGlobalNamespaces()
  *         xpath.xmlXPathRegisteredVariablesCleanup(self._xpathCtxt)
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.unregisterGlobalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_self->__pyx_base._xpathCtxt, __pyx_f_4lxml_5etree__unregister_xpath_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.unregisterGlobalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_self->__pyx_base._xpathCtxt, __pyx_f_4lxml_5etree__unregister_xpath_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":77
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":79
  *         self.unregisterGlobalFunctions(
  *             self._xpathCtxt, _unregister_xpath_function)
  *         self.unregisterGlobalNamespaces()             # <<<<<<<<<<<<<<
  *         xpath.xmlXPathRegisteredVariablesCleanup(self._xpathCtxt)
  *         self._cleanup_context()
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.unregisterGlobalNamespaces(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 77; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.unregisterGlobalNamespaces(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":78
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":80
  *             self._xpathCtxt, _unregister_xpath_function)
  *         self.unregisterGlobalNamespaces()
  *         xpath.xmlXPathRegisteredVariablesCleanup(self._xpathCtxt)             # <<<<<<<<<<<<<<
@@ -131137,14 +130806,14 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_unregister_context(struct
  */
   xmlXPathRegisteredVariablesCleanup(__pyx_v_self->__pyx_base._xpathCtxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":79
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":81
  *         self.unregisterGlobalNamespaces()
  *         xpath.xmlXPathRegisteredVariablesCleanup(self._xpathCtxt)
  *         self._cleanup_context()             # <<<<<<<<<<<<<<
  * 
  *     cdef void registerExsltFunctions(self):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -131160,7 +130829,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_unregister_context(struct
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":81
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":83
  *         self._cleanup_context()
  * 
  *     cdef void registerExsltFunctions(self):             # <<<<<<<<<<<<<<
@@ -131173,7 +130842,7 @@ static void __pyx_f_4lxml_5etree_13_XPathContext_registerExsltFunctions(struct _
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("registerExsltFunctions", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":82
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":84
  * 
  *     cdef void registerExsltFunctions(self):
  *         if xslt.LIBXSLT_VERSION < 10125:             # <<<<<<<<<<<<<<
@@ -131183,7 +130852,7 @@ static void __pyx_f_4lxml_5etree_13_XPathContext_registerExsltFunctions(struct _
   __pyx_t_1 = ((LIBXSLT_VERSION < 10125) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":84
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":86
  *         if xslt.LIBXSLT_VERSION < 10125:
  *             # we'd only execute dummy functions anyway
  *             return             # <<<<<<<<<<<<<<
@@ -131195,7 +130864,7 @@ static void __pyx_f_4lxml_5etree_13_XPathContext_registerExsltFunctions(struct _
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":87
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":89
  *         tree.xmlHashScan(
  *             self._xpathCtxt.nsHash, _registerExsltFunctionsForNamespaces,
  *             self._xpathCtxt)             # <<<<<<<<<<<<<<
@@ -131208,7 +130877,7 @@ static void __pyx_f_4lxml_5etree_13_XPathContext_registerExsltFunctions(struct _
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":89
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":91
  *             self._xpathCtxt)
  * 
  *     cdef registerVariables(self, variable_dict):             # <<<<<<<<<<<<<<
@@ -131236,23 +130905,23 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariables(struct _
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("registerVariables", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":90
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":92
  * 
  *     cdef registerVariables(self, variable_dict):
  *         for name, value in variable_dict.items():             # <<<<<<<<<<<<<<
  *             name_utf = self._to_utf(name)
  *             xpath.xmlXPathRegisterVariable(
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_variable_dict, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_variable_dict, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
     __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
     __pyx_t_4 = NULL;
   } else {
-    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;
   }
@@ -131261,23 +130930,23 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariables(struct _
     if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_1)) {
       if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_1)) {
       if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_2 = __pyx_t_4(__pyx_t_1);
       if (unlikely(!__pyx_t_2)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
@@ -131293,7 +130962,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariables(struct _
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -131306,16 +130975,16 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariables(struct _
       __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
       #else
-      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       #endif
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -131323,7 +130992,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariables(struct _
       __Pyx_GOTREF(__pyx_t_5);
       index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_6);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_8 = NULL;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       goto __pyx_L6_unpacking_done;
@@ -131331,37 +131000,34 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariables(struct _
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __pyx_t_8 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_6);
     __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":91
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":93
  *     cdef registerVariables(self, variable_dict):
  *         for name, value in variable_dict.items():
  *             name_utf = self._to_utf(name)             # <<<<<<<<<<<<<<
  *             xpath.xmlXPathRegisterVariable(
  *                 self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))
  */
-    __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._to_utf(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 91; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._to_utf(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_name)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_XDECREF(((PyObject *)__pyx_v_name_utf));
-    __pyx_v_name_utf = ((PyObject*)__pyx_t_2);
+    __Pyx_XDECREF_SET(__pyx_v_name_utf, ((PyObject*)__pyx_t_2));
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":93
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":95
  *             name_utf = self._to_utf(name)
  *             xpath.xmlXPathRegisterVariable(
  *                 self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))             # <<<<<<<<<<<<<<
  * 
  *     cdef registerVariable(self, name, value):
  */
-    __pyx_t_9 = __pyx_f_4lxml_5etree__wrapXPathObject(__pyx_v_value, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseContext *)Py_None)); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = __pyx_f_4lxml_5etree__wrapXPathObject(__pyx_v_value, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseContext *)Py_None)); if (unlikely(__pyx_t_9 == NULL)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     xmlXPathRegisterVariable(__pyx_v_self->__pyx_base._xpathCtxt, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_name_utf)), __pyx_t_9);
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -131385,7 +131051,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariables(struct _
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":95
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":97
  *                 self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))
  * 
  *     cdef registerVariable(self, name, value):             # <<<<<<<<<<<<<<
@@ -131404,26 +131070,26 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariable(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("registerVariable", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":96
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":98
  * 
  *     cdef registerVariable(self, name, value):
  *         name_utf = self._to_utf(name)             # <<<<<<<<<<<<<<
  *         xpath.xmlXPathRegisterVariable(
  *             self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))
  */
-  __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._to_utf(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 96; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._to_utf(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_name)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_name_utf = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":98
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":100
  *         name_utf = self._to_utf(name)
  *         xpath.xmlXPathRegisterVariable(
  *             self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))             # <<<<<<<<<<<<<<
  * 
  *     cdef void _registerVariable(self, name_utf, value):
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__wrapXPathObject(__pyx_v_value, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseContext *)Py_None)); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__wrapXPathObject(__pyx_v_value, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseContext *)Py_None)); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 100; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   xmlXPathRegisterVariable(__pyx_v_self->__pyx_base._xpathCtxt, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_name_utf)), __pyx_t_2);
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -131439,7 +131105,7 @@ static PyObject *__pyx_f_4lxml_5etree_13_XPathContext_registerVariable(struct __
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":100
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":102
  *             self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))
  * 
  *     cdef void _registerVariable(self, name_utf, value):             # <<<<<<<<<<<<<<
@@ -131455,14 +131121,14 @@ static void __pyx_f_4lxml_5etree_13_XPathContext__registerVariable(struct __pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_registerVariable", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":102
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":104
  *     cdef void _registerVariable(self, name_utf, value):
  *         xpath.xmlXPathRegisterVariable(
  *             self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))             # <<<<<<<<<<<<<<
  * 
- *     cdef void _setupDict(self, xpath.xmlXPathContext* xpathCtxt):
+ * cdef void _registerExsltFunctionsForNamespaces(
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__wrapXPathObject(__pyx_v_value, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseContext *)Py_None)); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__wrapXPathObject(__pyx_v_value, ((struct LxmlDocument *)Py_None), ((struct __pyx_obj_4lxml_5etree__BaseContext *)Py_None)); if (unlikely(__pyx_t_1 == NULL)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 104; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   xmlXPathRegisterVariable(__pyx_v_self->__pyx_base._xpathCtxt, (const xmlChar*)PyBytes_AS_STRING(__pyx_v_name_utf), __pyx_t_1);
 
   goto __pyx_L0;
@@ -131472,33 +131138,9 @@ static void __pyx_f_4lxml_5etree_13_XPathContext__registerVariable(struct __pyx_
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":104
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":106
  *             self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))
  * 
- *     cdef void _setupDict(self, xpath.xmlXPathContext* xpathCtxt):             # <<<<<<<<<<<<<<
- *         __GLOBAL_PARSER_CONTEXT.initXPathParserDict(xpathCtxt)
- * 
- */
-
-static void __pyx_f_4lxml_5etree_13_XPathContext__setupDict(CYTHON_UNUSED struct __pyx_obj_4lxml_5etree__XPathContext *__pyx_v_self, xmlXPathContext *__pyx_v_xpathCtxt) {
-  __Pyx_RefNannyDeclarations
-  __Pyx_RefNannySetupContext("_setupDict", 0);
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":105
- * 
- *     cdef void _setupDict(self, xpath.xmlXPathContext* xpathCtxt):
- *         __GLOBAL_PARSER_CONTEXT.initXPathParserDict(xpathCtxt)             # <<<<<<<<<<<<<<
- * 
- * cdef void _registerExsltFunctionsForNamespaces(
- */
-  __pyx_f_4lxml_5etree_24_ParserDictionaryContext_initXPathParserDict(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, __pyx_v_xpathCtxt);
-
-  __Pyx_RefNannyFinishContext();
-}
-
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":107
- *         __GLOBAL_PARSER_CONTEXT.initXPathParserDict(xpathCtxt)
- * 
  * cdef void _registerExsltFunctionsForNamespaces(             # <<<<<<<<<<<<<<
  *         void* _c_href, void* _ctxt, xmlChar* c_prefix):
  *     c_href = <const_xmlChar*> _c_href
@@ -131511,7 +131153,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_registerExsltFunctionsForNamespaces", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":109
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":108
  * cdef void _registerExsltFunctionsForNamespaces(
  *         void* _c_href, void* _ctxt, xmlChar* c_prefix):
  *     c_href = <const_xmlChar*> _c_href             # <<<<<<<<<<<<<<
@@ -131520,7 +131162,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
  */
   __pyx_v_c_href = ((const xmlChar *)__pyx_v__c_href);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":110
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":109
  *         void* _c_href, void* _ctxt, xmlChar* c_prefix):
  *     c_href = <const_xmlChar*> _c_href
  *     ctxt = <xpath.xmlXPathContext*> _ctxt             # <<<<<<<<<<<<<<
@@ -131529,7 +131171,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
  */
   __pyx_v_ctxt = ((xmlXPathContext *)__pyx_v__ctxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":112
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":111
  *     ctxt = <xpath.xmlXPathContext*> _ctxt
  * 
  *     if tree.xmlStrcmp(c_href, xslt.EXSLT_DATE_NAMESPACE) == 0:             # <<<<<<<<<<<<<<
@@ -131539,7 +131181,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
   __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, EXSLT_DATE_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":113
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":112
  * 
  *     if tree.xmlStrcmp(c_href, xslt.EXSLT_DATE_NAMESPACE) == 0:
  *         xslt.exsltDateXpathCtxtRegister(ctxt, c_prefix)             # <<<<<<<<<<<<<<
@@ -131550,7 +131192,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":114
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":113
  *     if tree.xmlStrcmp(c_href, xslt.EXSLT_DATE_NAMESPACE) == 0:
  *         xslt.exsltDateXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_SETS_NAMESPACE) == 0:             # <<<<<<<<<<<<<<
@@ -131560,7 +131202,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
   __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, EXSLT_SETS_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":115
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":114
  *         xslt.exsltDateXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_SETS_NAMESPACE) == 0:
  *         xslt.exsltSetsXpathCtxtRegister(ctxt, c_prefix)             # <<<<<<<<<<<<<<
@@ -131571,7 +131213,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":116
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":115
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_SETS_NAMESPACE) == 0:
  *         xslt.exsltSetsXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_MATH_NAMESPACE) == 0:             # <<<<<<<<<<<<<<
@@ -131581,7 +131223,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
   __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, EXSLT_MATH_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":117
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":116
  *         xslt.exsltSetsXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_MATH_NAMESPACE) == 0:
  *         xslt.exsltMathXpathCtxtRegister(ctxt, c_prefix)             # <<<<<<<<<<<<<<
@@ -131592,7 +131234,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":118
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":117
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_MATH_NAMESPACE) == 0:
  *         xslt.exsltMathXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_STRINGS_NAMESPACE) == 0:             # <<<<<<<<<<<<<<
@@ -131602,7 +131244,7 @@ static void __pyx_f_4lxml_5etree__registerExsltFunctionsForNamespaces(void *__py
   __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, EXSLT_STRINGS_NAMESPACE) == 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":119
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":118
  *         xslt.exsltMathXpathCtxtRegister(ctxt, c_prefix)
  *     elif tree.xmlStrcmp(c_href, xslt.EXSLT_STRINGS_NAMESPACE) == 0:
  *         xslt.exsltStrXpathCtxtRegister(ctxt, c_prefix)             # <<<<<<<<<<<<<<
@@ -131631,7 +131273,7 @@ static int __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_1__cinit__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":132
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":131
  *     cdef python.PyThread_type_lock _eval_lock
  *     cdef _ErrorLog _error_log
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -131649,7 +131291,7 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase___cinit__(struct __pyx_ob
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":133
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":132
  *     cdef _ErrorLog _error_log
  *     def __cinit__(self):
  *         self._xpathCtxt = NULL             # <<<<<<<<<<<<<<
@@ -131658,7 +131300,7 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase___cinit__(struct __pyx_ob
  */
   __pyx_v_self->_xpathCtxt = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":134
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":133
  *     def __cinit__(self):
  *         self._xpathCtxt = NULL
  *         if config.ENABLE_THREADING:             # <<<<<<<<<<<<<<
@@ -131668,7 +131310,7 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase___cinit__(struct __pyx_ob
   __pyx_t_1 = (ENABLE_THREADING != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":135
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":134
  *         self._xpathCtxt = NULL
  *         if config.ENABLE_THREADING:
  *             self._eval_lock = python.PyThread_allocate_lock()             # <<<<<<<<<<<<<<
@@ -131677,7 +131319,7 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase___cinit__(struct __pyx_ob
  */
     __pyx_v_self->_eval_lock = PyThread_allocate_lock();
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":136
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":135
  *         if config.ENABLE_THREADING:
  *             self._eval_lock = python.PyThread_allocate_lock()
  *             if self._eval_lock is NULL:             # <<<<<<<<<<<<<<
@@ -131687,14 +131329,14 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase___cinit__(struct __pyx_ob
     __pyx_t_1 = ((__pyx_v_self->_eval_lock == NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":137
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":136
  *             self._eval_lock = python.PyThread_allocate_lock()
  *             if self._eval_lock is NULL:
  *                 raise MemoryError()             # <<<<<<<<<<<<<<
  *         self._error_log = _ErrorLog()
  * 
  */
-      PyErr_NoMemory(); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      PyErr_NoMemory(); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 136; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -131702,14 +131344,14 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase___cinit__(struct __pyx_ob
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":138
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":137
  *             if self._eval_lock is NULL:
  *                 raise MemoryError()
  *         self._error_log = _ErrorLog()             # <<<<<<<<<<<<<<
  * 
  *     def __init__(self, namespaces, extensions, enable_regexp,
  */
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
   __Pyx_GOTREF(__pyx_v_self->_error_log);
@@ -131763,21 +131405,21 @@ static int __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_3__init__(PyObject *__pyx
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__extensions)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__enable_regexp)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 2); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  3:
         if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__smart_strings)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 3); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 3); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
       goto __pyx_L5_argtuple_error;
@@ -131794,7 +131436,7 @@ static int __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_3__init__(PyObject *__pyx
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 140; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 139; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._XPathEvaluatorBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -131805,7 +131447,7 @@ static int __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_3__init__(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":140
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":139
  *         self._error_log = _ErrorLog()
  * 
  *     def __init__(self, namespaces, extensions, enable_regexp,             # <<<<<<<<<<<<<<
@@ -131825,7 +131467,7 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":143
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":142
  *                  smart_strings):
  *         global _XPATH_VERSION_WARNING_REQUIRED
  *         if _XPATH_VERSION_WARNING_REQUIRED:             # <<<<<<<<<<<<<<
@@ -131835,7 +131477,7 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
   __pyx_t_1 = (__pyx_v_4lxml_5etree__XPATH_VERSION_WARNING_REQUIRED != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":144
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":143
  *         global _XPATH_VERSION_WARNING_REQUIRED
  *         if _XPATH_VERSION_WARNING_REQUIRED:
  *             _XPATH_VERSION_WARNING_REQUIRED = 0             # <<<<<<<<<<<<<<
@@ -131844,28 +131486,28 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
  */
     __pyx_v_4lxml_5etree__XPATH_VERSION_WARNING_REQUIRED = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":145
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":144
  *         if _XPATH_VERSION_WARNING_REQUIRED:
  *             _XPATH_VERSION_WARNING_REQUIRED = 0
  *             import warnings             # <<<<<<<<<<<<<<
  *             warnings.warn(u"This version of libxml2 has a known XPath bug. "
  *                           u"Use it at your own risk.")
  */
-    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__warnings), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 144; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_warnings = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":146
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":145
  *             _XPATH_VERSION_WARNING_REQUIRED = 0
  *             import warnings
  *             warnings.warn(u"This version of libxml2 has a known XPath bug. "             # <<<<<<<<<<<<<<
  *                           u"Use it at your own risk.")
  *         self._context = _XPathContext(namespaces, extensions, self._error_log,
  */
-    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s__warn); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_warnings, __pyx_n_s__warn); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_332), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_335), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -131873,14 +131515,14 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":149
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":148
  *                           u"Use it at your own risk.")
  *         self._context = _XPathContext(namespaces, extensions, self._error_log,
  *                                       enable_regexp, None, smart_strings)             # <<<<<<<<<<<<<<
  * 
  *     property error_log:
  */
-  __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(6); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_namespaces);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_namespaces);
@@ -131900,11 +131542,11 @@ static int __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_2__init__(struct __pyx_ob
   __Pyx_INCREF(__pyx_v_smart_strings);
   PyTuple_SET_ITEM(__pyx_t_3, 5, __pyx_v_smart_strings);
   __Pyx_GIVEREF(__pyx_v_smart_strings);
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathContext)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 148; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathContext)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 147; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":148
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":147
  *             warnings.warn(u"This version of libxml2 has a known XPath bug. "
  *                           u"Use it at your own risk.")
  *         self._context = _XPathContext(namespaces, extensions, self._error_log,             # <<<<<<<<<<<<<<
@@ -131941,7 +131583,7 @@ static PyObject *__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_9error_log_1__get__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":152
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":151
  * 
  *     property error_log:
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -131959,7 +131601,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_9error_log___get__(
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":153
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":152
  *     property error_log:
  *         def __get__(self):
  *             assert self._error_log is not None, "XPath evaluator not initialised"             # <<<<<<<<<<<<<<
@@ -131969,12 +131611,12 @@ static PyObject *__pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_9error_log___get__(
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
   if (unlikely(!(__pyx_t_1 != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_309));
-    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_312));
+    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":154
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":153
  *         def __get__(self):
  *             assert self._error_log is not None, "XPath evaluator not initialised"
  *             return self._error_log.copy()             # <<<<<<<<<<<<<<
@@ -131982,7 +131624,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_9error_log___get__(
  *     def __dealloc__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -132009,7 +131651,7 @@ static void __pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_5__dealloc__(PyObject *_
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":156
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":155
  *             return self._error_log.copy()
  * 
  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
@@ -132022,7 +131664,7 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("__dealloc__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":157
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":156
  * 
  *     def __dealloc__(self):
  *         if self._xpathCtxt is not NULL:             # <<<<<<<<<<<<<<
@@ -132032,7 +131674,7 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
   __pyx_t_1 = ((__pyx_v_self->_xpathCtxt != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":158
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":157
  *     def __dealloc__(self):
  *         if self._xpathCtxt is not NULL:
  *             xpath.xmlXPathFreeContext(self._xpathCtxt)             # <<<<<<<<<<<<<<
@@ -132044,7 +131686,7 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":159
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":158
  *         if self._xpathCtxt is not NULL:
  *             xpath.xmlXPathFreeContext(self._xpathCtxt)
  *         if config.ENABLE_THREADING:             # <<<<<<<<<<<<<<
@@ -132054,7 +131696,7 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
   __pyx_t_1 = (ENABLE_THREADING != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":160
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":159
  *             xpath.xmlXPathFreeContext(self._xpathCtxt)
  *         if config.ENABLE_THREADING:
  *             if self._eval_lock is not NULL:             # <<<<<<<<<<<<<<
@@ -132064,7 +131706,7 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
     __pyx_t_1 = ((__pyx_v_self->_eval_lock != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":161
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":160
  *         if config.ENABLE_THREADING:
  *             if self._eval_lock is not NULL:
  *                 python.PyThread_free_lock(self._eval_lock)             # <<<<<<<<<<<<<<
@@ -132082,7 +131724,7 @@ static void __pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_4__dealloc__(struct __py
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":163
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":162
  *                 python.PyThread_free_lock(self._eval_lock)
  * 
  *     cdef set_context(self, xpath.xmlXPathContext* xpathCtxt):             # <<<<<<<<<<<<<<
@@ -132099,7 +131741,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase_set_context(struct _
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("set_context", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":164
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":163
  * 
  *     cdef set_context(self, xpath.xmlXPathContext* xpathCtxt):
  *         self._xpathCtxt = xpathCtxt             # <<<<<<<<<<<<<<
@@ -132108,14 +131750,14 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase_set_context(struct _
  */
   __pyx_v_self->_xpathCtxt = __pyx_v_xpathCtxt;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":165
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":164
  *     cdef set_context(self, xpath.xmlXPathContext* xpathCtxt):
  *         self._xpathCtxt = xpathCtxt
  *         self._context.set_context(xpathCtxt)             # <<<<<<<<<<<<<<
  * 
  *     def evaluate(self, _eval_arg, **_variables):
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_set_context(__pyx_v_self->_context, __pyx_v_xpathCtxt); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_set_context(__pyx_v_self->_context, __pyx_v_xpathCtxt); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 164; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -132163,7 +131805,7 @@ static PyObject *__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_7evaluate(PyObject
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "evaluate") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "evaluate") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -132174,7 +131816,7 @@ static PyObject *__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_7evaluate(PyObject
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("evaluate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("evaluate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__variables); __pyx_v__variables = 0;
   __Pyx_AddTraceback("lxml.etree._XPathEvaluatorBase.evaluate", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -132187,7 +131829,7 @@ static PyObject *__pyx_pw_4lxml_5etree_19_XPathEvaluatorBase_7evaluate(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":167
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":166
  *         self._context.set_context(xpathCtxt)
  * 
  *     def evaluate(self, _eval_arg, **_variables):             # <<<<<<<<<<<<<<
@@ -132206,7 +131848,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_6evaluate(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("evaluate", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":180
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":179
  *         :deprecated: call the object, not its method.
  *         """
  *         return self(_eval_arg, **_variables)             # <<<<<<<<<<<<<<
@@ -132214,14 +131856,14 @@ static PyObject *__pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_6evaluate(struct __
  *     cdef bint _checkAbsolutePath(self, char* path):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v__eval_arg);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__eval_arg);
   __Pyx_GIVEREF(__pyx_v__eval_arg);
   __pyx_t_2 = ((PyObject *)__pyx_v__variables);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 180; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 179; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -132243,7 +131885,7 @@ static PyObject *__pyx_pf_4lxml_5etree_19_XPathEvaluatorBase_6evaluate(struct __
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":182
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":181
  *         return self(_eval_arg, **_variables)
  * 
  *     cdef bint _checkAbsolutePath(self, char* path):             # <<<<<<<<<<<<<<
@@ -132258,7 +131900,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("_checkAbsolutePath", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":184
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":183
  *     cdef bint _checkAbsolutePath(self, char* path):
  *         cdef char c
  *         if path is NULL:             # <<<<<<<<<<<<<<
@@ -132268,7 +131910,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
   __pyx_t_1 = ((__pyx_v_path == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":185
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":184
  *         cdef char c
  *         if path is NULL:
  *             return 0             # <<<<<<<<<<<<<<
@@ -132281,7 +131923,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":186
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":185
  *         if path is NULL:
  *             return 0
  *         c = path[0]             # <<<<<<<<<<<<<<
@@ -132290,7 +131932,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
  */
   __pyx_v_c = (__pyx_v_path[0]);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":187
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":186
  *             return 0
  *         c = path[0]
  *         while c == c' ' or c == c'\t':             # <<<<<<<<<<<<<<
@@ -132309,7 +131951,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
     }
     if (!__pyx_t_1) break;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":188
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":187
  *         c = path[0]
  *         while c == c' ' or c == c'\t':
  *             path = path + 1             # <<<<<<<<<<<<<<
@@ -132318,7 +131960,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
  */
     __pyx_v_path = (__pyx_v_path + 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":189
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":188
  *         while c == c' ' or c == c'\t':
  *             path = path + 1
  *             c = path[0]             # <<<<<<<<<<<<<<
@@ -132328,7 +131970,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
     __pyx_v_c = (__pyx_v_path[0]);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":190
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":189
  *             path = path + 1
  *             c = path[0]
  *         return c == c'/'             # <<<<<<<<<<<<<<
@@ -132344,7 +131986,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__checkAbsolutePath(CYTHON_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":193
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":192
  * 
  *     @cython.final
  *     cdef int _lock(self) except -1:             # <<<<<<<<<<<<<<
@@ -132364,7 +132006,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_lock", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":195
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":194
  *     cdef int _lock(self) except -1:
  *         cdef int result
  *         if config.ENABLE_THREADING and self._eval_lock != NULL:             # <<<<<<<<<<<<<<
@@ -132379,7 +132021,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":196
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":195
  *         cdef int result
  *         if config.ENABLE_THREADING and self._eval_lock != NULL:
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -132393,7 +132035,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
         #endif
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":198
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":197
  *             with nogil:
  *                 result = python.PyThread_acquire_lock(
  *                     self._eval_lock, python.WAIT_LOCK)             # <<<<<<<<<<<<<<
@@ -132403,7 +132045,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
           __pyx_v_result = PyThread_acquire_lock(__pyx_v_self->_eval_lock, WAIT_LOCK);
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":196
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":195
  *         cdef int result
  *         if config.ENABLE_THREADING and self._eval_lock != NULL:
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -132417,7 +132059,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
         }
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":199
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":198
  *                 result = python.PyThread_acquire_lock(
  *                     self._eval_lock, python.WAIT_LOCK)
  *             if result == 0:             # <<<<<<<<<<<<<<
@@ -132427,18 +132069,18 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
     __pyx_t_2 = ((__pyx_v_result == 0) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":200
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":199
  *                     self._eval_lock, python.WAIT_LOCK)
  *             if result == 0:
  *                 raise XPathError, u"XPath evaluator locking failed"             # <<<<<<<<<<<<<<
  *         return 0
  * 
  */
-      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_333), 0, 0);
+      __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_336), 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 200; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L7;
     }
     __pyx_L7:;
@@ -132446,7 +132088,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":201
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":200
  *             if result == 0:
  *                 raise XPathError, u"XPath evaluator locking failed"
  *         return 0             # <<<<<<<<<<<<<<
@@ -132467,7 +132109,7 @@ static int __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(struct __pyx_obj_4lx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":204
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":203
  * 
  *     @cython.final
  *     cdef void _unlock(self):             # <<<<<<<<<<<<<<
@@ -132481,7 +132123,7 @@ static void __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__unlock(struct __pyx_obj_
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_unlock", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":205
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":204
  *     @cython.final
  *     cdef void _unlock(self):
  *         if config.ENABLE_THREADING and self._eval_lock != NULL:             # <<<<<<<<<<<<<<
@@ -132496,7 +132138,7 @@ static void __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__unlock(struct __pyx_obj_
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":206
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":205
  *     cdef void _unlock(self):
  *         if config.ENABLE_THREADING and self._eval_lock != NULL:
  *             python.PyThread_release_lock(self._eval_lock)             # <<<<<<<<<<<<<<
@@ -132511,7 +132153,7 @@ static void __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__unlock(struct __pyx_obj_
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":208
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":207
  *             python.PyThread_release_lock(self._eval_lock)
  * 
  *     cdef _raise_parse_error(self):             # <<<<<<<<<<<<<<
@@ -132534,51 +132176,51 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_raise_parse_error", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":210
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":209
  *     cdef _raise_parse_error(self):
  *         cdef _BaseErrorLog entries
  *         entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)             # <<<<<<<<<<<<<<
  *         if entries:
  *             message = entries._buildExceptionMessage(None)
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
   __Pyx_GIVEREF(__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
-  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__BaseErrorLog))))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__BaseErrorLog))))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 209; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_entries = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":211
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":210
  *         cdef _BaseErrorLog entries
  *         entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)
  *         if entries:             # <<<<<<<<<<<<<<
  *             message = entries._buildExceptionMessage(None)
  *             if message is not None:
  */
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_entries)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_entries)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":212
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":211
  *         entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)
  *         if entries:
  *             message = entries._buildExceptionMessage(None)             # <<<<<<<<<<<<<<
  *             if message is not None:
  *                 raise XPathSyntaxError(message, self._error_log)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(__pyx_v_entries, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(__pyx_v_entries, Py_None); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 211; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_v_message = __pyx_t_3;
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":213
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":212
  *         if entries:
  *             message = entries._buildExceptionMessage(None)
  *             if message is not None:             # <<<<<<<<<<<<<<
@@ -132589,16 +132231,16 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
     __pyx_t_5 = (__pyx_t_4 != 0);
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":214
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":213
  *             message = entries._buildExceptionMessage(None)
  *             if message is not None:
  *                 raise XPathSyntaxError(message, self._error_log)             # <<<<<<<<<<<<<<
  *         raise XPathSyntaxError(self._error_log._buildExceptionMessage(
  *                 u"Error in xpath expression"),
  */
-      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathSyntaxError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_INCREF(__pyx_v_message);
       PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_message);
@@ -132606,13 +132248,13 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
       __Pyx_INCREF(((PyObject *)__pyx_v_self->_error_log));
       PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->_error_log));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
-      __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
       __Pyx_Raise(__pyx_t_1, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L4;
     }
     __pyx_L4:;
@@ -132620,26 +132262,26 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":215
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":214
  *             if message is not None:
  *                 raise XPathSyntaxError(message, self._error_log)
  *         raise XPathSyntaxError(self._error_log._buildExceptionMessage(             # <<<<<<<<<<<<<<
  *                 u"Error in xpath expression"),
  *                                self._error_log)
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_334)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_337)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":217
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":216
  *         raise XPathSyntaxError(self._error_log._buildExceptionMessage(
  *                 u"Error in xpath expression"),
  *                                self._error_log)             # <<<<<<<<<<<<<<
  * 
  *     cdef _raise_eval_error(self):
  */
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
@@ -132647,13 +132289,13 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
   PyTuple_SET_ITEM(__pyx_t_3, 1, ((PyObject *)__pyx_v_self->_error_log));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_Raise(__pyx_t_2, 0, 0, 0);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  {__pyx_filename = __pyx_f[18]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  {__pyx_filename = __pyx_f[18]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -132671,7 +132313,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error(s
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":219
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":218
  *                                self._error_log)
  * 
  *     cdef _raise_eval_error(self):             # <<<<<<<<<<<<<<
@@ -132694,88 +132336,87 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_raise_eval_error", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":221
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":220
  *     cdef _raise_eval_error(self):
  *         cdef _BaseErrorLog entries
  *         entries = self._error_log.filter_types(_XPATH_EVAL_ERRORS)             # <<<<<<<<<<<<<<
  *         if not entries:
  *             entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(__pyx_v_4lxml_5etree__XPATH_EVAL_ERRORS);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_4lxml_5etree__XPATH_EVAL_ERRORS);
   __Pyx_GIVEREF(__pyx_v_4lxml_5etree__XPATH_EVAL_ERRORS);
-  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__BaseErrorLog))))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_3) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_3, __pyx_ptype_4lxml_5etree__BaseErrorLog))))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 220; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_entries = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":222
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":221
  *         cdef _BaseErrorLog entries
  *         entries = self._error_log.filter_types(_XPATH_EVAL_ERRORS)
  *         if not entries:             # <<<<<<<<<<<<<<
  *             entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)
  *         if entries:
  */
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_entries)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_entries)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_5 = ((!__pyx_t_4) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":223
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":222
  *         entries = self._error_log.filter_types(_XPATH_EVAL_ERRORS)
  *         if not entries:
  *             entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)             # <<<<<<<<<<<<<<
  *         if entries:
  *             message = entries._buildExceptionMessage(None)
  */
-    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s__filter_types); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
     PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
     __Pyx_GIVEREF(__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
-    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__BaseErrorLog))))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_DECREF(((PyObject *)__pyx_v_entries));
-    __pyx_v_entries = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1);
+    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__BaseErrorLog))))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_DECREF_SET(__pyx_v_entries, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":224
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":223
  *         if not entries:
  *             entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)
  *         if entries:             # <<<<<<<<<<<<<<
  *             message = entries._buildExceptionMessage(None)
  *             if message is not None:
  */
-  __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_entries)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_entries)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":225
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":224
  *             entries = self._error_log.filter_types(_XPATH_SYNTAX_ERRORS)
  *         if entries:
  *             message = entries._buildExceptionMessage(None)             # <<<<<<<<<<<<<<
  *             if message is not None:
  *                 raise XPathEvalError(message, self._error_log)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(__pyx_v_entries, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(__pyx_v_entries, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 224; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_message = __pyx_t_1;
     __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":226
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":225
  *         if entries:
  *             message = entries._buildExceptionMessage(None)
  *             if message is not None:             # <<<<<<<<<<<<<<
@@ -132786,16 +132427,16 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
     __pyx_t_4 = (__pyx_t_5 != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":227
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":226
  *             message = entries._buildExceptionMessage(None)
  *             if message is not None:
  *                 raise XPathEvalError(message, self._error_log)             # <<<<<<<<<<<<<<
  *         raise XPathEvalError(self._error_log._buildExceptionMessage(
  *                 u"Error in xpath expression"),
  */
-      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_INCREF(__pyx_v_message);
       PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_message);
@@ -132803,13 +132444,13 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
       __Pyx_INCREF(((PyObject *)__pyx_v_self->_error_log));
       PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->_error_log));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
-      __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
       __Pyx_Raise(__pyx_t_3, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
-      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L5;
     }
     __pyx_L5:;
@@ -132817,26 +132458,26 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":228
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":227
  *             if message is not None:
  *                 raise XPathEvalError(message, self._error_log)
  *         raise XPathEvalError(self._error_log._buildExceptionMessage(             # <<<<<<<<<<<<<<
  *                 u"Error in xpath expression"),
  *                              self._error_log)
  */
-  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_334)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_337)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":230
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":229
  *         raise XPathEvalError(self._error_log._buildExceptionMessage(
  *                 u"Error in xpath expression"),
  *                              self._error_log)             # <<<<<<<<<<<<<<
  * 
  *     cdef object _handle_result(self, xpath.xmlXPathObject* xpathObj, _Document doc):
  */
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
@@ -132844,13 +132485,13 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
   PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->_error_log));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_Raise(__pyx_t_2, 0, 0, 0);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  {__pyx_filename = __pyx_f[18]; __pyx_lineno = 228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  {__pyx_filename = __pyx_f[18]; __pyx_lineno = 227; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
   goto __pyx_L0;
@@ -132868,7 +132509,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error(st
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":232
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":231
  *                              self._error_log)
  * 
  *     cdef object _handle_result(self, xpath.xmlXPathObject* xpathObj, _Document doc):             # <<<<<<<<<<<<<<
@@ -132889,7 +132530,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_handle_result", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":233
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":232
  * 
  *     cdef object _handle_result(self, xpath.xmlXPathObject* xpathObj, _Document doc):
  *         if self._context._exc._has_raised():             # <<<<<<<<<<<<<<
@@ -132899,7 +132540,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
   __pyx_t_1 = (((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_self->_context->__pyx_base._exc->__pyx_vtab)->_has_raised(__pyx_v_self->_context->__pyx_base._exc) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":234
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":233
  *     cdef object _handle_result(self, xpath.xmlXPathObject* xpathObj, _Document doc):
  *         if self._context._exc._has_raised():
  *             if xpathObj is not NULL:             # <<<<<<<<<<<<<<
@@ -132909,7 +132550,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
     __pyx_t_1 = ((__pyx_v_xpathObj != NULL) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":235
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":234
  *         if self._context._exc._has_raised():
  *             if xpathObj is not NULL:
  *                 _freeXPathObject(xpathObj)             # <<<<<<<<<<<<<<
@@ -132918,7 +132559,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
  */
       __pyx_f_4lxml_5etree__freeXPathObject(__pyx_v_xpathObj);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":236
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":235
  *             if xpathObj is not NULL:
  *                 _freeXPathObject(xpathObj)
  *                 xpathObj = NULL             # <<<<<<<<<<<<<<
@@ -132930,30 +132571,30 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":237
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":236
  *                 _freeXPathObject(xpathObj)
  *                 xpathObj = NULL
  *             self._context._release_temp_refs()             # <<<<<<<<<<<<<<
  *             self._context._exc._raise_if_stored()
  * 
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_12_BaseContext__release_temp_refs(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->_context)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_12_BaseContext__release_temp_refs(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->_context)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":238
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":237
  *                 xpathObj = NULL
  *             self._context._release_temp_refs()
  *             self._context._exc._raise_if_stored()             # <<<<<<<<<<<<<<
  * 
  *         if xpathObj is NULL:
  */
-    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_self->_context->__pyx_base._exc->__pyx_vtab)->_raise_if_stored(__pyx_v_self->_context->__pyx_base._exc); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_self->_context->__pyx_base._exc->__pyx_vtab)->_raise_if_stored(__pyx_v_self->_context->__pyx_base._exc); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":240
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":239
  *             self._context._exc._raise_if_stored()
  * 
  *         if xpathObj is NULL:             # <<<<<<<<<<<<<<
@@ -132963,32 +132604,32 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
   __pyx_t_1 = ((__pyx_v_xpathObj == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":241
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":240
  * 
  *         if xpathObj is NULL:
  *             self._context._release_temp_refs()             # <<<<<<<<<<<<<<
  *             self._raise_eval_error()
  * 
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_12_BaseContext__release_temp_refs(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->_context)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_12_BaseContext__release_temp_refs(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->_context)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":242
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":241
  *         if xpathObj is NULL:
  *             self._context._release_temp_refs()
  *             self._raise_eval_error()             # <<<<<<<<<<<<<<
  * 
  *         try:
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self->__pyx_vtab)->_raise_eval_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self->__pyx_vtab)->_raise_eval_error(__pyx_v_self); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":244
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":243
  *             self._raise_eval_error()
  * 
  *         try:             # <<<<<<<<<<<<<<
@@ -132997,7 +132638,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":245
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":244
  * 
  *         try:
  *             result = _unwrapXPathObject(xpathObj, doc, self._context)             # <<<<<<<<<<<<<<
@@ -133006,14 +132647,14 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
  */
     __pyx_t_2 = ((PyObject *)__pyx_v_self->_context);
     __Pyx_INCREF(__pyx_t_2);
-    __pyx_t_4 = __pyx_f_4lxml_5etree__unwrapXPathObject(__pyx_v_xpathObj, __pyx_v_doc, ((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L7;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree__unwrapXPathObject(__pyx_v_xpathObj, __pyx_v_doc, ((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L7;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __pyx_v_result = __pyx_t_4;
     __pyx_t_4 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":247
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":246
  *             result = _unwrapXPathObject(xpathObj, doc, self._context)
  *         finally:
  *             _freeXPathObject(xpathObj)             # <<<<<<<<<<<<<<
@@ -133037,14 +132678,14 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
     __pyx_L8:;
     __pyx_f_4lxml_5etree__freeXPathObject(__pyx_v_xpathObj);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":248
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":247
  *         finally:
  *             _freeXPathObject(xpathObj)
  *             self._context._release_temp_refs()             # <<<<<<<<<<<<<<
  * 
  *         return result
  */
-    __pyx_t_4 = __pyx_f_4lxml_5etree_12_BaseContext__release_temp_refs(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->_context)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+    __pyx_t_4 = __pyx_f_4lxml_5etree_12_BaseContext__release_temp_refs(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->_context)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L10;
@@ -133068,7 +132709,7 @@ static PyObject *__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result(struc
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":250
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":249
  *             self._context._release_temp_refs()
  * 
  *         return result             # <<<<<<<<<<<<<<
@@ -133112,7 +132753,7 @@ static int __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__(PyObject *__p
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__element,&__pyx_n_s__namespaces,&__pyx_n_s__extensions,&__pyx_n_s__regexp,&__pyx_n_s__smart_strings,0};
     PyObject* values[5] = {0,0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":267
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":266
  *     """
  *     cdef _Element _element
  *     def __init__(self, _Element element not None, *, namespaces=None,             # <<<<<<<<<<<<<<
@@ -133121,7 +132762,7 @@ static int __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__(PyObject *__p
  */
     values[1] = ((PyObject *)Py_None);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":268
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":267
  *     cdef _Element _element
  *     def __init__(self, _Element element not None, *, namespaces=None,
  *                  extensions=None, regexp=True, smart_strings=True):             # <<<<<<<<<<<<<<
@@ -133129,8 +132770,8 @@ static int __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__(PyObject *__p
  *         cdef int ns_register_status
  */
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_335;
-    values[4] = __pyx_k_336;
+    values[3] = __pyx_k_338;
+    values[4] = __pyx_k_339;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -133153,7 +132794,7 @@ static int __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__(PyObject *__p
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -133168,13 +132809,13 @@ static int __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__(PyObject *__p
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XPathElementEvaluator.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_5etree__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(((struct __pyx_obj_4lxml_5etree_XPathElementEvaluator *)__pyx_v_self), __pyx_v_element, __pyx_v_namespaces, __pyx_v_extensions, __pyx_v_regexp, __pyx_v_smart_strings);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -133184,7 +132825,7 @@ static int __pyx_pw_4lxml_5etree_21XPathElementEvaluator_1__init__(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":267
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":266
  *     """
  *     cdef _Element _element
  *     def __init__(self, _Element element not None, *, namespaces=None,             # <<<<<<<<<<<<<<
@@ -133207,16 +132848,16 @@ static int __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(struct __pyx_o
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":272
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":271
  *         cdef int ns_register_status
  *         cdef _Document doc
  *         _assertValidNode(element)             # <<<<<<<<<<<<<<
  *         _assertValidDoc(element._doc)
  *         self._element = element
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(__pyx_v_element); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":273
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":272
  *         cdef _Document doc
  *         _assertValidNode(element)
  *         _assertValidDoc(element._doc)             # <<<<<<<<<<<<<<
@@ -133225,10 +132866,10 @@ static int __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(struct __pyx_o
  */
   __pyx_t_2 = ((PyObject *)__pyx_v_element->_doc);
   __Pyx_INCREF(__pyx_t_2);
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 273; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_2)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":274
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":273
  *         _assertValidNode(element)
  *         _assertValidDoc(element._doc)
  *         self._element = element             # <<<<<<<<<<<<<<
@@ -133241,7 +132882,7 @@ static int __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(struct __pyx_o
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_element));
   __pyx_v_self->_element = __pyx_v_element;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":275
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":274
  *         _assertValidDoc(element._doc)
  *         self._element = element
  *         doc = element._doc             # <<<<<<<<<<<<<<
@@ -133253,24 +132894,24 @@ static int __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(struct __pyx_o
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":276
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":275
  *         self._element = element
  *         doc = element._doc
  *         _XPathEvaluatorBase.__init__(self, namespaces, extensions,             # <<<<<<<<<<<<<<
  *                                      regexp, smart_strings)
  *         xpathCtxt = xpath.xmlXPathNewContext(doc._c_doc)
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathEvaluatorBase)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathEvaluatorBase)), __pyx_n_s____init__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":277
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":276
  *         doc = element._doc
  *         _XPathEvaluatorBase.__init__(self, namespaces, extensions,
  *                                      regexp, smart_strings)             # <<<<<<<<<<<<<<
  *         xpathCtxt = xpath.xmlXPathNewContext(doc._c_doc)
  *         if xpathCtxt is NULL:
  */
-  __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
@@ -133287,13 +132928,13 @@ static int __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(struct __pyx_o
   __Pyx_INCREF(__pyx_v_smart_strings);
   PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_v_smart_strings);
   __Pyx_GIVEREF(__pyx_v_smart_strings);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 276; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":278
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":277
  *         _XPathEvaluatorBase.__init__(self, namespaces, extensions,
  *                                      regexp, smart_strings)
  *         xpathCtxt = xpath.xmlXPathNewContext(doc._c_doc)             # <<<<<<<<<<<<<<
@@ -133302,7 +132943,7 @@ static int __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(struct __pyx_o
  */
   __pyx_v_xpathCtxt = xmlXPathNewContext(__pyx_v_doc->_c_doc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":279
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":278
  *                                      regexp, smart_strings)
  *         xpathCtxt = xpath.xmlXPathNewContext(doc._c_doc)
  *         if xpathCtxt is NULL:             # <<<<<<<<<<<<<<
@@ -133312,26 +132953,26 @@ static int __pyx_pf_4lxml_5etree_21XPathElementEvaluator___init__(struct __pyx_o
   __pyx_t_5 = ((__pyx_v_xpathCtxt == NULL) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":280
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":279
  *         xpathCtxt = xpath.xmlXPathNewContext(doc._c_doc)
  *         if xpathCtxt is NULL:
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  *         self.set_context(xpathCtxt)
  * 
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":281
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":280
  *         if xpathCtxt is NULL:
  *             raise MemoryError()
  *         self.set_context(xpathCtxt)             # <<<<<<<<<<<<<<
  * 
  *     def register_namespace(self, prefix, uri):
  */
-  __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_context(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathCtxt); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_context(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathCtxt); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
@@ -133381,11 +133022,11 @@ static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_3register_namespa
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__uri)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("register_namespace", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("register_namespace", 1, 2, 2, 1); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register_namespace") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register_namespace") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -133398,7 +133039,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_3register_namespa
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("register_namespace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("register_namespace", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XPathElementEvaluator.register_namespace", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -133409,7 +133050,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_3register_namespa
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":283
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":282
  *         self.set_context(xpathCtxt)
  * 
  *     def register_namespace(self, prefix, uri):             # <<<<<<<<<<<<<<
@@ -133426,7 +133067,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_2register_namespa
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("register_namespace", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":286
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":285
  *         u"""Register a namespace with the XPath context.
  *         """
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"             # <<<<<<<<<<<<<<
@@ -133435,19 +133076,19 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_2register_namespa
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->__pyx_base._xpathCtxt != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
-    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_340));
+    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 285; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":287
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":286
  *         """
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         self._context.addNamespace(prefix, uri)             # <<<<<<<<<<<<<<
  * 
  *     def register_namespaces(self, namespaces):
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base._context->__pyx_base.__pyx_vtab)->__pyx_base.addNamespace(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_base._context), __pyx_v_prefix, __pyx_v_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base._context->__pyx_base.__pyx_vtab)->__pyx_base.addNamespace(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_base._context), __pyx_v_prefix, __pyx_v_uri); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -133475,7 +133116,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_5register_namespa
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":289
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":288
  *         self._context.addNamespace(prefix, uri)
  * 
  *     def register_namespaces(self, namespaces):             # <<<<<<<<<<<<<<
@@ -133501,7 +133142,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_4register_namespa
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("register_namespaces", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":292
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":291
  *         u"""Register a prefix -> uri dict.
  *         """
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"             # <<<<<<<<<<<<<<
@@ -133510,28 +133151,28 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_4register_namespa
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->__pyx_base._xpathCtxt != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
-    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_340));
+    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":293
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":292
  *         """
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         for prefix, uri in namespaces.items():             # <<<<<<<<<<<<<<
  *             self._context.addNamespace(prefix, uri)
  * 
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_namespaces, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_namespaces, __pyx_n_s__items); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
     __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
     __pyx_t_4 = NULL;
   } else {
-    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext;
   }
@@ -133540,23 +133181,23 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_4register_namespa
     if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_1)) {
       if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_1)) {
       if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_2 = __pyx_t_4(__pyx_t_1);
       if (unlikely(!__pyx_t_2)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
@@ -133572,7 +133213,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_4register_namespa
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -133585,16 +133226,16 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_4register_namespa
       __Pyx_INCREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_t_6);
       #else
-      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       #endif
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -133602,7 +133243,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_4register_namespa
       __Pyx_GOTREF(__pyx_t_5);
       index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L5_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_6);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_8 = NULL;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       goto __pyx_L6_unpacking_done;
@@ -133610,24 +133251,22 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_4register_namespa
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __pyx_t_8 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_prefix);
-    __pyx_v_prefix = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_uri);
-    __pyx_v_uri = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_uri, __pyx_t_6);
     __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":294
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":293
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         for prefix, uri in namespaces.items():
  *             self._context.addNamespace(prefix, uri)             # <<<<<<<<<<<<<<
  * 
  *     def __call__(self, _path, **_variables):
  */
-    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base._context->__pyx_base.__pyx_vtab)->__pyx_base.addNamespace(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_base._context), __pyx_v_prefix, __pyx_v_uri); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__XPathContext *)__pyx_v_self->__pyx_base._context->__pyx_base.__pyx_vtab)->__pyx_base.addNamespace(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->__pyx_base._context), __pyx_v_prefix, __pyx_v_uri); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   }
@@ -133686,7 +133325,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_7__call__(PyObjec
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -133697,7 +133336,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_7__call__(PyObjec
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 296; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 295; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__variables); __pyx_v__variables = 0;
   __Pyx_AddTraceback("lxml.etree.XPathElementEvaluator.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -133710,7 +133349,7 @@ static PyObject *__pyx_pw_4lxml_5etree_21XPathElementEvaluator_7__call__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":296
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":295
  *             self._context.addNamespace(prefix, uri)
  * 
  *     def __call__(self, _path, **_variables):             # <<<<<<<<<<<<<<
@@ -133734,7 +133373,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__call__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":309
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":308
  *         cdef xpath.xmlXPathObject*  xpathObj
  *         cdef _Document doc
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"             # <<<<<<<<<<<<<<
@@ -133743,24 +133382,24 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->__pyx_base._xpathCtxt != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
-    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_340));
+    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":310
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":309
  *         cdef _Document doc
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         path = _utf8(_path)             # <<<<<<<<<<<<<<
  *         doc = self._element._doc
  * 
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v__path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v__path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_path = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":311
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":310
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         path = _utf8(_path)
  *         doc = self._element._doc             # <<<<<<<<<<<<<<
@@ -133772,16 +133411,16 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":313
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":312
  *         doc = self._element._doc
  * 
  *         self._lock()             # <<<<<<<<<<<<<<
  *         self._xpathCtxt.node = self._element._c_node
  *         try:
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":314
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":313
  * 
  *         self._lock()
  *         self._xpathCtxt.node = self._element._c_node             # <<<<<<<<<<<<<<
@@ -133791,7 +133430,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
   __pyx_t_3 = __pyx_v_self->_element->_c_node;
   __pyx_v_self->__pyx_base._xpathCtxt->node = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":315
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":314
  *         self._lock()
  *         self._xpathCtxt.node = self._element._c_node
  *         try:             # <<<<<<<<<<<<<<
@@ -133800,29 +133439,29 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":316
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":315
  *         self._xpathCtxt.node = self._element._c_node
  *         try:
  *             self._context.register_context(doc)             # <<<<<<<<<<<<<<
  *             self._context.registerVariables(_variables)
  *             c_path = _xcstr(path)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_register_context(__pyx_v_self->__pyx_base._context, __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_register_context(__pyx_v_self->__pyx_base._context, __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":317
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":316
  *         try:
  *             self._context.register_context(doc)
  *             self._context.registerVariables(_variables)             # <<<<<<<<<<<<<<
  *             c_path = _xcstr(path)
  *             with nogil:
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self->__pyx_base._context, ((PyObject *)__pyx_v__variables)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self->__pyx_base._context, ((PyObject *)__pyx_v__variables)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":318
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":317
  *             self._context.register_context(doc)
  *             self._context.registerVariables(_variables)
  *             c_path = _xcstr(path)             # <<<<<<<<<<<<<<
@@ -133831,7 +133470,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
  */
     __pyx_v_c_path = (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_path));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":319
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":318
  *             self._context.registerVariables(_variables)
  *             c_path = _xcstr(path)
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -133845,7 +133484,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
         #endif
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":321
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":320
  *             with nogil:
  *                 xpathObj = xpath.xmlXPathEvalExpression(
  *                     c_path, self._xpathCtxt)             # <<<<<<<<<<<<<<
@@ -133855,7 +133494,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
           __pyx_v_xpathObj = xmlXPathEvalExpression(__pyx_v_c_path, __pyx_v_self->__pyx_base._xpathCtxt);
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":319
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":318
  *             self._context.registerVariables(_variables)
  *             c_path = _xcstr(path)
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -133869,20 +133508,20 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
         }
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":322
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":321
  *                 xpathObj = xpath.xmlXPathEvalExpression(
  *                     c_path, self._xpathCtxt)
  *             result = self._handle_result(xpathObj, doc)             # <<<<<<<<<<<<<<
  *         finally:
  *             self._context.unregister_context()
  */
-    __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handle_result(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathObj, __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handle_result(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathObj, __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_result = __pyx_t_1;
     __pyx_t_1 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":324
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":323
  *             result = self._handle_result(xpathObj, doc)
  *         finally:
  *             self._context.unregister_context()             # <<<<<<<<<<<<<<
@@ -133903,11 +133542,11 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
       goto __pyx_L5;
     }
     __pyx_L5:;
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_unregister_context(__pyx_v_self->__pyx_base._context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 324; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_unregister_context(__pyx_v_self->__pyx_base._context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 323; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":325
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":324
  *         finally:
  *             self._context.unregister_context()
  *             self._unlock()             # <<<<<<<<<<<<<<
@@ -133936,7 +133575,7 @@ static PyObject *__pyx_pf_4lxml_5etree_21XPathElementEvaluator_6__call__(struct
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":327
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":326
  *             self._unlock()
  * 
  *         return result             # <<<<<<<<<<<<<<
@@ -133981,7 +133620,7 @@ static int __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__(PyObject *__
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__etree,&__pyx_n_s__namespaces,&__pyx_n_s__extensions,&__pyx_n_s__regexp,&__pyx_n_s__smart_strings,0};
     PyObject* values[5] = {0,0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":340
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":339
  *     you pass ``smart_strings=False``.
  *     """
  *     def __init__(self, _ElementTree etree not None, *, namespaces=None,             # <<<<<<<<<<<<<<
@@ -133990,7 +133629,7 @@ static int __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__(PyObject *__
  */
     values[1] = ((PyObject *)Py_None);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":341
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":340
  *     """
  *     def __init__(self, _ElementTree etree not None, *, namespaces=None,
  *                  extensions=None, regexp=True, smart_strings=True):             # <<<<<<<<<<<<<<
@@ -133998,8 +133637,8 @@ static int __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__(PyObject *__
  *             self, etree._context_node, namespaces=namespaces,
  */
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_338;
-    values[4] = __pyx_k_339;
+    values[3] = __pyx_k_341;
+    values[4] = __pyx_k_342;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -134022,7 +133661,7 @@ static int __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__(PyObject *__
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -134037,13 +133676,13 @@ static int __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__(PyObject *__
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XPathDocumentEvaluator.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
   return -1;
   __pyx_L4_argument_unpacking_done:;
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_etree), __pyx_ptype_4lxml_5etree__ElementTree, 0, "etree", 0))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_etree), __pyx_ptype_4lxml_5etree__ElementTree, 0, "etree", 0))) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_22XPathDocumentEvaluator___init__(((struct __pyx_obj_4lxml_5etree_XPathDocumentEvaluator *)__pyx_v_self), __pyx_v_etree, __pyx_v_namespaces, __pyx_v_extensions, __pyx_v_regexp, __pyx_v_smart_strings);
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -134053,7 +133692,7 @@ static int __pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_1__init__(PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":340
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":339
  *     you pass ``smart_strings=False``.
  *     """
  *     def __init__(self, _ElementTree etree not None, *, namespaces=None,             # <<<<<<<<<<<<<<
@@ -134073,24 +133712,24 @@ static int __pyx_pf_4lxml_5etree_22XPathDocumentEvaluator___init__(struct __pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":342
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":341
  *     def __init__(self, _ElementTree etree not None, *, namespaces=None,
  *                  extensions=None, regexp=True, smart_strings=True):
  *         XPathElementEvaluator.__init__(             # <<<<<<<<<<<<<<
  *             self, etree._context_node, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp,
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":343
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":342
  *                  extensions=None, regexp=True, smart_strings=True):
  *         XPathElementEvaluator.__init__(
  *             self, etree._context_node, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *             extensions=extensions, regexp=regexp,
  *             smart_strings=smart_strings)
  */
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self));
@@ -134099,44 +133738,44 @@ static int __pyx_pf_4lxml_5etree_22XPathDocumentEvaluator___init__(struct __pyx_
   PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_etree->_context_node));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_etree->_context_node));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":342
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":341
  *     def __init__(self, _ElementTree etree not None, *, namespaces=None,
  *                  extensions=None, regexp=True, smart_strings=True):
  *         XPathElementEvaluator.__init__(             # <<<<<<<<<<<<<<
  *             self, etree._context_node, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp,
  */
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":343
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":342
  *                  extensions=None, regexp=True, smart_strings=True):
  *         XPathElementEvaluator.__init__(
  *             self, etree._context_node, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *             extensions=extensions, regexp=regexp,
  *             smart_strings=smart_strings)
  */
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":344
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":343
  *         XPathElementEvaluator.__init__(
  *             self, etree._context_node, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp,             # <<<<<<<<<<<<<<
  *             smart_strings=smart_strings)
  * 
  */
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":345
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":344
  *             self, etree._context_node, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp,
  *             smart_strings=smart_strings)             # <<<<<<<<<<<<<<
  * 
  *     def __call__(self, _path, **_variables):
  */
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -134192,7 +133831,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_3__call__(PyObje
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -134203,7 +133842,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_3__call__(PyObje
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 347; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 346; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__variables); __pyx_v__variables = 0;
   __Pyx_AddTraceback("lxml.etree.XPathDocumentEvaluator.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -134216,7 +133855,7 @@ static PyObject *__pyx_pw_4lxml_5etree_22XPathDocumentEvaluator_3__call__(PyObje
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":347
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":346
  *             smart_strings=smart_strings)
  * 
  *     def __call__(self, _path, **_variables):             # <<<<<<<<<<<<<<
@@ -134241,7 +133880,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__call__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":358
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":357
  *         cdef xmlDoc* c_doc
  *         cdef _Document doc
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"             # <<<<<<<<<<<<<<
@@ -134250,24 +133889,24 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->__pyx_base.__pyx_base._xpathCtxt != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
-    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_340));
+    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 357; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":359
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":358
  *         cdef _Document doc
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         path = _utf8(_path)             # <<<<<<<<<<<<<<
  *         doc = self._element._doc
  * 
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v__path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 359; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v__path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 358; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_path = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":360
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":359
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         path = _utf8(_path)
  *         doc = self._element._doc             # <<<<<<<<<<<<<<
@@ -134279,16 +133918,16 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":362
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":361
  *         doc = self._element._doc
  * 
  *         self._lock()             # <<<<<<<<<<<<<<
  *         try:
  *             self._context.register_context(doc)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 362; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":363
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":362
  * 
  *         self._lock()
  *         try:             # <<<<<<<<<<<<<<
@@ -134297,28 +133936,28 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":364
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":363
  *         self._lock()
  *         try:
  *             self._context.register_context(doc)             # <<<<<<<<<<<<<<
  *             c_doc = _fakeRootDoc(doc._c_doc, self._element._c_node)
  *             try:
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_register_context(__pyx_v_self->__pyx_base.__pyx_base._context, __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_register_context(__pyx_v_self->__pyx_base.__pyx_base._context, __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 363; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":365
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":364
  *         try:
  *             self._context.register_context(doc)
  *             c_doc = _fakeRootDoc(doc._c_doc, self._element._c_node)             # <<<<<<<<<<<<<<
  *             try:
  *                 self._context.registerVariables(_variables)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_doc->_c_doc, __pyx_v_self->__pyx_base._element->_c_node); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_doc->_c_doc, __pyx_v_self->__pyx_base._element->_c_node); if (unlikely(__pyx_t_3 == NULL)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __pyx_v_c_doc = __pyx_t_3;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":366
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":365
  *             self._context.register_context(doc)
  *             c_doc = _fakeRootDoc(doc._c_doc, self._element._c_node)
  *             try:             # <<<<<<<<<<<<<<
@@ -134327,18 +133966,18 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
  */
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":367
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":366
  *             c_doc = _fakeRootDoc(doc._c_doc, self._element._c_node)
  *             try:
  *                 self._context.registerVariables(_variables)             # <<<<<<<<<<<<<<
  *                 c_path = _xcstr(path)
  *                 with nogil:
  */
-      __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self->__pyx_base.__pyx_base._context, ((PyObject *)__pyx_v__variables)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 367; __pyx_clineno = __LINE__; goto __pyx_L7;}
+      __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self->__pyx_base.__pyx_base._context, ((PyObject *)__pyx_v__variables)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L7;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":368
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":367
  *             try:
  *                 self._context.registerVariables(_variables)
  *                 c_path = _xcstr(path)             # <<<<<<<<<<<<<<
@@ -134347,7 +133986,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
  */
       __pyx_v_c_path = (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_path));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":369
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":368
  *                 self._context.registerVariables(_variables)
  *                 c_path = _xcstr(path)
  *                 with nogil:             # <<<<<<<<<<<<<<
@@ -134361,7 +134000,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
           #endif
           /*try:*/ {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":370
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":369
  *                 c_path = _xcstr(path)
  *                 with nogil:
  *                     self._xpathCtxt.doc  = c_doc             # <<<<<<<<<<<<<<
@@ -134370,7 +134009,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
  */
             __pyx_v_self->__pyx_base.__pyx_base._xpathCtxt->doc = __pyx_v_c_doc;
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":371
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":370
  *                 with nogil:
  *                     self._xpathCtxt.doc  = c_doc
  *                     self._xpathCtxt.node = tree.xmlDocGetRootElement(c_doc)             # <<<<<<<<<<<<<<
@@ -134379,7 +134018,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
  */
             __pyx_v_self->__pyx_base.__pyx_base._xpathCtxt->node = xmlDocGetRootElement(__pyx_v_c_doc);
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":373
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":372
  *                     self._xpathCtxt.node = tree.xmlDocGetRootElement(c_doc)
  *                     xpathObj = xpath.xmlXPathEvalExpression(
  *                         c_path, self._xpathCtxt)             # <<<<<<<<<<<<<<
@@ -134389,7 +134028,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
             __pyx_v_xpathObj = xmlXPathEvalExpression(__pyx_v_c_path, __pyx_v_self->__pyx_base.__pyx_base._xpathCtxt);
           }
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":369
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":368
  *                 self._context.registerVariables(_variables)
  *                 c_path = _xcstr(path)
  *                 with nogil:             # <<<<<<<<<<<<<<
@@ -134403,20 +134042,20 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
           }
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":374
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":373
  *                     xpathObj = xpath.xmlXPathEvalExpression(
  *                         c_path, self._xpathCtxt)
  *                 result = self._handle_result(xpathObj, doc)             # <<<<<<<<<<<<<<
  *             finally:
  *                 _destroyFakeDoc(doc._c_doc, c_doc)
  */
-      __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_XPathDocumentEvaluator *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._handle_result(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathObj, __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L7;}
+      __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_XPathDocumentEvaluator *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._handle_result(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathObj, __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L7;}
       __Pyx_GOTREF(__pyx_t_1);
       __pyx_v_result = __pyx_t_1;
       __pyx_t_1 = 0;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":376
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":375
  *                 result = self._handle_result(xpathObj, doc)
  *             finally:
  *                 _destroyFakeDoc(doc._c_doc, c_doc)             # <<<<<<<<<<<<<<
@@ -134439,14 +134078,14 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
       __pyx_L8:;
       __pyx_f_4lxml_5etree__destroyFakeDoc(__pyx_v_doc->_c_doc, __pyx_v_c_doc);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":377
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":376
  *             finally:
  *                 _destroyFakeDoc(doc._c_doc, c_doc)
  *                 self._context.unregister_context()             # <<<<<<<<<<<<<<
  *         finally:
  *             self._unlock()
  */
-      __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_unregister_context(__pyx_v_self->__pyx_base.__pyx_base._context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
+      __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_unregister_context(__pyx_v_self->__pyx_base.__pyx_base._context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L12_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       goto __pyx_L13;
@@ -134471,7 +134110,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":379
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":378
  *                 self._context.unregister_context()
  *         finally:
  *             self._unlock()             # <<<<<<<<<<<<<<
@@ -134505,7 +134144,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22XPathDocumentEvaluator_2__call__(struct
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":381
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":380
  *             self._unlock()
  * 
  *         return result             # <<<<<<<<<<<<<<
@@ -134552,7 +134191,7 @@ static PyObject *__pyx_pw_4lxml_5etree_63XPathEvaluator(PyObject *__pyx_self, Py
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__etree_or_element,&__pyx_n_s__namespaces,&__pyx_n_s__extensions,&__pyx_n_s__regexp,&__pyx_n_s__smart_strings,0};
     PyObject* values[5] = {0,0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":384
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":383
  * 
  * 
  * def XPathEvaluator(etree_or_element, *, namespaces=None, extensions=None,             # <<<<<<<<<<<<<<
@@ -134561,8 +134200,8 @@ static PyObject *__pyx_pw_4lxml_5etree_63XPathEvaluator(PyObject *__pyx_self, Py
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_340;
-    values[4] = __pyx_k_341;
+    values[3] = __pyx_k_343;
+    values[4] = __pyx_k_344;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -134585,7 +134224,7 @@ static PyObject *__pyx_pw_4lxml_5etree_63XPathEvaluator(PyObject *__pyx_self, Py
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XPathEvaluator") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XPathEvaluator") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -134600,7 +134239,7 @@ static PyObject *__pyx_pw_4lxml_5etree_63XPathEvaluator(PyObject *__pyx_self, Py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("XPathEvaluator", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("XPathEvaluator", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XPathEvaluator", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -134624,7 +134263,7 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("XPathEvaluator", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":399
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":398
  *     you pass ``smart_strings=False``.
  *     """
  *     if isinstance(etree_or_element, _ElementTree):             # <<<<<<<<<<<<<<
@@ -134635,7 +134274,7 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":400
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":399
  *     """
  *     if isinstance(etree_or_element, _ElementTree):
  *         return XPathDocumentEvaluator(             # <<<<<<<<<<<<<<
@@ -134644,49 +134283,49 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  */
     __Pyx_XDECREF(__pyx_r);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":401
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":400
  *     if isinstance(etree_or_element, _ElementTree):
  *         return XPathDocumentEvaluator(
  *             etree_or_element, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  *     else:
  */
-    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_INCREF(__pyx_v_etree_or_element);
     PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_etree_or_element);
     __Pyx_GIVEREF(__pyx_v_etree_or_element);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":400
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":399
  *     """
  *     if isinstance(etree_or_element, _ElementTree):
  *         return XPathDocumentEvaluator(             # <<<<<<<<<<<<<<
  *             etree_or_element, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  */
-    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":401
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":400
  *     if isinstance(etree_or_element, _ElementTree):
  *         return XPathDocumentEvaluator(
  *             etree_or_element, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  *     else:
  */
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":402
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":401
  *         return XPathDocumentEvaluator(
  *             etree_or_element, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)             # <<<<<<<<<<<<<<
  *     else:
  *         return XPathElementEvaluator(
  */
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathDocumentEvaluator)), ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -134697,7 +134336,7 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":404
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":403
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  *     else:
  *         return XPathElementEvaluator(             # <<<<<<<<<<<<<<
@@ -134706,49 +134345,49 @@ static PyObject *__pyx_pf_4lxml_5etree_62XPathEvaluator(CYTHON_UNUSED PyObject *
  */
     __Pyx_XDECREF(__pyx_r);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":405
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":404
  *     else:
  *         return XPathElementEvaluator(
  *             etree_or_element, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  * 
  */
-    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_etree_or_element);
     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_etree_or_element);
     __Pyx_GIVEREF(__pyx_v_etree_or_element);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":404
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":403
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  *     else:
  *         return XPathElementEvaluator(             # <<<<<<<<<<<<<<
  *             etree_or_element, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  */
-    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":405
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":404
  *     else:
  *         return XPathElementEvaluator(
  *             etree_or_element, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)
  * 
  */
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":406
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":405
  *         return XPathElementEvaluator(
  *             etree_or_element, namespaces=namespaces,
  *             extensions=extensions, regexp=regexp, smart_strings=smart_strings)             # <<<<<<<<<<<<<<
  * 
  * 
  */
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPathElementEvaluator)), ((PyObject *)__pyx_t_5), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -134786,7 +134425,7 @@ static int __pyx_pw_4lxml_5etree_5XPath_1__cinit__(PyObject *__pyx_v_self, PyObj
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":423
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":422
  *     cdef xpath.xmlXPathCompExpr* _xpath
  *     cdef bytes _path
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -134799,7 +134438,7 @@ static int __pyx_pf_4lxml_5etree_5XPath___cinit__(struct __pyx_obj_4lxml_5etree_
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":424
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":423
  *     cdef bytes _path
  *     def __cinit__(self):
  *         self._xpath = NULL             # <<<<<<<<<<<<<<
@@ -134831,7 +134470,7 @@ static int __pyx_pw_4lxml_5etree_5XPath_3__init__(PyObject *__pyx_v_self, PyObje
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__namespaces,&__pyx_n_s__extensions,&__pyx_n_s__regexp,&__pyx_n_s__smart_strings,0};
     PyObject* values[5] = {0,0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":426
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":425
  *         self._xpath = NULL
  * 
  *     def __init__(self, path, *, namespaces=None, extensions=None,             # <<<<<<<<<<<<<<
@@ -134840,8 +134479,8 @@ static int __pyx_pw_4lxml_5etree_5XPath_3__init__(PyObject *__pyx_v_self, PyObje
  */
     values[1] = ((PyObject *)Py_None);
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_342;
-    values[4] = __pyx_k_343;
+    values[3] = __pyx_k_345;
+    values[4] = __pyx_k_346;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -134864,7 +134503,7 @@ static int __pyx_pw_4lxml_5etree_5XPath_3__init__(PyObject *__pyx_v_self, PyObje
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -134879,7 +134518,7 @@ static int __pyx_pw_4lxml_5etree_5XPath_3__init__(PyObject *__pyx_v_self, PyObje
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XPath.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -134903,24 +134542,24 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":429
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":428
  *                  regexp=True, smart_strings=True):
  *         cdef xpath.xmlXPathContext* xpathCtxt
  *         _XPathEvaluatorBase.__init__(self, namespaces, extensions,             # <<<<<<<<<<<<<<
  *                                      regexp, smart_strings)
  *         self._path = _utf8(path)
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathEvaluatorBase)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XPathEvaluatorBase)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":430
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":429
  *         cdef xpath.xmlXPathContext* xpathCtxt
  *         _XPathEvaluatorBase.__init__(self, namespaces, extensions,
  *                                      regexp, smart_strings)             # <<<<<<<<<<<<<<
  *         self._path = _utf8(path)
  *         xpathCtxt = xpath.xmlXPathNewContext(NULL)
  */
-  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(5); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_self));
@@ -134937,20 +134576,20 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
   __Pyx_INCREF(__pyx_v_smart_strings);
   PyTuple_SET_ITEM(__pyx_t_2, 4, __pyx_v_smart_strings);
   __Pyx_GIVEREF(__pyx_v_smart_strings);
-  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":431
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":430
  *         _XPathEvaluatorBase.__init__(self, namespaces, extensions,
  *                                      regexp, smart_strings)
  *         self._path = _utf8(path)             # <<<<<<<<<<<<<<
  *         xpathCtxt = xpath.xmlXPathNewContext(NULL)
  *         if xpathCtxt is NULL:
  */
-  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_path)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_path)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_GIVEREF(__pyx_t_3);
   __Pyx_GOTREF(__pyx_v_self->_path);
@@ -134958,7 +134597,7 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
   __pyx_v_self->_path = ((PyObject*)__pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":432
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":431
  *                                      regexp, smart_strings)
  *         self._path = _utf8(path)
  *         xpathCtxt = xpath.xmlXPathNewContext(NULL)             # <<<<<<<<<<<<<<
@@ -134967,7 +134606,7 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
  */
   __pyx_v_xpathCtxt = xmlXPathNewContext(NULL);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":433
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":432
  *         self._path = _utf8(path)
  *         xpathCtxt = xpath.xmlXPathNewContext(NULL)
  *         if xpathCtxt is NULL:             # <<<<<<<<<<<<<<
@@ -134977,30 +134616,30 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
   __pyx_t_4 = ((__pyx_v_xpathCtxt == NULL) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":434
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":433
  *         xpathCtxt = xpath.xmlXPathNewContext(NULL)
  *         if xpathCtxt is NULL:
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  *         self.set_context(xpathCtxt)
  *         self._xpath = xpath.xmlXPathCtxtCompile(xpathCtxt, _xcstr(self._path))
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":435
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":434
  *         if xpathCtxt is NULL:
  *             raise MemoryError()
  *         self.set_context(xpathCtxt)             # <<<<<<<<<<<<<<
  *         self._xpath = xpath.xmlXPathCtxtCompile(xpathCtxt, _xcstr(self._path))
  *         if self._xpath is NULL:
  */
-  __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree_XPath *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_context(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathCtxt); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 435; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree_XPath *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.set_context(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathCtxt); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 434; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":436
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":435
  *             raise MemoryError()
  *         self.set_context(xpathCtxt)
  *         self._xpath = xpath.xmlXPathCtxtCompile(xpathCtxt, _xcstr(self._path))             # <<<<<<<<<<<<<<
@@ -135012,7 +134651,7 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
   __pyx_v_self->_xpath = xmlXPathCtxtCompile(__pyx_v_xpathCtxt, (const xmlChar*)PyBytes_AS_STRING(__pyx_t_3));
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":437
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":436
  *         self.set_context(xpathCtxt)
  *         self._xpath = xpath.xmlXPathCtxtCompile(xpathCtxt, _xcstr(self._path))
  *         if self._xpath is NULL:             # <<<<<<<<<<<<<<
@@ -135022,14 +134661,14 @@ static int __pyx_pf_4lxml_5etree_5XPath_2__init__(struct __pyx_obj_4lxml_5etree_
   __pyx_t_4 = ((__pyx_v_self->_xpath == NULL) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":438
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":437
  *         self._xpath = xpath.xmlXPathCtxtCompile(xpathCtxt, _xcstr(self._path))
  *         if self._xpath is NULL:
  *             self._raise_parse_error()             # <<<<<<<<<<<<<<
  * 
  *     def __call__(self, _etree_or_element, **_variables):
  */
-    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree_XPath *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._raise_parse_error(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 438; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((struct __pyx_vtabstruct_4lxml_5etree_XPath *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._raise_parse_error(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L4;
@@ -135084,7 +134723,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5XPath_5__call__(PyObject *__pyx_v_self,
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__variables, values, pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -135095,7 +134734,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5XPath_5__call__(PyObject *__pyx_v_self,
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 440; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 439; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__variables); __pyx_v__variables = 0;
   __Pyx_AddTraceback("lxml.etree.XPath.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -135108,7 +134747,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5XPath_5__call__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":440
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":439
  *             self._raise_parse_error()
  * 
  *     def __call__(self, _etree_or_element, **_variables):             # <<<<<<<<<<<<<<
@@ -135132,7 +134771,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__call__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":446
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":445
  *         cdef _Element element
  * 
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"             # <<<<<<<<<<<<<<
@@ -135141,45 +134780,45 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->__pyx_base._xpathCtxt != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_337));
-    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_340));
+    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":447
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":446
  * 
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         document = _documentOrRaise(_etree_or_element)             # <<<<<<<<<<<<<<
  *         element  = _rootNodeOrRaise(_etree_or_element)
  * 
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v__etree_or_element)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v__etree_or_element)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_document = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":448
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":447
  *         assert self._xpathCtxt is not NULL, "XPath context not initialised"
  *         document = _documentOrRaise(_etree_or_element)
  *         element  = _rootNodeOrRaise(_etree_or_element)             # <<<<<<<<<<<<<<
  * 
  *         self._lock()
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__rootNodeOrRaise(__pyx_v__etree_or_element)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__rootNodeOrRaise(__pyx_v__etree_or_element)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_element = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":450
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":449
  *         element  = _rootNodeOrRaise(_etree_or_element)
  * 
  *         self._lock()             # <<<<<<<<<<<<<<
  *         self._xpathCtxt.doc  = document._c_doc
  *         self._xpathCtxt.node = element._c_node
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree_19_XPathEvaluatorBase__lock(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":451
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":450
  * 
  *         self._lock()
  *         self._xpathCtxt.doc  = document._c_doc             # <<<<<<<<<<<<<<
@@ -135189,7 +134828,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
   __pyx_t_3 = __pyx_v_document->_c_doc;
   __pyx_v_self->__pyx_base._xpathCtxt->doc = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":452
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":451
  *         self._lock()
  *         self._xpathCtxt.doc  = document._c_doc
  *         self._xpathCtxt.node = element._c_node             # <<<<<<<<<<<<<<
@@ -135199,7 +134838,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
   __pyx_t_4 = __pyx_v_element->_c_node;
   __pyx_v_self->__pyx_base._xpathCtxt->node = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":454
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":453
  *         self._xpathCtxt.node = element._c_node
  * 
  *         try:             # <<<<<<<<<<<<<<
@@ -135208,29 +134847,29 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":455
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":454
  * 
  *         try:
  *             self._context.register_context(document)             # <<<<<<<<<<<<<<
  *             self._context.registerVariables(_variables)
  *             with nogil:
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_register_context(__pyx_v_self->__pyx_base._context, __pyx_v_document); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_register_context(__pyx_v_self->__pyx_base._context, __pyx_v_document); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 454; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":456
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":455
  *         try:
  *             self._context.register_context(document)
  *             self._context.registerVariables(_variables)             # <<<<<<<<<<<<<<
  *             with nogil:
  *                 xpathObj = xpath.xmlXPathCompiledEval(
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self->__pyx_base._context, ((PyObject *)__pyx_v__variables)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_registerVariables(__pyx_v_self->__pyx_base._context, ((PyObject *)__pyx_v__variables)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":457
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":456
  *             self._context.register_context(document)
  *             self._context.registerVariables(_variables)
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -135244,7 +134883,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
         #endif
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":459
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":458
  *             with nogil:
  *                 xpathObj = xpath.xmlXPathCompiledEval(
  *                     self._xpath, self._xpathCtxt)             # <<<<<<<<<<<<<<
@@ -135254,7 +134893,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
           __pyx_v_xpathObj = xmlXPathCompiledEval(__pyx_v_self->_xpath, __pyx_v_self->__pyx_base._xpathCtxt);
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":457
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":456
  *             self._context.register_context(document)
  *             self._context.registerVariables(_variables)
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -135268,20 +134907,20 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
         }
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":460
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":459
  *                 xpathObj = xpath.xmlXPathCompiledEval(
  *                     self._xpath, self._xpathCtxt)
  *             result = self._handle_result(xpathObj, document)             # <<<<<<<<<<<<<<
  *         finally:
  *             self._context.unregister_context()
  */
-    __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_XPath *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handle_result(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathObj, __pyx_v_document); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 460; __pyx_clineno = __LINE__; goto __pyx_L4;}
+    __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_XPath *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._handle_result(((struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *)__pyx_v_self), __pyx_v_xpathObj, __pyx_v_document); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 459; __pyx_clineno = __LINE__; goto __pyx_L4;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_result = __pyx_t_1;
     __pyx_t_1 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":462
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":461
  *             result = self._handle_result(xpathObj, document)
  *         finally:
  *             self._context.unregister_context()             # <<<<<<<<<<<<<<
@@ -135302,11 +134941,11 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
       goto __pyx_L5;
     }
     __pyx_L5:;
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_unregister_context(__pyx_v_self->__pyx_base._context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_XPathContext_unregister_context(__pyx_v_self->__pyx_base._context); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":463
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":462
  *         finally:
  *             self._context.unregister_context()
  *             self._unlock()             # <<<<<<<<<<<<<<
@@ -135335,7 +134974,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4__call__(struct __pyx_obj_4lxml_5
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":464
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":463
  *             self._context.unregister_context()
  *             self._unlock()
  *         return result             # <<<<<<<<<<<<<<
@@ -135373,7 +135012,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5XPath_4path_1__get__(PyObject *__pyx_v_s
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":469
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":468
  *         u"""The literal XPath expression.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -135390,7 +135029,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4path___get__(struct __pyx_obj_4lx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":470
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":469
  *         """
  *         def __get__(self):
  *             return self._path.decode(u'UTF-8')             # <<<<<<<<<<<<<<
@@ -135400,9 +135039,9 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_4path___get__(struct __pyx_obj_4lx
   __Pyx_XDECREF(__pyx_r);
   if (unlikely(((PyObject *)__pyx_v_self->_path) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_self->_path), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_self->_path), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_r = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
@@ -135429,7 +135068,7 @@ static void __pyx_pw_4lxml_5etree_5XPath_7__dealloc__(PyObject *__pyx_v_self) {
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":472
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":471
  *             return self._path.decode(u'UTF-8')
  * 
  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
@@ -135442,7 +135081,7 @@ static void __pyx_pf_4lxml_5etree_5XPath_6__dealloc__(struct __pyx_obj_4lxml_5et
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("__dealloc__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":473
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":472
  * 
  *     def __dealloc__(self):
  *         if self._xpath is not NULL:             # <<<<<<<<<<<<<<
@@ -135452,7 +135091,7 @@ static void __pyx_pf_4lxml_5etree_5XPath_6__dealloc__(struct __pyx_obj_4lxml_5et
   __pyx_t_1 = ((__pyx_v_self->_xpath != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":474
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":473
  *     def __dealloc__(self):
  *         if self._xpath is not NULL:
  *             xpath.xmlXPathFreeCompExpr(self._xpath)             # <<<<<<<<<<<<<<
@@ -135478,7 +135117,7 @@ static PyObject *__pyx_pw_4lxml_5etree_5XPath_9__repr__(PyObject *__pyx_v_self)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":476
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":475
  *             xpath.xmlXPathFreeCompExpr(self._xpath)
  * 
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -135495,7 +135134,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_8__repr__(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":477
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":476
  * 
  *     def __repr__(self):
  *         return self.path             # <<<<<<<<<<<<<<
@@ -135503,7 +135142,7 @@ static PyObject *__pyx_pf_4lxml_5etree_5XPath_8__repr__(struct __pyx_obj_4lxml_5
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 476; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -135538,7 +135177,7 @@ static int __pyx_pw_4lxml_5etree_7ETXPath_1__init__(PyObject *__pyx_v_self, PyOb
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__path,&__pyx_n_s__extensions,&__pyx_n_s__regexp,&__pyx_n_s__smart_strings,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":494
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":493
  *     you pass ``smart_strings=False``.
  *     """
  *     def __init__(self, path, *, extensions=None, regexp=True,             # <<<<<<<<<<<<<<
@@ -135546,8 +135185,8 @@ static int __pyx_pw_4lxml_5etree_7ETXPath_1__init__(PyObject *__pyx_v_self, PyOb
  *         path, namespaces = self._nsextract_path(path)
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_344;
-    values[3] = __pyx_k_345;
+    values[2] = __pyx_k_347;
+    values[3] = __pyx_k_348;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -135570,7 +135209,7 @@ static int __pyx_pw_4lxml_5etree_7ETXPath_1__init__(PyObject *__pyx_v_self, PyOb
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -135584,7 +135223,7 @@ static int __pyx_pw_4lxml_5etree_7ETXPath_1__init__(PyObject *__pyx_v_self, PyOb
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[18]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.ETXPath.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -135610,14 +135249,14 @@ static int __pyx_pf_4lxml_5etree_7ETXPath___init__(struct __pyx_obj_4lxml_5etree
   __Pyx_RefNannySetupContext("__init__", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":496
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":495
  *     def __init__(self, path, *, extensions=None, regexp=True,
  *                  smart_strings=True):
  *         path, namespaces = self._nsextract_path(path)             # <<<<<<<<<<<<<<
  *         XPath.__init__(self, path, namespaces=namespaces,
  *                        extensions=extensions, regexp=regexp,
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_ETXPath *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->_nsextract_path(__pyx_v_self, __pyx_v_path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree_ETXPath *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_vtab)->_nsextract_path(__pyx_v_self, __pyx_v_path); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
     PyObject* sequence = __pyx_t_1;
@@ -135629,7 +135268,7 @@ static int __pyx_pf_4lxml_5etree_7ETXPath___init__(struct __pyx_obj_4lxml_5etree
     if (unlikely(size != 2)) {
       if (size > 2) __Pyx_RaiseTooManyValuesError(2);
       else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #if CYTHON_COMPILING_IN_CPYTHON
     if (likely(PyTuple_CheckExact(sequence))) {
@@ -135642,16 +135281,16 @@ static int __pyx_pf_4lxml_5etree_7ETXPath___init__(struct __pyx_obj_4lxml_5etree
     __Pyx_INCREF(__pyx_t_2);
     __Pyx_INCREF(__pyx_t_3);
     #else
-    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     #endif
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   } else
   {
     Py_ssize_t index = -1;
-    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __pyx_t_5 = Py_TYPE(__pyx_t_4)->tp_iternext;
@@ -135659,7 +135298,7 @@ static int __pyx_pf_4lxml_5etree_7ETXPath___init__(struct __pyx_obj_4lxml_5etree
     __Pyx_GOTREF(__pyx_t_2);
     index = 1; __pyx_t_3 = __pyx_t_5(__pyx_t_4); if (unlikely(!__pyx_t_3)) goto __pyx_L3_unpacking_failed;
     __Pyx_GOTREF(__pyx_t_3);
-    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_5(__pyx_t_4), 2) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = NULL;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     goto __pyx_L4_unpacking_done;
@@ -135667,25 +135306,24 @@ static int __pyx_pf_4lxml_5etree_7ETXPath___init__(struct __pyx_obj_4lxml_5etree
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     __pyx_t_5 = NULL;
     if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_L4_unpacking_done:;
   }
-  __Pyx_DECREF(__pyx_v_path);
-  __pyx_v_path = __pyx_t_2;
+  __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_2);
   __pyx_t_2 = 0;
   __pyx_v_namespaces = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":497
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":496
  *                  smart_strings=True):
  *         path, namespaces = self._nsextract_path(path)
  *         XPath.__init__(self, path, namespaces=namespaces,             # <<<<<<<<<<<<<<
  *                        extensions=extensions, regexp=regexp,
  *                        smart_strings=smart_strings)
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), __pyx_n_s____init__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_self));
@@ -135693,29 +135331,29 @@ static int __pyx_pf_4lxml_5etree_7ETXPath___init__(struct __pyx_obj_4lxml_5etree
   __Pyx_INCREF(__pyx_v_path);
   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_path);
   __Pyx_GIVEREF(__pyx_v_path);
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__namespaces), __pyx_v_namespaces) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":498
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":497
  *         path, namespaces = self._nsextract_path(path)
  *         XPath.__init__(self, path, namespaces=namespaces,
  *                        extensions=extensions, regexp=regexp,             # <<<<<<<<<<<<<<
  *                        smart_strings=smart_strings)
  * 
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__extensions), __pyx_v_extensions) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__regexp), __pyx_v_regexp) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":499
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":498
  *         XPath.__init__(self, path, namespaces=namespaces,
  *                        extensions=extensions, regexp=regexp,
  *                        smart_strings=smart_strings)             # <<<<<<<<<<<<<<
  * 
  *     cdef _nsextract_path(self, path):
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__smart_strings), __pyx_v_smart_strings) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 496; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -135738,7 +135376,7 @@ static int __pyx_pf_4lxml_5etree_7ETXPath___init__(struct __pyx_obj_4lxml_5etree
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":501
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":500
  *                        smart_strings=smart_strings)
  * 
  *     cdef _nsextract_path(self, path):             # <<<<<<<<<<<<<<
@@ -135773,50 +135411,50 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
   __Pyx_RefNannySetupContext("_nsextract_path", 0);
   __Pyx_INCREF(__pyx_v_path);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":503
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":502
  *     cdef _nsextract_path(self, path):
  *         # replace {namespaces} by new prefixes
  *         cdef dict namespaces = {}             # <<<<<<<<<<<<<<
  *         cdef list namespace_defs = []
  *         cdef int i
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 502; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_v_namespaces = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":504
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":503
  *         # replace {namespaces} by new prefixes
  *         cdef dict namespaces = {}
  *         cdef list namespace_defs = []             # <<<<<<<<<<<<<<
  *         cdef int i
  *         path_utf = _utf8(path)
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 504; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 503; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_namespace_defs = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":506
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":505
  *         cdef list namespace_defs = []
  *         cdef int i
  *         path_utf = _utf8(path)             # <<<<<<<<<<<<<<
  *         stripped_path = _replace_strings(b'', path_utf) # remove string literals
  *         i = 1
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_path)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 505; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_path_utf = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":507
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":506
  *         cdef int i
  *         path_utf = _utf8(path)
  *         stripped_path = _replace_strings(b'', path_utf) # remove string literals             # <<<<<<<<<<<<<<
  *         i = 1
  *         for namespace_def in _find_namespaces(stripped_path):
  */
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_25));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_b_25));
@@ -135824,13 +135462,13 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
   __Pyx_INCREF(__pyx_v_path_utf);
   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_path_utf);
   __Pyx_GIVEREF(__pyx_v_path_utf);
-  __pyx_t_2 = PyObject_Call(__pyx_v_4lxml_5etree__replace_strings, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_v_4lxml_5etree__replace_strings, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_v_stripped_path = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":508
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":507
  *         path_utf = _utf8(path)
  *         stripped_path = _replace_strings(b'', path_utf) # remove string literals
  *         i = 1             # <<<<<<<<<<<<<<
@@ -135839,26 +135477,26 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  */
   __pyx_v_i = 1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":509
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":508
  *         stripped_path = _replace_strings(b'', path_utf) # remove string literals
  *         i = 1
  *         for namespace_def in _find_namespaces(stripped_path):             # <<<<<<<<<<<<<<
  *             if namespace_def not in namespace_defs:
  *                 prefix = python.PyBytes_FromFormat("__xpp%02d", i)
  */
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(__pyx_v_stripped_path);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_stripped_path);
   __Pyx_GIVEREF(__pyx_v_stripped_path);
-  __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_5etree__find_namespaces, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_5etree__find_namespaces, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
     __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
     __pyx_t_4 = NULL;
   } else {
-    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext;
   }
@@ -135867,57 +135505,55 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
     if (!__pyx_t_4 && PyList_CheckExact(__pyx_t_2)) {
       if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_4 && PyTuple_CheckExact(__pyx_t_2)) {
       if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_1 = __pyx_t_4(__pyx_t_2);
       if (unlikely(!__pyx_t_1)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[18]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
       __Pyx_GOTREF(__pyx_t_1);
     }
-    __Pyx_XDECREF(__pyx_v_namespace_def);
-    __pyx_v_namespace_def = __pyx_t_1;
+    __Pyx_XDECREF_SET(__pyx_v_namespace_def, __pyx_t_1);
     __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":510
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":509
  *         i = 1
  *         for namespace_def in _find_namespaces(stripped_path):
  *             if namespace_def not in namespace_defs:             # <<<<<<<<<<<<<<
  *                 prefix = python.PyBytes_FromFormat("__xpp%02d", i)
  *                 i += 1
  */
-    __pyx_t_5 = (__Pyx_PySequence_Contains(__pyx_v_namespace_def, ((PyObject *)__pyx_v_namespace_defs), Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = (__Pyx_PySequence_Contains(__pyx_v_namespace_def, ((PyObject *)__pyx_v_namespace_defs), Py_NE)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_6 = (__pyx_t_5 != 0);
     if (__pyx_t_6) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":511
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":510
  *         for namespace_def in _find_namespaces(stripped_path):
  *             if namespace_def not in namespace_defs:
  *                 prefix = python.PyBytes_FromFormat("__xpp%02d", i)             # <<<<<<<<<<<<<<
  *                 i += 1
  *                 namespace_defs.append(namespace_def)
  */
-      __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_346, __pyx_v_i)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = ((PyObject *)PyBytes_FromFormat(__pyx_k_349, __pyx_v_i)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __Pyx_XDECREF(((PyObject *)__pyx_v_prefix));
-      __pyx_v_prefix = ((PyObject*)__pyx_t_1);
+      __Pyx_XDECREF_SET(__pyx_v_prefix, ((PyObject*)__pyx_t_1));
       __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":512
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":511
  *             if namespace_def not in namespace_defs:
  *                 prefix = python.PyBytes_FromFormat("__xpp%02d", i)
  *                 i += 1             # <<<<<<<<<<<<<<
@@ -135926,29 +135562,28 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  */
       __pyx_v_i = (__pyx_v_i + 1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":513
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":512
  *                 prefix = python.PyBytes_FromFormat("__xpp%02d", i)
  *                 i += 1
  *                 namespace_defs.append(namespace_def)             # <<<<<<<<<<<<<<
  *                 namespace = namespace_def[1:-1] # remove '{}'
  *                 namespace = (<bytes>namespace).decode('utf8')
  */
-      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_namespace_defs, __pyx_v_namespace_def); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyList_Append(__pyx_v_namespace_defs, __pyx_v_namespace_def); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":514
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":513
  *                 i += 1
  *                 namespace_defs.append(namespace_def)
  *                 namespace = namespace_def[1:-1] # remove '{}'             # <<<<<<<<<<<<<<
  *                 namespace = (<bytes>namespace).decode('utf8')
  *                 namespaces[prefix.decode('utf8')] = namespace
  */
-      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_namespace_def, 1, -1, NULL, NULL, &__pyx_k_slice_347, 1, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_v_namespace_def, 1, -1, NULL, NULL, &__pyx_k_slice_350, 1, 1, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __Pyx_XDECREF(__pyx_v_namespace);
-      __pyx_v_namespace = __pyx_t_1;
+      __Pyx_XDECREF_SET(__pyx_v_namespace, __pyx_t_1);
       __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":515
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":514
  *                 namespace_defs.append(namespace_def)
  *                 namespace = namespace_def[1:-1] # remove '{}'
  *                 namespace = (<bytes>namespace).decode('utf8')             # <<<<<<<<<<<<<<
@@ -135957,15 +135592,14 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  */
       if (unlikely(__pyx_v_namespace == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-        {__pyx_filename = __pyx_f[18]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[18]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_1 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_namespace)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_namespace)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-      __Pyx_DECREF(__pyx_v_namespace);
-      __pyx_v_namespace = ((PyObject *)__pyx_t_1);
+      __Pyx_DECREF_SET(__pyx_v_namespace, ((PyObject *)__pyx_t_1));
       __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":516
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":515
  *                 namespace = namespace_def[1:-1] # remove '{}'
  *                 namespace = (<bytes>namespace).decode('utf8')
  *                 namespaces[prefix.decode('utf8')] = namespace             # <<<<<<<<<<<<<<
@@ -135974,36 +135608,35 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
  */
       if (unlikely(((PyObject *)__pyx_v_prefix) == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-        {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[18]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_1 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_prefix), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_prefix), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-      if (PyDict_SetItem(((PyObject *)__pyx_v_namespaces), ((PyObject *)__pyx_t_1), __pyx_v_namespace) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (PyDict_SetItem(((PyObject *)__pyx_v_namespaces), ((PyObject *)__pyx_t_1), __pyx_v_namespace) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 515; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":517
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":516
  *                 namespace = (<bytes>namespace).decode('utf8')
  *                 namespaces[prefix.decode('utf8')] = namespace
  *                 prefix_str = prefix + b':'             # <<<<<<<<<<<<<<
  *                 # FIXME: this also replaces {namespaces} within strings!
  *                 path_utf = path_utf.replace(namespace_def, prefix_str)
  */
-      __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_v_prefix), ((PyObject *)__pyx_kp_b_254)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_v_prefix), ((PyObject *)__pyx_kp_b_257)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-      __Pyx_XDECREF(((PyObject *)__pyx_v_prefix_str));
-      __pyx_v_prefix_str = ((PyObject*)__pyx_t_1);
+      __Pyx_XDECREF_SET(__pyx_v_prefix_str, ((PyObject*)__pyx_t_1));
       __pyx_t_1 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":519
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":518
  *                 prefix_str = prefix + b':'
  *                 # FIXME: this also replaces {namespaces} within strings!
  *                 path_utf = path_utf.replace(namespace_def, prefix_str)             # <<<<<<<<<<<<<<
  *         path = path_utf.decode('utf8')
  *         return path, namespaces
  */
-      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_path_utf, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_path_utf, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_INCREF(__pyx_v_namespace_def);
       PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_namespace_def);
@@ -136011,12 +135644,11 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
       __Pyx_INCREF(((PyObject *)__pyx_v_prefix_str));
       PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_prefix_str));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_prefix_str));
-      __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
-      __Pyx_DECREF(__pyx_v_path_utf);
-      __pyx_v_path_utf = __pyx_t_9;
+      __Pyx_DECREF_SET(__pyx_v_path_utf, __pyx_t_9);
       __pyx_t_9 = 0;
       goto __pyx_L5;
     }
@@ -136024,28 +135656,27 @@ static PyObject *__pyx_f_4lxml_5etree_7ETXPath__nsextract_path(CYTHON_UNUSED str
   }
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":520
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":519
  *                 # FIXME: this also replaces {namespaces} within strings!
  *                 path_utf = path_utf.replace(namespace_def, prefix_str)
  *         path = path_utf.decode('utf8')             # <<<<<<<<<<<<<<
  *         return path, namespaces
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_path_utf, __pyx_n_s__decode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_path_utf, __pyx_n_s__decode); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_348), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_351), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __Pyx_DECREF(__pyx_v_path);
-  __pyx_v_path = __pyx_t_9;
+  __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_9);
   __pyx_t_9 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":521
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":520
  *                 path_utf = path_utf.replace(namespace_def, prefix_str)
  *         path = path_utf.decode('utf8')
  *         return path, namespaces             # <<<<<<<<<<<<<<
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_INCREF(__pyx_v_path);
   PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_path);
@@ -136370,7 +136001,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_resolve_from_python(const xmlChar *__p
  *             c_uri += 26
  *         uri = _decodeFilename(c_uri)
  */
-      __pyx_t_4 = ((xmlStrncmp(((unsigned char *)((unsigned char *)__pyx_k_349)), __pyx_v_c_uri, 26) == 0) != 0);
+      __pyx_t_4 = ((xmlStrncmp(((unsigned char *)((unsigned char *)__pyx_k_352)), __pyx_v_c_uri, 26) == 0) != 0);
       if (__pyx_t_4) {
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":90
@@ -136470,7 +136101,7 @@ static xmlDoc *__pyx_f_4lxml_5etree__xslt_resolve_from_python(const xmlChar *__p
  *             elif doc_ref._type == PARSER_DATA_FILENAME:
  *                 c_doc = _parseDocFromFile(doc_ref._filename, context._parser)
  */
-          __pyx_t_10 = __pyx_v_doc_ref->_data_bytes;
+          __pyx_t_10 = ((PyObject *)__pyx_v_doc_ref->_data_bytes);
           __Pyx_INCREF(__pyx_t_10);
           __pyx_t_9 = __pyx_v_doc_ref->_filename;
           __Pyx_INCREF(__pyx_t_9);
@@ -136756,7 +136387,7 @@ static void __pyx_f_4lxml_5etree__xslt_store_resolver_exception(const xmlChar *_
  */
       __pyx_t_4 = __pyx_f_4lxml_5etree__decodeFilename(__pyx_v_c_uri); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_350), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_353), __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 117; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_5));
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __pyx_v_message = ((PyObject*)__pyx_t_5);
@@ -137726,8 +137357,8 @@ static PyObject *__pyx_pw_4lxml_5etree_17XSLTAccessControl_7__repr__(PyObject *_
  *             return None
  * 
  *     def __repr__(self):             # <<<<<<<<<<<<<<
- *         items = self.options.items()
- *         items.sort()
+ *         items = sorted(self.options.items())
+ *         return u"%s(%s)" % (
  */
 
 static PyObject *__pyx_pf_4lxml_5etree_17XSLTAccessControl_6__repr__(struct __pyx_obj_4lxml_5etree_XSLTAccessControl *__pyx_v_self) {
@@ -137750,9 +137381,9 @@ static PyObject *__pyx_pf_4lxml_5etree_17XSLTAccessControl_6__repr__(struct __py
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":249
  * 
  *     def __repr__(self):
- *         items = self.options.items()             # <<<<<<<<<<<<<<
- *         items.sort()
+ *         items = sorted(self.options.items())             # <<<<<<<<<<<<<<
  *         return u"%s(%s)" % (
+ *             python._fqtypename(self).decode('UTF-8').split(u'.')[-1],
  */
   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__options); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
@@ -137762,67 +137393,61 @@ static PyObject *__pyx_pf_4lxml_5etree_17XSLTAccessControl_6__repr__(struct __py
   __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_1);
+  __pyx_t_1 = 0;
+  __pyx_t_1 = PyObject_Call(__pyx_builtin_sorted, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 249; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_v_items = __pyx_t_1;
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":250
  *     def __repr__(self):
- *         items = self.options.items()
- *         items.sort()             # <<<<<<<<<<<<<<
- *         return u"%s(%s)" % (
- *             python._fqtypename(self).decode('UTF-8').split(u'.')[-1],
- */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_items, __pyx_n_s__sort); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":251
- *         items = self.options.items()
- *         items.sort()
+ *         items = sorted(self.options.items())
  *         return u"%s(%s)" % (             # <<<<<<<<<<<<<<
  *             python._fqtypename(self).decode('UTF-8').split(u'.')[-1],
  *             u', '.join([u"%s=%r" % item for item in items]))
  */
   __Pyx_XDECREF(__pyx_r);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":252
- *         items.sort()
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":251
+ *         items = sorted(self.options.items())
  *         return u"%s(%s)" % (
  *             python._fqtypename(self).decode('UTF-8').split(u'.')[-1],             # <<<<<<<<<<<<<<
  *             u', '.join([u"%s=%r" % item for item in items]))
  * 
  */
   __pyx_t_3 = _fqtypename(((PyObject *)__pyx_v_self));
-  __pyx_t_2 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_3, 0, strlen(__pyx_t_3), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  if (unlikely(((PyObject *)__pyx_t_2) == Py_None)) {
+  __pyx_t_1 = ((PyObject *)__Pyx_decode_c_string(__pyx_t_3, 0, strlen(__pyx_t_3), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
+  if (unlikely(((PyObject *)__pyx_t_1) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "split");
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = ((PyObject *)PyUnicode_Split(__pyx_t_2, ((PyObject *)__pyx_kp_u_5), -1)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-  __pyx_t_2 = __Pyx_GetItemInt_List(((PyObject *)__pyx_t_1), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_2) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_2 = ((PyObject *)PyUnicode_Split(__pyx_t_1, ((PyObject *)__pyx_kp_u_5), -1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_GetItemInt_List(((PyObject *)__pyx_t_2), -1, sizeof(long), PyInt_FromLong, 1, 1, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":253
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":252
  *         return u"%s(%s)" % (
  *             python._fqtypename(self).decode('UTF-8').split(u'.')[-1],
  *             u', '.join([u"%s=%r" % item for item in items]))             # <<<<<<<<<<<<<<
  * 
  * ################################################################################
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
   if (PyList_CheckExact(__pyx_v_items) || PyTuple_CheckExact(__pyx_v_items)) {
     __pyx_t_4 = __pyx_v_items; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
     __pyx_t_6 = NULL;
   } else {
-    __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext;
   }
@@ -137830,51 +137455,50 @@ static PyObject *__pyx_pf_4lxml_5etree_17XSLTAccessControl_6__repr__(struct __py
     if (!__pyx_t_6 && PyList_CheckExact(__pyx_t_4)) {
       if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_6 && PyTuple_CheckExact(__pyx_t_4)) {
       if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_7 = __pyx_t_6(__pyx_t_4);
       if (unlikely(!__pyx_t_7)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
       __Pyx_GOTREF(__pyx_t_7);
     }
-    __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_7);
     __pyx_t_7 = 0;
-    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_353), __pyx_v_item); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_356), __pyx_v_item); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-    if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_7))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_7))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
   }
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_352, ((PyObject *)__pyx_t_1))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_355, ((PyObject *)__pyx_t_2))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_1);
-  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
-  __Pyx_GIVEREF(__pyx_t_2);
-  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_4);
+  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
+  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
-  __pyx_t_2 = 0;
+  __pyx_t_1 = 0;
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_351), ((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_354), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_r = ((PyObject *)__pyx_t_4);
   __pyx_t_4 = 0;
   goto __pyx_L0;
@@ -137896,7 +137520,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17XSLTAccessControl_6__repr__(struct __py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":258
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":257
  * # XSLT
  * 
  * cdef int _register_xslt_function(void* ctxt, name_utf, ns_utf):             # <<<<<<<<<<<<<<
@@ -137911,7 +137535,7 @@ static int __pyx_f_4lxml_5etree__register_xslt_function(void *__pyx_v_ctxt, PyOb
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_register_xslt_function", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":259
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":258
  * 
  * cdef int _register_xslt_function(void* ctxt, name_utf, ns_utf):
  *     if ns_utf is None:             # <<<<<<<<<<<<<<
@@ -137922,7 +137546,7 @@ static int __pyx_f_4lxml_5etree__register_xslt_function(void *__pyx_v_ctxt, PyOb
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":260
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":259
  * cdef int _register_xslt_function(void* ctxt, name_utf, ns_utf):
  *     if ns_utf is None:
  *         return 0             # <<<<<<<<<<<<<<
@@ -137935,7 +137559,7 @@ static int __pyx_f_4lxml_5etree__register_xslt_function(void *__pyx_v_ctxt, PyOb
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":264
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":263
  *     return xslt.xsltRegisterExtFunction(
  *         <xslt.xsltTransformContext*>ctxt, _xcstr(name_utf), _xcstr(ns_utf),
  *         <xslt.xmlXPathFunction>_xpath_function_call)             # <<<<<<<<<<<<<<
@@ -137965,7 +137589,7 @@ static int __pyx_pw_4lxml_5etree_12_XSLTContext_1__cinit__(PyObject *__pyx_v_sel
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":274
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":273
  *     cdef _ReadOnlyElementProxy _extension_element_proxy
  *     cdef dict _extension_elements
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -137978,7 +137602,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext___cinit__(struct __pyx_obj_4lxml
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":275
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":274
  *     cdef dict _extension_elements
  *     def __cinit__(self):
  *         self._xsltCtxt = NULL             # <<<<<<<<<<<<<<
@@ -137987,7 +137611,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext___cinit__(struct __pyx_obj_4lxml
  */
   __pyx_v_self->_xsltCtxt = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":276
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":275
  *     def __cinit__(self):
  *         self._xsltCtxt = NULL
  *         self._extension_elements = EMPTY_DICT             # <<<<<<<<<<<<<<
@@ -138042,26 +137666,26 @@ static int __pyx_pw_4lxml_5etree_12_XSLTContext_3__init__(PyObject *__pyx_v_self
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__extensions)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__error_log)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 2); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  3:
         if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__enable_regexp)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 3); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  4:
         if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__build_smart_strings)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, 4); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
       goto __pyx_L5_argtuple_error;
@@ -138080,7 +137704,7 @@ static int __pyx_pw_4lxml_5etree_12_XSLTContext_3__init__(PyObject *__pyx_v_self
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._XSLTContext.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -138091,7 +137715,7 @@ static int __pyx_pw_4lxml_5etree_12_XSLTContext_3__init__(PyObject *__pyx_v_self
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":278
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":277
  *         self._extension_elements = EMPTY_DICT
  * 
  *     def __init__(self, namespaces, extensions, error_log, enable_regexp,             # <<<<<<<<<<<<<<
@@ -138123,7 +137747,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
   __Pyx_RefNannySetupContext("__init__", 0);
   __Pyx_INCREF(__pyx_v_extensions);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":280
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":279
  *     def __init__(self, namespaces, extensions, error_log, enable_regexp,
  *                  build_smart_strings):
  *         if extensions is not None and extensions:             # <<<<<<<<<<<<<<
@@ -138132,30 +137756,30 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
  */
   __pyx_t_1 = (__pyx_v_extensions != Py_None);
   if (__pyx_t_1) {
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extensions); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_extensions); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 279; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = __pyx_t_2;
   } else {
     __pyx_t_3 = __pyx_t_1;
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":281
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":280
  *                  build_smart_strings):
  *         if extensions is not None and extensions:
  *             for ns_name_tuple, extension in extensions.items():             # <<<<<<<<<<<<<<
  *                 if ns_name_tuple[0] is None:
  *                     raise XSLTExtensionError, \
  */
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_extensions, __pyx_n_s__items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_extensions, __pyx_n_s__items); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     if (PyList_CheckExact(__pyx_t_5) || PyTuple_CheckExact(__pyx_t_5)) {
       __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
       __pyx_t_7 = NULL;
     } else {
-      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext;
     }
@@ -138164,23 +137788,23 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
       if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_4)) {
         if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
       } else {
         __pyx_t_5 = __pyx_t_7(__pyx_t_4);
         if (unlikely(!__pyx_t_5)) {
           if (PyErr_Occurred()) {
             if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-            else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            else {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           break;
         }
@@ -138196,7 +137820,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -138209,16 +137833,16 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
         __Pyx_INCREF(__pyx_t_8);
         __Pyx_INCREF(__pyx_t_9);
         #else
-        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
-        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
         #endif
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
@@ -138226,7 +137850,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
         __Pyx_GOTREF(__pyx_t_8);
         index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L6_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_9);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_11 = NULL;
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         goto __pyx_L7_unpacking_done;
@@ -138234,47 +137858,45 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
         __pyx_t_11 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L7_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_ns_name_tuple);
-      __pyx_v_ns_name_tuple = __pyx_t_8;
+      __Pyx_XDECREF_SET(__pyx_v_ns_name_tuple, __pyx_t_8);
       __pyx_t_8 = 0;
-      __Pyx_XDECREF(__pyx_v_extension);
-      __pyx_v_extension = __pyx_t_9;
+      __Pyx_XDECREF_SET(__pyx_v_extension, __pyx_t_9);
       __pyx_t_9 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":282
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":281
  *         if extensions is not None and extensions:
  *             for ns_name_tuple, extension in extensions.items():
  *                 if ns_name_tuple[0] is None:             # <<<<<<<<<<<<<<
  *                     raise XSLTExtensionError, \
  *                         u"extensions must not have empty namespaces"
  */
-      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_t_3 = (__pyx_t_5 == Py_None);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_t_1 = (__pyx_t_3 != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":283
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":282
  *             for ns_name_tuple, extension in extensions.items():
  *                 if ns_name_tuple[0] is None:
  *                     raise XSLTExtensionError, \             # <<<<<<<<<<<<<<
  *                         u"extensions must not have empty namespaces"
  *                 if isinstance(extension, XSLTExtension):
  */
-        __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTExtensionError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTExtensionError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
-        __Pyx_Raise(__pyx_t_5, ((PyObject *)__pyx_kp_u_354), 0, 0);
+        __Pyx_Raise(__pyx_t_5, ((PyObject *)__pyx_kp_u_357), 0, 0);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 282; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L8;
       }
       __pyx_L8:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":285
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":284
  *                     raise XSLTExtensionError, \
  *                         u"extensions must not have empty namespaces"
  *                 if isinstance(extension, XSLTExtension):             # <<<<<<<<<<<<<<
@@ -138285,7 +137907,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
       __pyx_t_3 = (__pyx_t_1 != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":286
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":285
  *                         u"extensions must not have empty namespaces"
  *                 if isinstance(extension, XSLTExtension):
  *                     if self._extension_elements is EMPTY_DICT:             # <<<<<<<<<<<<<<
@@ -138296,14 +137918,14 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
         __pyx_t_1 = (__pyx_t_3 != 0);
         if (__pyx_t_1) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":287
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":286
  *                 if isinstance(extension, XSLTExtension):
  *                     if self._extension_elements is EMPTY_DICT:
  *                         self._extension_elements = {}             # <<<<<<<<<<<<<<
  *                         extensions = extensions.copy()
  *                     ns_utf   = _utf8(ns_name_tuple[0])
  */
-          __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_5 = PyDict_New(); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(((PyObject *)__pyx_t_5));
           __Pyx_GIVEREF(((PyObject *)__pyx_t_5));
           __Pyx_GOTREF(__pyx_v_self->_extension_elements);
@@ -138311,58 +137933,55 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
           __pyx_v_self->_extension_elements = ((PyObject*)__pyx_t_5);
           __pyx_t_5 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":288
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":287
  *                     if self._extension_elements is EMPTY_DICT:
  *                         self._extension_elements = {}
  *                         extensions = extensions.copy()             # <<<<<<<<<<<<<<
  *                     ns_utf   = _utf8(ns_name_tuple[0])
  *                     name_utf = _utf8(ns_name_tuple[1])
  */
-          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_extensions, __pyx_n_s__copy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_extensions, __pyx_n_s__copy); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          __pyx_t_9 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_9 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_9);
           __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-          __Pyx_DECREF(__pyx_v_extensions);
-          __pyx_v_extensions = __pyx_t_9;
+          __Pyx_DECREF_SET(__pyx_v_extensions, __pyx_t_9);
           __pyx_t_9 = 0;
           goto __pyx_L10;
         }
         __pyx_L10:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":289
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":288
  *                         self._extension_elements = {}
  *                         extensions = extensions.copy()
  *                     ns_utf   = _utf8(ns_name_tuple[0])             # <<<<<<<<<<<<<<
  *                     name_utf = _utf8(ns_name_tuple[1])
  *                     self._extension_elements[(ns_utf, name_utf)] = extension
  */
-        __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_9) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_9) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
-        __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
-        __Pyx_XDECREF(((PyObject *)__pyx_v_ns_utf));
-        __pyx_v_ns_utf = ((PyObject*)__pyx_t_5);
+        __Pyx_XDECREF_SET(__pyx_v_ns_utf, ((PyObject*)__pyx_t_5));
         __pyx_t_5 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":290
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":289
  *                         extensions = extensions.copy()
  *                     ns_utf   = _utf8(ns_name_tuple[0])
  *                     name_utf = _utf8(ns_name_tuple[1])             # <<<<<<<<<<<<<<
  *                     self._extension_elements[(ns_utf, name_utf)] = extension
  *                     del extensions[ns_name_tuple]
  */
-        __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_ns_name_tuple, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
-        __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_5)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_t_5)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        __Pyx_XDECREF(((PyObject *)__pyx_v_name_utf));
-        __pyx_v_name_utf = ((PyObject*)__pyx_t_9);
+        __Pyx_XDECREF_SET(__pyx_v_name_utf, ((PyObject*)__pyx_t_9));
         __pyx_t_9 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":291
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":290
  *                     ns_utf   = _utf8(ns_name_tuple[0])
  *                     name_utf = _utf8(ns_name_tuple[1])
  *                     self._extension_elements[(ns_utf, name_utf)] = extension             # <<<<<<<<<<<<<<
@@ -138371,9 +137990,9 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
  */
         if (unlikely(((PyObject *)__pyx_v_self->_extension_elements) == Py_None)) {
           PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-          {__pyx_filename = __pyx_f[2]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[2]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
-        __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_9);
         __Pyx_INCREF(((PyObject *)__pyx_v_ns_utf));
         PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_ns_utf));
@@ -138381,18 +138000,18 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
         __Pyx_INCREF(((PyObject *)__pyx_v_name_utf));
         PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_name_utf));
         __Pyx_GIVEREF(((PyObject *)__pyx_v_name_utf));
-        if (PyDict_SetItem(((PyObject *)__pyx_v_self->_extension_elements), ((PyObject *)__pyx_t_9), __pyx_v_extension) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (PyDict_SetItem(((PyObject *)__pyx_v_self->_extension_elements), ((PyObject *)__pyx_t_9), __pyx_v_extension) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":292
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":291
  *                     name_utf = _utf8(ns_name_tuple[1])
  *                     self._extension_elements[(ns_utf, name_utf)] = extension
  *                     del extensions[ns_name_tuple]             # <<<<<<<<<<<<<<
  *         _BaseContext.__init__(self, namespaces, extensions, error_log, enable_regexp,
  *                               build_smart_strings)
  */
-        if (unlikely(!__pyx_v_ns_name_tuple)) { __Pyx_RaiseUnboundLocalError("ns_name_tuple"); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
-        if (PyObject_DelItem(__pyx_v_extensions, __pyx_v_ns_name_tuple) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (unlikely(!__pyx_v_ns_name_tuple)) { __Pyx_RaiseUnboundLocalError("ns_name_tuple"); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
+        if (PyObject_DelItem(__pyx_v_extensions, __pyx_v_ns_name_tuple) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L9;
       }
       __pyx_L9:;
@@ -138402,24 +138021,24 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":293
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":292
  *                     self._extension_elements[(ns_utf, name_utf)] = extension
  *                     del extensions[ns_name_tuple]
  *         _BaseContext.__init__(self, namespaces, extensions, error_log, enable_regexp,             # <<<<<<<<<<<<<<
  *                               build_smart_strings)
  * 
  */
-  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseContext)), __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__BaseContext)), __pyx_n_s____init__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":294
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":293
  *                     del extensions[ns_name_tuple]
  *         _BaseContext.__init__(self, namespaces, extensions, error_log, enable_regexp,
  *                               build_smart_strings)             # <<<<<<<<<<<<<<
  * 
  *     cdef _BaseContext _copy(self):
  */
-  __pyx_t_9 = PyTuple_New(6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = PyTuple_New(6); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_INCREF(((PyObject *)__pyx_v_self));
   PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_self));
@@ -138439,7 +138058,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
   __Pyx_INCREF(__pyx_v_build_smart_strings);
   PyTuple_SET_ITEM(__pyx_t_9, 5, __pyx_v_build_smart_strings);
   __Pyx_GIVEREF(__pyx_v_build_smart_strings);
-  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 292; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
@@ -138465,7 +138084,7 @@ static int __pyx_pf_4lxml_5etree_12_XSLTContext_2__init__(struct __pyx_obj_4lxml
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":296
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":295
  *                               build_smart_strings)
  * 
  *     cdef _BaseContext _copy(self):             # <<<<<<<<<<<<<<
@@ -138484,14 +138103,14 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_XSLTC
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_copy", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":298
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":297
  *     cdef _BaseContext _copy(self):
  *         cdef _XSLTContext context
  *         context = <_XSLTContext>_BaseContext._copy(self)             # <<<<<<<<<<<<<<
  *         context._extension_elements = self._extension_elements
  *         return context
  */
-  __pyx_t_1 = ((PyObject *)__pyx_vtabptr_4lxml_5etree__BaseContext->_copy(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_vtabptr_4lxml_5etree__BaseContext->_copy(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = __pyx_t_1;
   __Pyx_INCREF(__pyx_t_2);
@@ -138499,7 +138118,7 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_XSLTC
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":299
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":298
  *         cdef _XSLTContext context
  *         context = <_XSLTContext>_BaseContext._copy(self)
  *         context._extension_elements = self._extension_elements             # <<<<<<<<<<<<<<
@@ -138514,7 +138133,7 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_XSLTC
   __pyx_v_context->_extension_elements = ((PyObject*)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":300
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":299
  *         context = <_XSLTContext>_BaseContext._copy(self)
  *         context._extension_elements = self._extension_elements
  *         return context             # <<<<<<<<<<<<<<
@@ -138540,7 +138159,7 @@ static struct __pyx_obj_4lxml_5etree__BaseContext *__pyx_f_4lxml_5etree_12_XSLTC
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":302
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":301
  *         return context
  * 
  *     cdef register_context(self, xslt.xsltTransformContext* xsltCtxt,             # <<<<<<<<<<<<<<
@@ -138558,7 +138177,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_register_context(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("register_context", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":304
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":303
  *     cdef register_context(self, xslt.xsltTransformContext* xsltCtxt,
  *                                _Document doc):
  *         self._xsltCtxt = xsltCtxt             # <<<<<<<<<<<<<<
@@ -138567,7 +138186,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_register_context(struct __p
  */
   __pyx_v_self->_xsltCtxt = __pyx_v_xsltCtxt;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":305
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":304
  *                                _Document doc):
  *         self._xsltCtxt = xsltCtxt
  *         self._set_xpath_context(xsltCtxt.xpathCtxt)             # <<<<<<<<<<<<<<
@@ -138576,40 +138195,40 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_register_context(struct __p
  */
   ((struct __pyx_vtabstruct_4lxml_5etree__XSLTContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base._set_xpath_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_xsltCtxt->xpathCtxt);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":306
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":305
  *         self._xsltCtxt = xsltCtxt
  *         self._set_xpath_context(xsltCtxt.xpathCtxt)
  *         self._register_context(doc)             # <<<<<<<<<<<<<<
  *         self.registerLocalFunctions(xsltCtxt, _register_xslt_function)
  *         self.registerGlobalFunctions(xsltCtxt, _register_xslt_function)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__register_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__register_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":307
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":306
  *         self._set_xpath_context(xsltCtxt.xpathCtxt)
  *         self._register_context(doc)
  *         self.registerLocalFunctions(xsltCtxt, _register_xslt_function)             # <<<<<<<<<<<<<<
  *         self.registerGlobalFunctions(xsltCtxt, _register_xslt_function)
  *         _registerXSLTExtensions(xsltCtxt, self._extension_elements)
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerLocalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_xsltCtxt, __pyx_f_4lxml_5etree__register_xslt_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerLocalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_xsltCtxt, __pyx_f_4lxml_5etree__register_xslt_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":308
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":307
  *         self._register_context(doc)
  *         self.registerLocalFunctions(xsltCtxt, _register_xslt_function)
  *         self.registerGlobalFunctions(xsltCtxt, _register_xslt_function)             # <<<<<<<<<<<<<<
  *         _registerXSLTExtensions(xsltCtxt, self._extension_elements)
  * 
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerGlobalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_xsltCtxt, __pyx_f_4lxml_5etree__register_xslt_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTContext *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.registerGlobalFunctions(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self), __pyx_v_xsltCtxt, __pyx_f_4lxml_5etree__register_xslt_function); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":309
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":308
  *         self.registerLocalFunctions(xsltCtxt, _register_xslt_function)
  *         self.registerGlobalFunctions(xsltCtxt, _register_xslt_function)
  *         _registerXSLTExtensions(xsltCtxt, self._extension_elements)             # <<<<<<<<<<<<<<
@@ -138618,7 +138237,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_register_context(struct __p
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_extension_elements);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = __pyx_f_4lxml_5etree__registerXSLTExtensions(__pyx_v_xsltCtxt, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__registerXSLTExtensions(__pyx_v_xsltCtxt, __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
@@ -138636,7 +138255,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_register_context(struct __p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":311
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":310
  *         _registerXSLTExtensions(xsltCtxt, self._extension_elements)
  * 
  *     cdef free_context(self):             # <<<<<<<<<<<<<<
@@ -138654,29 +138273,29 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_free_context(struct __pyx_o
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("free_context", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":312
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":311
  * 
  *     cdef free_context(self):
  *         self._cleanup_context()             # <<<<<<<<<<<<<<
  *         self._release_context()
  *         if self._xsltCtxt is not NULL:
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__cleanup_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":313
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":312
  *     cdef free_context(self):
  *         self._cleanup_context()
  *         self._release_context()             # <<<<<<<<<<<<<<
  *         if self._xsltCtxt is not NULL:
  *             xslt.xsltFreeTransformContext(self._xsltCtxt)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__release_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__release_context(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":314
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":313
  *         self._cleanup_context()
  *         self._release_context()
  *         if self._xsltCtxt is not NULL:             # <<<<<<<<<<<<<<
@@ -138686,7 +138305,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_free_context(struct __pyx_o
   __pyx_t_2 = ((__pyx_v_self->_xsltCtxt != NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":315
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":314
  *         self._release_context()
  *         if self._xsltCtxt is not NULL:
  *             xslt.xsltFreeTransformContext(self._xsltCtxt)             # <<<<<<<<<<<<<<
@@ -138695,7 +138314,7 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_free_context(struct __pyx_o
  */
     xsltFreeTransformContext(__pyx_v_self->_xsltCtxt);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":316
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":315
  *         if self._xsltCtxt is not NULL:
  *             xslt.xsltFreeTransformContext(self._xsltCtxt)
  *             self._xsltCtxt = NULL             # <<<<<<<<<<<<<<
@@ -138707,14 +138326,14 @@ static PyObject *__pyx_f_4lxml_5etree_12_XSLTContext_free_context(struct __pyx_o
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":317
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":316
  *             xslt.xsltFreeTransformContext(self._xsltCtxt)
  *             self._xsltCtxt = NULL
  *         self._release_temp_refs()             # <<<<<<<<<<<<<<
  * 
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__release_temp_refs(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_12_BaseContext__release_temp_refs(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -138758,7 +138377,7 @@ static int __pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(PyObject *_
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__cinit__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -138769,7 +138388,7 @@ static int __pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(PyObject *_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__cinit__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._XSLTQuotedStringParam.__cinit__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -138780,7 +138399,7 @@ static int __pyx_pw_4lxml_5etree_22_XSLTQuotedStringParam_1__cinit__(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":327
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":326
  *     """
  *     cdef bytes strval
  *     def __cinit__(self, strval):             # <<<<<<<<<<<<<<
@@ -138797,14 +138416,14 @@ static int __pyx_pf_4lxml_5etree_22_XSLTQuotedStringParam___cinit__(struct __pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":328
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":327
  *     cdef bytes strval
  *     def __cinit__(self, strval):
  *         self.strval = _utf8(strval)             # <<<<<<<<<<<<<<
  * 
  * 
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_strval)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_strval)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->strval);
@@ -138837,7 +138456,7 @@ static int __pyx_pw_4lxml_5etree_4XSLT_1__cinit__(PyObject *__pyx_v_self, PyObje
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":363
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":362
  *     cdef _ErrorLog _error_log
  * 
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -138850,7 +138469,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT___cinit__(struct __pyx_obj_4lxml_5etree_X
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":364
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":363
  * 
  *     def __cinit__(self):
  *         self._c_style = NULL             # <<<<<<<<<<<<<<
@@ -138881,7 +138500,7 @@ static int __pyx_pw_4lxml_5etree_4XSLT_3__init__(PyObject *__pyx_v_self, PyObjec
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xslt_input,&__pyx_n_s__extensions,&__pyx_n_s__regexp,&__pyx_n_s__access_control,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":366
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":365
  *         self._c_style = NULL
  * 
  *     def __init__(self, xslt_input, *, extensions=None, regexp=True,             # <<<<<<<<<<<<<<
@@ -138889,9 +138508,9 @@ static int __pyx_pw_4lxml_5etree_4XSLT_3__init__(PyObject *__pyx_v_self, PyObjec
  *         cdef xslt.xsltStylesheet* c_style
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_355;
+    values[2] = __pyx_k_358;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":367
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":366
  * 
  *     def __init__(self, xslt_input, *, extensions=None, regexp=True,
  *                  access_control=None):             # <<<<<<<<<<<<<<
@@ -138921,7 +138540,7 @@ static int __pyx_pw_4lxml_5etree_4XSLT_3__init__(PyObject *__pyx_v_self, PyObjec
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -138935,7 +138554,7 @@ static int __pyx_pw_4lxml_5etree_4XSLT_3__init__(PyObject *__pyx_v_self, PyObjec
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XSLT.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -138946,7 +138565,7 @@ static int __pyx_pw_4lxml_5etree_4XSLT_3__init__(PyObject *__pyx_v_self, PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":366
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":365
  *         self._c_style = NULL
  * 
  *     def __init__(self, xslt_input, *, extensions=None, regexp=True,             # <<<<<<<<<<<<<<
@@ -138981,55 +138600,55 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__init__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":373
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":372
  *         cdef _Element root_node
  * 
  *         doc = _documentOrRaise(xslt_input)             # <<<<<<<<<<<<<<
  *         root_node = _rootNodeOrRaise(xslt_input)
  * 
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v_xslt_input)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v_xslt_input)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":374
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":373
  * 
  *         doc = _documentOrRaise(xslt_input)
  *         root_node = _rootNodeOrRaise(xslt_input)             # <<<<<<<<<<<<<<
  * 
  *         # set access control or raise TypeError
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__rootNodeOrRaise(__pyx_v_xslt_input)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 374; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__rootNodeOrRaise(__pyx_v_xslt_input)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_root_node = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":377
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":376
  * 
  *         # set access control or raise TypeError
  *         self._access_control = access_control             # <<<<<<<<<<<<<<
  * 
  *         # make a copy of the document as stylesheet parsing modifies it
  */
-  if (!(likely(((__pyx_v_access_control) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_access_control, __pyx_ptype_4lxml_5etree_XSLTAccessControl))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 377; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_v_access_control) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_access_control, __pyx_ptype_4lxml_5etree_XSLTAccessControl))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_INCREF(__pyx_v_access_control);
   __Pyx_GIVEREF(__pyx_v_access_control);
   __Pyx_GOTREF(__pyx_v_self->_access_control);
   __Pyx_DECREF(((PyObject *)__pyx_v_self->_access_control));
   __pyx_v_self->_access_control = ((struct __pyx_obj_4lxml_5etree_XSLTAccessControl *)__pyx_v_access_control);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":380
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":379
  * 
  *         # make a copy of the document as stylesheet parsing modifies it
  *         c_doc = _copyDocRoot(doc._c_doc, root_node._c_node)             # <<<<<<<<<<<<<<
  * 
  *         # make sure we always have a stylesheet URL
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDocRoot(__pyx_v_doc->_c_doc, __pyx_v_root_node->_c_node); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDocRoot(__pyx_v_doc->_c_doc, __pyx_v_root_node->_c_node); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":383
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":382
  * 
  *         # make sure we always have a stylesheet URL
  *         if c_doc.URL is NULL:             # <<<<<<<<<<<<<<
@@ -139039,31 +138658,31 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
   __pyx_t_3 = ((__pyx_v_c_doc->URL == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":385
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":384
  *         if c_doc.URL is NULL:
  *             doc_url_utf = python.PyUnicode_AsASCIIString(
  *                 u"string://__STRING__XSLT__/%d.xslt" % id(self))             # <<<<<<<<<<<<<<
  *             c_doc.URL = tree.xmlStrdup(_xcstr(doc_url_utf))
  * 
  */
-    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(((PyObject *)__pyx_v_self));
     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-    __pyx_t_4 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_356), __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_359), __pyx_t_4); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __pyx_t_4 = ((PyObject *)PyUnicode_AsASCIIString(((PyObject *)__pyx_t_1))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = ((PyObject *)PyUnicode_AsASCIIString(((PyObject *)__pyx_t_1))); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
     __pyx_v_doc_url_utf = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":386
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":385
  *             doc_url_utf = python.PyUnicode_AsASCIIString(
  *                 u"string://__STRING__XSLT__/%d.xslt" % id(self))
  *             c_doc.URL = tree.xmlStrdup(_xcstr(doc_url_utf))             # <<<<<<<<<<<<<<
@@ -139075,14 +138694,14 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":388
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":387
  *             c_doc.URL = tree.xmlStrdup(_xcstr(doc_url_utf))
  * 
  *         self._error_log = _ErrorLog()             # <<<<<<<<<<<<<<
  *         self._xslt_resolver_context = _XSLTResolverContext()
  *         _initXSLTResolverContext(self._xslt_resolver_context, doc._parser)
  */
-  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
   __Pyx_GOTREF(__pyx_v_self->_error_log);
@@ -139090,14 +138709,14 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
   __pyx_v_self->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":389
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":388
  * 
  *         self._error_log = _ErrorLog()
  *         self._xslt_resolver_context = _XSLTResolverContext()             # <<<<<<<<<<<<<<
  *         _initXSLTResolverContext(self._xslt_resolver_context, doc._parser)
  *         # keep a copy in case we need to access the stylesheet via 'document()'
  */
-  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XSLTResolverContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XSLTResolverContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 388; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
   __Pyx_GOTREF(__pyx_v_self->_xslt_resolver_context);
@@ -139105,7 +138724,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
   __pyx_v_self->_xslt_resolver_context = ((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)__pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":390
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":389
  *         self._error_log = _ErrorLog()
  *         self._xslt_resolver_context = _XSLTResolverContext()
  *         _initXSLTResolverContext(self._xslt_resolver_context, doc._parser)             # <<<<<<<<<<<<<<
@@ -139116,23 +138735,23 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
   __Pyx_INCREF(__pyx_t_4);
   __pyx_t_1 = ((PyObject *)__pyx_v_doc->_parser);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_5 = __pyx_f_4lxml_5etree__initXSLTResolverContext(((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)__pyx_t_4), ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __pyx_f_4lxml_5etree__initXSLTResolverContext(((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)__pyx_t_4), ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":392
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":391
  *         _initXSLTResolverContext(self._xslt_resolver_context, doc._parser)
  *         # keep a copy in case we need to access the stylesheet via 'document()'
  *         self._xslt_resolver_context._c_style_doc = _copyDoc(c_doc, 1)             # <<<<<<<<<<<<<<
  *         c_doc._private = <python.PyObject*>self._xslt_resolver_context
  * 
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDoc(__pyx_v_c_doc, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDoc(__pyx_v_c_doc, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_self->_xslt_resolver_context->_c_style_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":393
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":392
  *         # keep a copy in case we need to access the stylesheet via 'document()'
  *         self._xslt_resolver_context._c_style_doc = _copyDoc(c_doc, 1)
  *         c_doc._private = <python.PyObject*>self._xslt_resolver_context             # <<<<<<<<<<<<<<
@@ -139141,7 +138760,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  */
   __pyx_v_c_doc->_private = ((PyObject *)__pyx_v_self->_xslt_resolver_context);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":395
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":394
  *         c_doc._private = <python.PyObject*>self._xslt_resolver_context
  * 
  *         with self._error_log:             # <<<<<<<<<<<<<<
@@ -139149,9 +138768,9 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  * 
  */
   /*with:*/ {
-    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self->_error_log), __pyx_n_s____exit__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_7 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->_error_log); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+    __pyx_t_7 = __pyx_f_4lxml_5etree_9_ErrorLog___enter__(__pyx_v_self->_error_log); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
     /*try:*/ {
       {
         __Pyx_ExceptionSave(&__pyx_t_8, &__pyx_t_9, &__pyx_t_10);
@@ -139160,7 +138779,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
         __Pyx_XGOTREF(__pyx_t_10);
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":396
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":395
  * 
  *         with self._error_log:
  *             c_style = xslt.xsltParseStylesheetDoc(c_doc)             # <<<<<<<<<<<<<<
@@ -139177,7 +138796,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
         __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
         __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":395
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":394
  *         c_doc._private = <python.PyObject*>self._xslt_resolver_context
  * 
  *         with self._error_log:             # <<<<<<<<<<<<<<
@@ -139186,11 +138805,11 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  */
         /*except:*/ {
           __Pyx_AddTraceback("lxml.etree.XSLT.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
-          if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
+          if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_1, &__pyx_t_4) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
           __Pyx_GOTREF(__pyx_t_5);
           __Pyx_GOTREF(__pyx_t_1);
           __Pyx_GOTREF(__pyx_t_4);
-          __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
+          __pyx_t_11 = PyTuple_New(3); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
           __Pyx_GOTREF(__pyx_t_11);
           __Pyx_INCREF(__pyx_t_5);
           PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5);
@@ -139203,11 +138822,11 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
           __Pyx_GIVEREF(__pyx_t_4);
           __pyx_t_12 = PyObject_Call(__pyx_t_6, __pyx_t_11, NULL);
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-          if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
+          if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
           __Pyx_GOTREF(__pyx_t_12);
           __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_12);
           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
-          if (__pyx_t_3 < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
+          if (__pyx_t_3 < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
           __pyx_t_13 = ((!(__pyx_t_3 != 0)) != 0);
           if (__pyx_t_13) {
             __Pyx_GIVEREF(__pyx_t_5);
@@ -139215,7 +138834,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
             __Pyx_GIVEREF(__pyx_t_4);
             __Pyx_ErrRestore(__pyx_t_5, __pyx_t_1, __pyx_t_4);
             __pyx_t_5 = 0; __pyx_t_1 = 0; __pyx_t_4 = 0; 
-            {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
+            {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L10_except_error;}
             goto __pyx_L18;
           }
           __pyx_L18:;
@@ -139241,13 +138860,13 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     }
     /*finally:*/ {
       if (__pyx_t_6) {
-        __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_357, NULL);
+        __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_360, NULL);
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-        if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_10);
         __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_10);
         __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
-        if (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__pyx_t_13 < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
     }
     goto __pyx_L19;
@@ -139257,7 +138876,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     __pyx_L19:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":398
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":397
  *             c_style = xslt.xsltParseStylesheetDoc(c_doc)
  * 
  *         if c_style is NULL or c_style.errors:             # <<<<<<<<<<<<<<
@@ -139272,7 +138891,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":399
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":398
  * 
  *         if c_style is NULL or c_style.errors:
  *             tree.xmlFreeDoc(c_doc)             # <<<<<<<<<<<<<<
@@ -139281,7 +138900,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  */
     xmlFreeDoc(__pyx_v_c_doc);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":400
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":399
  *         if c_style is NULL or c_style.errors:
  *             tree.xmlFreeDoc(c_doc)
  *             if c_style is not NULL:             # <<<<<<<<<<<<<<
@@ -139291,7 +138910,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     __pyx_t_3 = ((__pyx_v_c_style != NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":401
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":400
  *             tree.xmlFreeDoc(c_doc)
  *             if c_style is not NULL:
  *                 xslt.xsltFreeStylesheet(c_style)             # <<<<<<<<<<<<<<
@@ -139303,16 +138922,16 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     }
     __pyx_L21:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":402
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":401
  *             if c_style is not NULL:
  *                 xslt.xsltFreeStylesheet(c_style)
  *             self._xslt_resolver_context._raise_if_stored()             # <<<<<<<<<<<<<<
  *             # last error seems to be the most accurate here
  *             if self._error_log.last_error is not None and \
  */
-    __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext *)__pyx_v_self->_xslt_resolver_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._raise_if_stored(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_self->_xslt_resolver_context)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 402; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext *)__pyx_v_self->_xslt_resolver_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._raise_if_stored(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_self->_xslt_resolver_context)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":404
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":403
  *             self._xslt_resolver_context._raise_if_stored()
  *             # last error seems to be the most accurate here
  *             if self._error_log.last_error is not None and \             # <<<<<<<<<<<<<<
@@ -139322,16 +138941,16 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     __pyx_t_3 = (__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error != Py_None);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":405
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":404
  *             # last error seems to be the most accurate here
  *             if self._error_log.last_error is not None and \
  *                     self._error_log.last_error.message:             # <<<<<<<<<<<<<<
  *                 raise XSLTParseError(self._error_log.last_error.message,
  *                                      self._error_log)
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error, __pyx_n_s__message); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error, __pyx_n_s__message); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_13 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __pyx_t_14 = __pyx_t_13;
     } else {
@@ -139339,26 +138958,26 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
     }
     if (__pyx_t_14) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":406
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":405
  *             if self._error_log.last_error is not None and \
  *                     self._error_log.last_error.message:
  *                 raise XSLTParseError(self._error_log.last_error.message,             # <<<<<<<<<<<<<<
  *                                      self._error_log)
  *             else:
  */
-      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error, __pyx_n_s__message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_error_log->__pyx_base.__pyx_base.last_error, __pyx_n_s__message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":407
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":406
  *                     self._error_log.last_error.message:
  *                 raise XSLTParseError(self._error_log.last_error.message,
  *                                      self._error_log)             # <<<<<<<<<<<<<<
  *             else:
  *                 raise XSLTParseError(
  */
-      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
       __Pyx_GIVEREF(__pyx_t_1);
@@ -139366,45 +138985,45 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
       PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_self->_error_log));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
       __pyx_t_1 = 0;
-      __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       __Pyx_Raise(__pyx_t_1, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 406; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L22;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":409
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":408
  *                                      self._error_log)
  *             else:
  *                 raise XSLTParseError(             # <<<<<<<<<<<<<<
  *                     self._error_log._buildExceptionMessage(
  *                         u"Cannot parse stylesheet"),
  */
-      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":410
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":409
  *             else:
  *                 raise XSLTParseError(
  *                     self._error_log._buildExceptionMessage(             # <<<<<<<<<<<<<<
  *                         u"Cannot parse stylesheet"),
  *                     self._error_log)
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_358)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_361)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":412
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":411
  *                     self._error_log._buildExceptionMessage(
  *                         u"Cannot parse stylesheet"),
  *                     self._error_log)             # <<<<<<<<<<<<<<
  * 
  *         c_doc._private = NULL # no longer used!
  */
-      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
       __Pyx_GIVEREF(__pyx_t_5);
@@ -139412,20 +139031,20 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
       PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self->_error_log));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
       __pyx_t_5 = 0;
-      __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __Pyx_Raise(__pyx_t_5, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_L22:;
     goto __pyx_L20;
   }
   __pyx_L20:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":414
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":413
  *                     self._error_log)
  * 
  *         c_doc._private = NULL # no longer used!             # <<<<<<<<<<<<<<
@@ -139434,7 +139053,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  */
   __pyx_v_c_doc->_private = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":415
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":414
  * 
  *         c_doc._private = NULL # no longer used!
  *         self._c_style = c_style             # <<<<<<<<<<<<<<
@@ -139443,16 +139062,16 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
  */
   __pyx_v_self->_c_style = __pyx_v_c_style;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":416
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":415
  *         c_doc._private = NULL # no longer used!
  *         self._c_style = c_style
  *         self._context = _XSLTContext(None, extensions, self._error_log, regexp, True)             # <<<<<<<<<<<<<<
  * 
  *     def __dealloc__(self):
  */
-  __pyx_t_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(Py_None);
   PyTuple_SET_ITEM(__pyx_t_4, 0, Py_None);
@@ -139469,7 +139088,7 @@ static int __pyx_pf_4lxml_5etree_4XSLT_2__init__(struct __pyx_obj_4lxml_5etree_X
   PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_5);
   __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XSLTContext)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 416; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XSLTContext)), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 415; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_GIVEREF(__pyx_t_5);
@@ -139504,7 +139123,7 @@ static void __pyx_pw_4lxml_5etree_4XSLT_5__dealloc__(PyObject *__pyx_v_self) {
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":418
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":417
  *         self._context = _XSLTContext(None, extensions, self._error_log, regexp, True)
  * 
  *     def __dealloc__(self):             # <<<<<<<<<<<<<<
@@ -139519,7 +139138,7 @@ static void __pyx_pf_4lxml_5etree_4XSLT_4__dealloc__(struct __pyx_obj_4lxml_5etr
   int __pyx_t_3;
   __Pyx_RefNannySetupContext("__dealloc__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":419
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":418
  * 
  *     def __dealloc__(self):
  *         if self._xslt_resolver_context is not None and \             # <<<<<<<<<<<<<<
@@ -139529,7 +139148,7 @@ static void __pyx_pf_4lxml_5etree_4XSLT_4__dealloc__(struct __pyx_obj_4lxml_5etr
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_xslt_resolver_context) != Py_None);
   if ((__pyx_t_1 != 0)) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":420
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":419
  *     def __dealloc__(self):
  *         if self._xslt_resolver_context is not None and \
  *                self._xslt_resolver_context._c_style_doc is not NULL:             # <<<<<<<<<<<<<<
@@ -139543,7 +139162,7 @@ static void __pyx_pf_4lxml_5etree_4XSLT_4__dealloc__(struct __pyx_obj_4lxml_5etr
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":421
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":420
  *         if self._xslt_resolver_context is not None and \
  *                self._xslt_resolver_context._c_style_doc is not NULL:
  *             tree.xmlFreeDoc(self._xslt_resolver_context._c_style_doc)             # <<<<<<<<<<<<<<
@@ -139555,7 +139174,7 @@ static void __pyx_pf_4lxml_5etree_4XSLT_4__dealloc__(struct __pyx_obj_4lxml_5etr
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":423
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":422
  *             tree.xmlFreeDoc(self._xslt_resolver_context._c_style_doc)
  *         # this cleans up the doc copy as well
  *         if self._c_style is not NULL:             # <<<<<<<<<<<<<<
@@ -139565,7 +139184,7 @@ static void __pyx_pf_4lxml_5etree_4XSLT_4__dealloc__(struct __pyx_obj_4lxml_5etr
   __pyx_t_3 = ((__pyx_v_self->_c_style != NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":424
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":423
  *         # this cleans up the doc copy as well
  *         if self._c_style is not NULL:
  *             xslt.xsltFreeStylesheet(self._c_style)             # <<<<<<<<<<<<<<
@@ -139591,7 +139210,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_9error_log_1__get__(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":428
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":427
  *     property error_log:
  *         u"The log of errors and warnings of an XSLT execution."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -139608,7 +139227,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_9error_log___get__(struct __pyx_obj
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":429
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":428
  *         u"The log of errors and warnings of an XSLT execution."
  *         def __get__(self):
  *             return self._error_log.copy()             # <<<<<<<<<<<<<<
@@ -139616,7 +139235,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_9error_log___get__(struct __pyx_obj
  *     @staticmethod
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 428; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -139664,7 +139283,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_7strparam(CYTHON_UNUSED PyObject *_
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strparam") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "strparam") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -139675,7 +139294,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_7strparam(CYTHON_UNUSED PyObject *_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("strparam", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("strparam", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XSLT.strparam", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -139686,7 +139305,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_7strparam(CYTHON_UNUSED PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":432
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":431
  * 
  *     @staticmethod
  *     def strparam(strval):             # <<<<<<<<<<<<<<
@@ -139704,7 +139323,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_6strparam(PyObject *__pyx_v_strval)
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("strparam", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":443
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":442
  *         Escaped string parameters can be reused without restriction.
  *         """
  *         return _XSLTQuotedStringParam(strval)             # <<<<<<<<<<<<<<
@@ -139712,12 +139331,12 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_6strparam(PyObject *__pyx_v_strval)
  *     @staticmethod
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_strval);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_strval);
   __Pyx_GIVEREF(__pyx_v_strval);
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XSLTQuotedStringParam)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 443; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XSLTQuotedStringParam)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 442; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -139767,18 +139386,18 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_9set_global_max_depth(CYTHON_UNUSED
         else goto __pyx_L5_argtuple_error;
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_global_max_depth") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_global_max_depth") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
     } else {
       values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
     }
-    __pyx_v_max_depth = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_max_depth == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_max_depth = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_max_depth == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("set_global_max_depth", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("set_global_max_depth", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree.XSLT.set_global_max_depth", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -139789,7 +139408,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_9set_global_max_depth(CYTHON_UNUSED
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":446
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":445
  * 
  *     @staticmethod
  *     def set_global_max_depth(int max_depth):             # <<<<<<<<<<<<<<
@@ -139807,7 +139426,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_8set_global_max_depth(int __pyx_v_m
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("set_global_max_depth", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":461
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":460
  *         libxslt does not support it at a per-stylesheet level.
  *         """
  *         if max_depth < 0:             # <<<<<<<<<<<<<<
@@ -139817,23 +139436,23 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_8set_global_max_depth(int __pyx_v_m
   __pyx_t_1 = ((__pyx_v_max_depth < 0) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":462
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":461
  *         """
  *         if max_depth < 0:
  *             raise ValueError("cannot set a maximum stylesheet traversal depth < 0")             # <<<<<<<<<<<<<<
  *         xslt.xsltMaxDepth = max_depth
  * 
  */
-    __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_360), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_Call(__pyx_builtin_ValueError, ((PyObject *)__pyx_k_tuple_363), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_Raise(__pyx_t_2, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":463
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":462
  *         if max_depth < 0:
  *             raise ValueError("cannot set a maximum stylesheet traversal depth < 0")
  *         xslt.xsltMaxDepth = max_depth             # <<<<<<<<<<<<<<
@@ -139872,7 +139491,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_11apply(PyObject *__pyx_v_self, PyO
   {
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___input,&__pyx_n_s__profile_run,0};
     PyObject* values[2] = {0,0};
-    values[1] = __pyx_k_361;
+    values[1] = __pyx_k_364;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -139893,7 +139512,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_11apply(PyObject *__pyx_v_self, PyO
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kw, values, pos_args, "apply") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kw, values, pos_args, "apply") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -139905,7 +139524,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_11apply(PyObject *__pyx_v_self, PyO
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("apply", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("apply", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v_kw); __pyx_v_kw = 0;
   __Pyx_AddTraceback("lxml.etree.XSLT.apply", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -139918,7 +139537,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_11apply(PyObject *__pyx_v_self, PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":465
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":464
  *         xslt.xsltMaxDepth = max_depth
  * 
  *     def apply(self, _input, *, profile_run=False, **kw):             # <<<<<<<<<<<<<<
@@ -139937,7 +139556,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_10apply(struct __pyx_obj_4lxml_5etr
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("apply", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":469
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":468
  * 
  *         :deprecated: call the object, not this method."""
  *         return self(_input, profile_run=profile_run, **kw)             # <<<<<<<<<<<<<<
@@ -139945,18 +139564,18 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_10apply(struct __pyx_obj_4lxml_5etr
  *     def tostring(self, _ElementTree result_tree):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v__input);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v__input);
   __Pyx_GIVEREF(__pyx_v__input);
-  __pyx_t_2 = PyDict_Copy(((PyObject *)__pyx_v_kw)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_Copy(((PyObject *)__pyx_v_kw)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   if (unlikely(PyDict_GetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__profile_run)))) {
-    __Pyx_RaiseDoubleKeywordsError("function", ((PyObject *)__pyx_n_s__profile_run)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_RaiseDoubleKeywordsError("function", ((PyObject *)__pyx_n_s__profile_run)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__profile_run), __pyx_v_profile_run) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__profile_run), __pyx_v_profile_run) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 468; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
@@ -139988,7 +139607,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_13tostring(PyObject *__pyx_v_self,
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("tostring (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result_tree), __pyx_ptype_4lxml_5etree__ElementTree, 1, "result_tree", 0))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 471; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_result_tree), __pyx_ptype_4lxml_5etree__ElementTree, 1, "result_tree", 0))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 470; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_5etree_4XSLT_12tostring(((struct __pyx_obj_4lxml_5etree_XSLT *)__pyx_v_self), ((struct LxmlElementTree *)__pyx_v_result_tree));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -139998,7 +139617,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_13tostring(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":471
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":470
  *         return self(_input, profile_run=profile_run, **kw)
  * 
  *     def tostring(self, _ElementTree result_tree):             # <<<<<<<<<<<<<<
@@ -140016,7 +139635,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_12tostring(CYTHON_UNUSED struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("tostring", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":478
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":477
  *         :deprecated: use str(result_tree) instead.
  *         """
  *         return str(result_tree)             # <<<<<<<<<<<<<<
@@ -140024,12 +139643,12 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_12tostring(CYTHON_UNUSED struct __p
  *     def __deepcopy__(self, memo):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_result_tree));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_result_tree));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_result_tree));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 478; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyString_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 477; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -140060,7 +139679,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_15__deepcopy__(PyObject *__pyx_v_se
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":480
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":479
  *         return str(result_tree)
  * 
  *     def __deepcopy__(self, memo):             # <<<<<<<<<<<<<<
@@ -140078,7 +139697,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_14__deepcopy__(struct __pyx_obj_4lx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__deepcopy__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":481
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":480
  * 
  *     def __deepcopy__(self, memo):
  *         return self.__copy__()             # <<<<<<<<<<<<<<
@@ -140086,9 +139705,9 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_14__deepcopy__(struct __pyx_obj_4lx
  *     def __copy__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____copy__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 480; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -140119,7 +139738,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_17__copy__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":483
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":482
  *         return self.__copy__()
  * 
  *     def __copy__(self):             # <<<<<<<<<<<<<<
@@ -140136,7 +139755,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_16__copy__(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__copy__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":484
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":483
  * 
  *     def __copy__(self):
  *         return _copyXSLT(self)             # <<<<<<<<<<<<<<
@@ -140144,7 +139763,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_16__copy__(struct __pyx_obj_4lxml_5
  *     def __call__(self, _input, *, profile_run=False, **kw):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__copyXSLT(__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__copyXSLT(__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -140183,7 +139802,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_19__call__(PyObject *__pyx_v_self,
   {
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___input,&__pyx_n_s__profile_run,0};
     PyObject* values[2] = {0,0};
-    values[1] = __pyx_k_362;
+    values[1] = __pyx_k_365;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -140204,7 +139823,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_19__call__(PyObject *__pyx_v_self,
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kw, values, pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kw, values, pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -140216,7 +139835,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_19__call__(PyObject *__pyx_v_self,
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__call__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v_kw); __pyx_v_kw = 0;
   __Pyx_AddTraceback("lxml.etree.XSLT.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -140229,7 +139848,7 @@ static PyObject *__pyx_pw_4lxml_5etree_4XSLT_19__call__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":486
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":485
  *         return _copyXSLT(self)
  * 
  *     def __call__(self, _input, *, profile_run=False, **kw):             # <<<<<<<<<<<<<<
@@ -140269,7 +139888,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__call__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":495
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":494
  *         xslt_profile that holds an XML tree with profiling data.
  *         """
  *         cdef _XSLTContext context = None             # <<<<<<<<<<<<<<
@@ -140279,7 +139898,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   __Pyx_INCREF(Py_None);
   __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":500
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":499
  *         cdef _Element root_node
  *         cdef _Document result_doc
  *         cdef _Document profile_doc = None             # <<<<<<<<<<<<<<
@@ -140289,7 +139908,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   __Pyx_INCREF(Py_None);
   __pyx_v_profile_doc = ((struct LxmlDocument *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":503
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":502
  *         cdef xmlDoc* c_profile_doc
  *         cdef xslt.xsltTransformContext* transform_ctxt
  *         cdef xmlDoc* c_result = NULL             # <<<<<<<<<<<<<<
@@ -140298,7 +139917,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   __pyx_v_c_result = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":506
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":505
  *         cdef xmlDoc* c_doc
  *         cdef tree.xmlDict* c_dict
  *         cdef const_char** params = NULL             # <<<<<<<<<<<<<<
@@ -140307,7 +139926,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   __pyx_v_params = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":508
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":507
  *         cdef const_char** params = NULL
  * 
  *         assert self._c_style is not NULL, "XSLT stylesheet not initialised"             # <<<<<<<<<<<<<<
@@ -140316,46 +139935,46 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_style != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_363));
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_366));
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":509
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":508
  * 
  *         assert self._c_style is not NULL, "XSLT stylesheet not initialised"
  *         input_doc = _documentOrRaise(_input)             # <<<<<<<<<<<<<<
  *         root_node = _rootNodeOrRaise(_input)
  * 
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v__input)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__documentOrRaise(__pyx_v__input)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 508; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_input_doc = ((struct LxmlDocument *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":510
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":509
  *         assert self._c_style is not NULL, "XSLT stylesheet not initialised"
  *         input_doc = _documentOrRaise(_input)
  *         root_node = _rootNodeOrRaise(_input)             # <<<<<<<<<<<<<<
  * 
  *         c_doc = _fakeRootDoc(input_doc._c_doc, root_node._c_node)
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__rootNodeOrRaise(__pyx_v__input)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__rootNodeOrRaise(__pyx_v__input)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_root_node = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":512
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":511
  *         root_node = _rootNodeOrRaise(_input)
  * 
  *         c_doc = _fakeRootDoc(input_doc._c_doc, root_node._c_node)             # <<<<<<<<<<<<<<
  * 
  *         transform_ctxt = xslt.xsltNewTransformContext(self._c_style, c_doc)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_input_doc->_c_doc, __pyx_v_root_node->_c_node); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 512; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__fakeRootDoc(__pyx_v_input_doc->_c_doc, __pyx_v_root_node->_c_node); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 511; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":514
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":513
  *         c_doc = _fakeRootDoc(input_doc._c_doc, root_node._c_node)
  * 
  *         transform_ctxt = xslt.xsltNewTransformContext(self._c_style, c_doc)             # <<<<<<<<<<<<<<
@@ -140364,7 +139983,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   __pyx_v_transform_ctxt = xsltNewTransformContext(__pyx_v_self->_c_style, __pyx_v_c_doc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":515
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":514
  * 
  *         transform_ctxt = xslt.xsltNewTransformContext(self._c_style, c_doc)
  *         if transform_ctxt is NULL:             # <<<<<<<<<<<<<<
@@ -140374,7 +139993,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   __pyx_t_3 = ((__pyx_v_transform_ctxt == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":516
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":515
  *         transform_ctxt = xslt.xsltNewTransformContext(self._c_style, c_doc)
  *         if transform_ctxt is NULL:
  *             _destroyFakeDoc(input_doc._c_doc, c_doc)             # <<<<<<<<<<<<<<
@@ -140383,19 +140002,19 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
     __pyx_f_4lxml_5etree__destroyFakeDoc(__pyx_v_input_doc->_c_doc, __pyx_v_c_doc);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":517
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":516
  *         if transform_ctxt is NULL:
  *             _destroyFakeDoc(input_doc._c_doc, c_doc)
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  * 
  *         # using the stylesheet dict is safer than using a possibly
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 517; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 516; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":523
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":522
  *         # non-input tag/attr names will come from the stylesheet
  *         # anyway.
  *         if transform_ctxt.dict is not NULL:             # <<<<<<<<<<<<<<
@@ -140405,7 +140024,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   __pyx_t_3 = ((__pyx_v_transform_ctxt->dict != NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":524
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":523
  *         # anyway.
  *         if transform_ctxt.dict is not NULL:
  *             xmlparser.xmlDictFree(transform_ctxt.dict)             # <<<<<<<<<<<<<<
@@ -140417,17 +140036,17 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":525
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":524
  *         if transform_ctxt.dict is not NULL:
  *             xmlparser.xmlDictFree(transform_ctxt.dict)
  *         if kw:             # <<<<<<<<<<<<<<
  *             # parameter values are stored in the dict
  *             # => avoid unnecessarily cluttering the global dict
  */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_kw)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 525; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_kw)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 524; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":528
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":527
  *             # parameter values are stored in the dict
  *             # => avoid unnecessarily cluttering the global dict
  *             transform_ctxt.dict = xmlparser.xmlDictCreateSub(self._c_style.doc.dict)             # <<<<<<<<<<<<<<
@@ -140436,7 +140055,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
     __pyx_v_transform_ctxt->dict = xmlDictCreateSub(__pyx_v_self->_c_style->doc->dict);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":529
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":528
  *             # => avoid unnecessarily cluttering the global dict
  *             transform_ctxt.dict = xmlparser.xmlDictCreateSub(self._c_style.doc.dict)
  *             if transform_ctxt.dict is NULL:             # <<<<<<<<<<<<<<
@@ -140446,7 +140065,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_3 = ((__pyx_v_transform_ctxt->dict == NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":530
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":529
  *             transform_ctxt.dict = xmlparser.xmlDictCreateSub(self._c_style.doc.dict)
  *             if transform_ctxt.dict is NULL:
  *                 xslt.xsltFreeTransformContext(transform_ctxt)             # <<<<<<<<<<<<<<
@@ -140455,14 +140074,14 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
       xsltFreeTransformContext(__pyx_v_transform_ctxt);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":531
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":530
  *             if transform_ctxt.dict is NULL:
  *                 xslt.xsltFreeTransformContext(transform_ctxt)
  *                 raise MemoryError()             # <<<<<<<<<<<<<<
  *         else:
  *             transform_ctxt.dict = self._c_style.doc.dict
  */
-      PyErr_NoMemory(); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      PyErr_NoMemory(); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 530; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L6;
     }
     __pyx_L6:;
@@ -140470,7 +140089,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":533
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":532
  *                 raise MemoryError()
  *         else:
  *             transform_ctxt.dict = self._c_style.doc.dict             # <<<<<<<<<<<<<<
@@ -140480,7 +140099,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_4 = __pyx_v_self->_c_style->doc->dict;
     __pyx_v_transform_ctxt->dict = __pyx_t_4;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":534
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":533
  *         else:
  *             transform_ctxt.dict = self._c_style.doc.dict
  *             xmlparser.xmlDictReference(transform_ctxt.dict)             # <<<<<<<<<<<<<<
@@ -140491,7 +140110,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":537
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":536
  * 
  *         xslt.xsltSetCtxtParseOptions(
  *             transform_ctxt, input_doc._parser._parse_options)             # <<<<<<<<<<<<<<
@@ -140500,17 +140119,17 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   xsltSetCtxtParseOptions(__pyx_v_transform_ctxt, __pyx_v_input_doc->_parser->_parse_options);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":539
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":538
  *             transform_ctxt, input_doc._parser._parse_options)
  * 
  *         if profile_run:             # <<<<<<<<<<<<<<
  *             transform_ctxt.profile = 1
  * 
  */
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_profile_run); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_profile_run); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":540
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":539
  * 
  *         if profile_run:
  *             transform_ctxt.profile = 1             # <<<<<<<<<<<<<<
@@ -140522,7 +140141,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":542
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":541
  *             transform_ctxt.profile = 1
  * 
  *         try:             # <<<<<<<<<<<<<<
@@ -140531,44 +140150,43 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":543
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":542
  * 
  *         try:
  *             context = self._context._copy()             # <<<<<<<<<<<<<<
  *             context.register_context(transform_ctxt, input_doc)
  * 
  */
-    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_12_XSLTContext__copy(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->_context))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L9;}
+    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_12_XSLTContext__copy(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_self->_context))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L9;}
     __Pyx_GOTREF(__pyx_t_1);
-    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__XSLTContext))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L9;}
-    __Pyx_DECREF(((PyObject *)__pyx_v_context));
-    __pyx_v_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)__pyx_t_1);
+    if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__XSLTContext))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 542; __pyx_clineno = __LINE__; goto __pyx_L9;}
+    __Pyx_DECREF_SET(__pyx_v_context, ((struct __pyx_obj_4lxml_5etree__XSLTContext *)__pyx_t_1));
     __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":544
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":543
  *         try:
  *             context = self._context._copy()
  *             context.register_context(transform_ctxt, input_doc)             # <<<<<<<<<<<<<<
  * 
  *             resolver_context = self._xslt_resolver_context._copy()
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree_12_XSLTContext_register_context(__pyx_v_context, __pyx_v_transform_ctxt, __pyx_v_input_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 544; __pyx_clineno = __LINE__; goto __pyx_L9;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_12_XSLTContext_register_context(__pyx_v_context, __pyx_v_transform_ctxt, __pyx_v_input_doc); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 543; __pyx_clineno = __LINE__; goto __pyx_L9;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":546
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":545
  *             context.register_context(transform_ctxt, input_doc)
  * 
  *             resolver_context = self._xslt_resolver_context._copy()             # <<<<<<<<<<<<<<
  *             transform_ctxt._private = <python.PyObject*>resolver_context
  * 
  */
-    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_20_XSLTResolverContext__copy(__pyx_v_self->_xslt_resolver_context)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 546; __pyx_clineno = __LINE__; goto __pyx_L9;}
+    __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_20_XSLTResolverContext__copy(__pyx_v_self->_xslt_resolver_context)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 545; __pyx_clineno = __LINE__; goto __pyx_L9;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_resolver_context = ((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)__pyx_t_1);
     __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":547
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":546
  * 
  *             resolver_context = self._xslt_resolver_context._copy()
  *             transform_ctxt._private = <python.PyObject*>resolver_context             # <<<<<<<<<<<<<<
@@ -140577,18 +140195,18 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
     __pyx_v_transform_ctxt->_private = ((PyObject *)__pyx_v_resolver_context);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":549
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":548
  *             transform_ctxt._private = <python.PyObject*>resolver_context
  * 
  *             _convert_xslt_parameters(transform_ctxt, kw, &params)             # <<<<<<<<<<<<<<
  *             c_result = self._run_transform(
  *                 c_doc, params, context, transform_ctxt)
  */
-    __pyx_t_1 = __pyx_f_4lxml_5etree__convert_xslt_parameters(__pyx_v_transform_ctxt, __pyx_v_kw, (&__pyx_v_params)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 549; __pyx_clineno = __LINE__; goto __pyx_L9;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree__convert_xslt_parameters(__pyx_v_transform_ctxt, __pyx_v_kw, (&__pyx_v_params)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 548; __pyx_clineno = __LINE__; goto __pyx_L9;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":551
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":550
  *             _convert_xslt_parameters(transform_ctxt, kw, &params)
  *             c_result = self._run_transform(
  *                 c_doc, params, context, transform_ctxt)             # <<<<<<<<<<<<<<
@@ -140597,7 +140215,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
     __pyx_v_c_result = ((struct __pyx_vtabstruct_4lxml_5etree_XSLT *)__pyx_v_self->__pyx_vtab)->_run_transform(__pyx_v_self, __pyx_v_c_doc, __pyx_v_params, __pyx_v_context, __pyx_v_transform_ctxt);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":552
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":551
  *             c_result = self._run_transform(
  *                 c_doc, params, context, transform_ctxt)
  *             if params is not NULL:             # <<<<<<<<<<<<<<
@@ -140607,7 +140225,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_3 = ((__pyx_v_params != NULL) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":554
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":553
  *             if params is not NULL:
  *                 # deallocate space for parameters
  *                 python.PyMem_Free(params)             # <<<<<<<<<<<<<<
@@ -140619,7 +140237,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     }
     __pyx_L11:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":556
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":555
  *                 python.PyMem_Free(params)
  * 
  *             if transform_ctxt.state != xslt.XSLT_STATE_OK:             # <<<<<<<<<<<<<<
@@ -140629,7 +140247,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_3 = ((__pyx_v_transform_ctxt->state != XSLT_STATE_OK) != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":557
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":556
  * 
  *             if transform_ctxt.state != xslt.XSLT_STATE_OK:
  *                 if c_result is not NULL:             # <<<<<<<<<<<<<<
@@ -140639,7 +140257,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       __pyx_t_3 = ((__pyx_v_c_result != NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":558
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":557
  *             if transform_ctxt.state != xslt.XSLT_STATE_OK:
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)             # <<<<<<<<<<<<<<
@@ -140648,7 +140266,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
         xmlFreeDoc(__pyx_v_c_result);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":559
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":558
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)
  *                     c_result = NULL             # <<<<<<<<<<<<<<
@@ -140663,7 +140281,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     }
     __pyx_L12:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":561
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":560
  *                     c_result = NULL
  * 
  *             if transform_ctxt.profile:             # <<<<<<<<<<<<<<
@@ -140673,7 +140291,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_3 = (__pyx_v_transform_ctxt->profile != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":562
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":561
  * 
  *             if transform_ctxt.profile:
  *                 c_profile_doc = xslt.xsltGetProfileInformation(transform_ctxt)             # <<<<<<<<<<<<<<
@@ -140682,7 +140300,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
       __pyx_v_c_profile_doc = xsltGetProfileInformation(__pyx_v_transform_ctxt);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":563
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":562
  *             if transform_ctxt.profile:
  *                 c_profile_doc = xslt.xsltGetProfileInformation(transform_ctxt)
  *                 if c_profile_doc is not NULL:             # <<<<<<<<<<<<<<
@@ -140692,7 +140310,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       __pyx_t_3 = ((__pyx_v_c_profile_doc != NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":565
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":564
  *                 if c_profile_doc is not NULL:
  *                     profile_doc = _documentFactory(
  *                         c_profile_doc, input_doc._parser)             # <<<<<<<<<<<<<<
@@ -140701,11 +140319,10 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
         __pyx_t_1 = ((PyObject *)__pyx_v_input_doc->_parser);
         __Pyx_INCREF(__pyx_t_1);
-        __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_profile_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 564; __pyx_clineno = __LINE__; goto __pyx_L9;}
+        __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_profile_doc, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L9;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-        __Pyx_DECREF(((PyObject *)__pyx_v_profile_doc));
-        __pyx_v_profile_doc = ((struct LxmlDocument *)__pyx_t_5);
+        __Pyx_DECREF_SET(__pyx_v_profile_doc, ((struct LxmlDocument *)__pyx_t_5));
         __pyx_t_5 = 0;
         goto __pyx_L15;
       }
@@ -140715,7 +140332,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_L14:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":567
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":566
  *                         c_profile_doc, input_doc._parser)
  *         finally:
  *             if context is not None:             # <<<<<<<<<<<<<<
@@ -140741,21 +140358,21 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_6 = (__pyx_t_3 != 0);
     if (__pyx_t_6) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":568
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":567
  *         finally:
  *             if context is not None:
  *                 context.free_context()             # <<<<<<<<<<<<<<
  *             _destroyFakeDoc(input_doc._c_doc, c_doc)
  * 
  */
-      __pyx_t_5 = __pyx_f_4lxml_5etree_12_XSLTContext_free_context(__pyx_v_context); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 568; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
+      __pyx_t_5 = __pyx_f_4lxml_5etree_12_XSLTContext_free_context(__pyx_v_context); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L16_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       goto __pyx_L17;
     }
     __pyx_L17:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":569
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":568
  *             if context is not None:
  *                 context.free_context()
  *             _destroyFakeDoc(input_doc._c_doc, c_doc)             # <<<<<<<<<<<<<<
@@ -140784,7 +140401,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":571
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":570
  *             _destroyFakeDoc(input_doc._c_doc, c_doc)
  * 
  *         try:             # <<<<<<<<<<<<<<
@@ -140793,7 +140410,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":572
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":571
  * 
  *         try:
  *             if resolver_context is not None and resolver_context._has_raised():             # <<<<<<<<<<<<<<
@@ -140809,7 +140426,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     }
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":573
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":572
  *         try:
  *             if resolver_context is not None and resolver_context._has_raised():
  *                 if c_result is not NULL:             # <<<<<<<<<<<<<<
@@ -140819,7 +140436,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       __pyx_t_7 = ((__pyx_v_c_result != NULL) != 0);
       if (__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":574
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":573
  *             if resolver_context is not None and resolver_context._has_raised():
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)             # <<<<<<<<<<<<<<
@@ -140828,7 +140445,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
         xmlFreeDoc(__pyx_v_c_result);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":575
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":574
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)
  *                     c_result = NULL             # <<<<<<<<<<<<<<
@@ -140840,19 +140457,19 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       }
       __pyx_L23:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":576
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":575
  *                     tree.xmlFreeDoc(c_result)
  *                     c_result = NULL
  *                 resolver_context._raise_if_stored()             # <<<<<<<<<<<<<<
  * 
  *             if context._exc._has_raised():
  */
-      __pyx_t_8 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext *)__pyx_v_resolver_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._raise_if_stored(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_resolver_context)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L20;}
+      __pyx_t_8 = ((struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext *)__pyx_v_resolver_context->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base._raise_if_stored(((struct __pyx_obj_4lxml_5etree__ExceptionContext *)__pyx_v_resolver_context)); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 575; __pyx_clineno = __LINE__; goto __pyx_L20;}
       goto __pyx_L22;
     }
     __pyx_L22:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":578
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":577
  *                 resolver_context._raise_if_stored()
  * 
  *             if context._exc._has_raised():             # <<<<<<<<<<<<<<
@@ -140862,7 +140479,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_7 = (((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_context->__pyx_base._exc->__pyx_vtab)->_has_raised(__pyx_v_context->__pyx_base._exc) != 0);
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":579
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":578
  * 
  *             if context._exc._has_raised():
  *                 if c_result is not NULL:             # <<<<<<<<<<<<<<
@@ -140872,7 +140489,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       __pyx_t_7 = ((__pyx_v_c_result != NULL) != 0);
       if (__pyx_t_7) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":580
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":579
  *             if context._exc._has_raised():
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)             # <<<<<<<<<<<<<<
@@ -140881,7 +140498,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
         xmlFreeDoc(__pyx_v_c_result);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":581
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":580
  *                 if c_result is not NULL:
  *                     tree.xmlFreeDoc(c_result)
  *                     c_result = NULL             # <<<<<<<<<<<<<<
@@ -140893,19 +140510,19 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       }
       __pyx_L25:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":582
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":581
  *                     tree.xmlFreeDoc(c_result)
  *                     c_result = NULL
  *                 context._exc._raise_if_stored()             # <<<<<<<<<<<<<<
  * 
  *             if c_result is NULL:
  */
-      __pyx_t_8 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_context->__pyx_base._exc->__pyx_vtab)->_raise_if_stored(__pyx_v_context->__pyx_base._exc); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 582; __pyx_clineno = __LINE__; goto __pyx_L20;}
+      __pyx_t_8 = ((struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext *)__pyx_v_context->__pyx_base._exc->__pyx_vtab)->_raise_if_stored(__pyx_v_context->__pyx_base._exc); if (unlikely(__pyx_t_8 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 581; __pyx_clineno = __LINE__; goto __pyx_L20;}
       goto __pyx_L24;
     }
     __pyx_L24:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":584
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":583
  *                 context._exc._raise_if_stored()
  * 
  *             if c_result is NULL:             # <<<<<<<<<<<<<<
@@ -140915,7 +140532,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_7 = ((__pyx_v_c_result == NULL) != 0);
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":586
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":585
  *             if c_result is NULL:
  *                 # last error seems to be the most accurate here
  *                 error = self._error_log.last_error             # <<<<<<<<<<<<<<
@@ -140927,7 +140544,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       __pyx_v_error = __pyx_t_5;
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":587
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":586
  *                 # last error seems to be the most accurate here
  *                 error = self._error_log.last_error
  *                 if error is not None and error.message:             # <<<<<<<<<<<<<<
@@ -140936,9 +140553,9 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
       __pyx_t_7 = (__pyx_v_error != Py_None);
       if (__pyx_t_7) {
-        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_GOTREF(__pyx_t_5);
-        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 586; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __pyx_t_3 = __pyx_t_6;
       } else {
@@ -140946,33 +140563,33 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       }
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":588
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":587
  *                 error = self._error_log.last_error
  *                 if error is not None and error.message:
  *                     if error.line > 0:             # <<<<<<<<<<<<<<
  *                         message = u"%s, line %d" % (error.message, error.line)
  *                     else:
  */
-        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_GOTREF(__pyx_t_5);
-        __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 587; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":589
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":588
  *                 if error is not None and error.message:
  *                     if error.line > 0:
  *                         message = u"%s, line %d" % (error.message, error.line)             # <<<<<<<<<<<<<<
  *                     else:
  *                         message = error.message
  */
-          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
+          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
           __Pyx_GOTREF(__pyx_t_1);
-          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
+          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
           __Pyx_GOTREF(__pyx_t_5);
-          __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
+          __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
           __Pyx_GOTREF(__pyx_t_9);
           PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1);
           __Pyx_GIVEREF(__pyx_t_1);
@@ -140980,7 +140597,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
           __Pyx_GIVEREF(__pyx_t_5);
           __pyx_t_1 = 0;
           __pyx_t_5 = 0;
-          __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_48), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 589; __pyx_clineno = __LINE__; goto __pyx_L20;}
+          __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_51), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 588; __pyx_clineno = __LINE__; goto __pyx_L20;}
           __Pyx_GOTREF(((PyObject *)__pyx_t_5));
           __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
           __pyx_v_message = ((PyObject *)__pyx_t_5);
@@ -140989,14 +140606,14 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":591
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":590
  *                         message = u"%s, line %d" % (error.message, error.line)
  *                     else:
  *                         message = error.message             # <<<<<<<<<<<<<<
  *                 elif error is not None and error.line > 0:
  *                     message = u"Error applying stylesheet, line %d" % error.line
  */
-          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L20;}
+          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__message); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L20;}
           __Pyx_GOTREF(__pyx_t_5);
           __pyx_v_message = __pyx_t_5;
           __pyx_t_5 = 0;
@@ -141005,7 +140622,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
         goto __pyx_L27;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":592
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":591
  *                     else:
  *                         message = error.message
  *                 elif error is not None and error.line > 0:             # <<<<<<<<<<<<<<
@@ -141014,11 +140631,11 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
       __pyx_t_3 = (__pyx_v_error != Py_None);
       if (__pyx_t_3) {
-        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_GOTREF(__pyx_t_5);
-        __pyx_t_9 = PyObject_RichCompare(__pyx_t_5, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_9 = PyObject_RichCompare(__pyx_t_5, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 591; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         __pyx_t_6 = __pyx_t_7;
       } else {
@@ -141026,16 +140643,16 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       }
       if (__pyx_t_6) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":593
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":592
  *                         message = error.message
  *                 elif error is not None and error.line > 0:
  *                     message = u"Error applying stylesheet, line %d" % error.line             # <<<<<<<<<<<<<<
  *                 else:
  *                     message = u"Error applying stylesheet"
  */
-        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_error, __pyx_n_s__line); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_GOTREF(__pyx_t_9);
-        __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_364), __pyx_t_9); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 593; __pyx_clineno = __LINE__; goto __pyx_L20;}
+        __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_367), __pyx_t_9); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 592; __pyx_clineno = __LINE__; goto __pyx_L20;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_5));
         __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
         __pyx_v_message = ((PyObject *)__pyx_t_5);
@@ -141044,28 +140661,28 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":595
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":594
  *                     message = u"Error applying stylesheet, line %d" % error.line
  *                 else:
  *                     message = u"Error applying stylesheet"             # <<<<<<<<<<<<<<
  *                 raise XSLTApplyError(message, self._error_log)
  *         finally:
  */
-        __Pyx_INCREF(((PyObject *)__pyx_kp_u_365));
-        __pyx_v_message = ((PyObject *)__pyx_kp_u_365);
+        __Pyx_INCREF(((PyObject *)__pyx_kp_u_368));
+        __pyx_v_message = ((PyObject *)__pyx_kp_u_368);
       }
       __pyx_L27:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":596
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":595
  *                 else:
  *                     message = u"Error applying stylesheet"
  *                 raise XSLTApplyError(message, self._error_log)             # <<<<<<<<<<<<<<
  *         finally:
  *             if resolver_context is not None:
  */
-      __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTApplyError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L20;}
+      __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTApplyError); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L20;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L20;}
+      __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L20;}
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_v_message);
       PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_v_message);
@@ -141073,19 +140690,19 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
       __Pyx_INCREF(((PyObject *)__pyx_v_self->_error_log));
       PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_self->_error_log));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
-      __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L20;}
+      __pyx_t_1 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L20;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
       __Pyx_Raise(__pyx_t_1, 0, 0, 0);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 596; __pyx_clineno = __LINE__; goto __pyx_L20;}
+      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L20;}
       goto __pyx_L26;
     }
     __pyx_L26:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":598
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":597
  *                 raise XSLTApplyError(message, self._error_log)
  *         finally:
  *             if resolver_context is not None:             # <<<<<<<<<<<<<<
@@ -141112,7 +140729,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_3 = (__pyx_t_6 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":599
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":598
  *         finally:
  *             if resolver_context is not None:
  *                 resolver_context.clear()             # <<<<<<<<<<<<<<
@@ -141135,7 +140752,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":601
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":600
  *                 resolver_context.clear()
  * 
  *         result_doc = _documentFactory(c_result, input_doc._parser)             # <<<<<<<<<<<<<<
@@ -141144,13 +140761,13 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   __pyx_t_1 = ((PyObject *)__pyx_v_input_doc->_parser);
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_result, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 601; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = ((PyObject *)__pyx_f_4lxml_5etree__documentFactory(__pyx_v_c_result, ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_t_1))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 600; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_result_doc = ((struct LxmlDocument *)__pyx_t_9);
   __pyx_t_9 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":603
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":602
  *         result_doc = _documentFactory(c_result, input_doc._parser)
  * 
  *         c_dict = c_result.dict             # <<<<<<<<<<<<<<
@@ -141160,7 +140777,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   __pyx_t_4 = __pyx_v_c_result->dict;
   __pyx_v_c_dict = __pyx_t_4;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":604
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":603
  * 
  *         c_dict = c_result.dict
  *         xmlparser.xmlDictReference(c_dict)             # <<<<<<<<<<<<<<
@@ -141169,7 +140786,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   xmlDictReference(__pyx_v_c_dict);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":605
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":604
  *         c_dict = c_result.dict
  *         xmlparser.xmlDictReference(c_dict)
  *         __GLOBAL_PARSER_CONTEXT.initThreadDictRef(&c_result.dict)             # <<<<<<<<<<<<<<
@@ -141178,7 +140795,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   __pyx_f_4lxml_5etree_24_ParserDictionaryContext_initThreadDictRef(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, (&__pyx_v_c_result->dict));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":606
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":605
  *         xmlparser.xmlDictReference(c_dict)
  *         __GLOBAL_PARSER_CONTEXT.initThreadDictRef(&c_result.dict)
  *         if c_dict is not c_result.dict or \             # <<<<<<<<<<<<<<
@@ -141188,7 +140805,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   __pyx_t_3 = ((__pyx_v_c_dict != __pyx_v_c_result->dict) != 0);
   if (!__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":607
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":606
  *         __GLOBAL_PARSER_CONTEXT.initThreadDictRef(&c_result.dict)
  *         if c_dict is not c_result.dict or \
  *                 self._c_style.doc.dict is not c_result.dict or \             # <<<<<<<<<<<<<<
@@ -141198,7 +140815,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
     __pyx_t_6 = ((__pyx_v_self->_c_style->doc->dict != __pyx_v_c_result->dict) != 0);
     if (!__pyx_t_6) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":608
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":607
  *         if c_dict is not c_result.dict or \
  *                 self._c_style.doc.dict is not c_result.dict or \
  *                 input_doc._c_doc.dict is not c_result.dict:             # <<<<<<<<<<<<<<
@@ -141216,7 +140833,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   }
   if (__pyx_t_6) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":609
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":608
  *                 self._c_style.doc.dict is not c_result.dict or \
  *                 input_doc._c_doc.dict is not c_result.dict:
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -141230,7 +140847,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
         #endif
         /*try:*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":610
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":609
  *                 input_doc._c_doc.dict is not c_result.dict:
  *             with nogil:
  *                 if c_dict is not c_result.dict:             # <<<<<<<<<<<<<<
@@ -141240,7 +140857,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
           __pyx_t_6 = ((__pyx_v_c_dict != __pyx_v_c_result->dict) != 0);
           if (__pyx_t_6) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":612
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":611
  *                 if c_dict is not c_result.dict:
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        c_dict, c_result.dict)             # <<<<<<<<<<<<<<
@@ -141252,7 +140869,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
           }
           __pyx_L35:;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":613
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":612
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        c_dict, c_result.dict)
  *                 if self._c_style.doc.dict is not c_result.dict:             # <<<<<<<<<<<<<<
@@ -141262,7 +140879,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
           __pyx_t_6 = ((__pyx_v_self->_c_style->doc->dict != __pyx_v_c_result->dict) != 0);
           if (__pyx_t_6) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":615
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":614
  *                 if self._c_style.doc.dict is not c_result.dict:
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        self._c_style.doc.dict, c_result.dict)             # <<<<<<<<<<<<<<
@@ -141274,7 +140891,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
           }
           __pyx_L36:;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":616
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":615
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        self._c_style.doc.dict, c_result.dict)
  *                 if input_doc._c_doc.dict is not c_result.dict:             # <<<<<<<<<<<<<<
@@ -141284,7 +140901,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
           __pyx_t_6 = ((__pyx_v_input_doc->_c_doc->dict != __pyx_v_c_result->dict) != 0);
           if (__pyx_t_6) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":618
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":617
  *                 if input_doc._c_doc.dict is not c_result.dict:
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        input_doc._c_doc.dict, c_result.dict)             # <<<<<<<<<<<<<<
@@ -141297,7 +140914,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
           __pyx_L37:;
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":609
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":608
  *                 self._c_style.doc.dict is not c_result.dict or \
  *                 input_doc._c_doc.dict is not c_result.dict:
  *             with nogil:             # <<<<<<<<<<<<<<
@@ -141314,7 +140931,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   }
   __pyx_L31:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":619
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":618
  *                     fixThreadDictNames(<xmlNode*>c_result,
  *                                        input_doc._c_doc.dict, c_result.dict)
  *         xmlparser.xmlDictFree(c_dict)             # <<<<<<<<<<<<<<
@@ -141323,7 +140940,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  */
   xmlDictFree(__pyx_v_c_dict);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":621
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":620
  *         xmlparser.xmlDictFree(c_dict)
  * 
  *         return _xsltResultTreeFactory(result_doc, self, profile_doc)             # <<<<<<<<<<<<<<
@@ -141331,7 +140948,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
  *     cdef xmlDoc* _run_transform(self, xmlDoc* c_input_doc,
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_9 = __pyx_f_4lxml_5etree__xsltResultTreeFactory(__pyx_v_result_doc, __pyx_v_self, __pyx_v_profile_doc); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = __pyx_f_4lxml_5etree__xsltResultTreeFactory(__pyx_v_result_doc, __pyx_v_self, __pyx_v_profile_doc); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 620; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   __pyx_r = __pyx_t_9;
   __pyx_t_9 = 0;
@@ -141359,7 +140976,7 @@ static PyObject *__pyx_pf_4lxml_5etree_4XSLT_18__call__(struct __pyx_obj_4lxml_5
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":623
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":622
  *         return _xsltResultTreeFactory(result_doc, self, profile_doc)
  * 
  *     cdef xmlDoc* _run_transform(self, xmlDoc* c_input_doc,             # <<<<<<<<<<<<<<
@@ -141375,7 +140992,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
   int __pyx_t_2;
   __Pyx_RefNannySetupContext("_run_transform", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":628
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":627
  *         cdef xmlDoc* c_result
  *         xslt.xsltSetTransformErrorFunc(transform_ctxt, <void*>self._error_log,
  *                                        <xmlerror.xmlGenericErrorFunc>_receiveXSLTError)             # <<<<<<<<<<<<<<
@@ -141384,7 +141001,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
  */
   xsltSetTransformErrorFunc(__pyx_v_transform_ctxt, ((void *)__pyx_v_self->_error_log), ((xmlGenericErrorFunc)__pyx_f_4lxml_5etree__receiveXSLTError));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":629
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":628
  *         xslt.xsltSetTransformErrorFunc(transform_ctxt, <void*>self._error_log,
  *                                        <xmlerror.xmlGenericErrorFunc>_receiveXSLTError)
  *         if self._access_control is not None:             # <<<<<<<<<<<<<<
@@ -141395,7 +141012,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":630
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":629
  *                                        <xmlerror.xmlGenericErrorFunc>_receiveXSLTError)
  *         if self._access_control is not None:
  *             self._access_control._register_in_context(transform_ctxt)             # <<<<<<<<<<<<<<
@@ -141407,7 +141024,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":631
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":630
  *         if self._access_control is not None:
  *             self._access_control._register_in_context(transform_ctxt)
  *         with nogil:             # <<<<<<<<<<<<<<
@@ -141421,7 +141038,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
       #endif
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":633
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":632
  *         with nogil:
  *             c_result = xslt.xsltApplyStylesheetUser(
  *                 self._c_style, c_input_doc, params, NULL, NULL, transform_ctxt)             # <<<<<<<<<<<<<<
@@ -141431,7 +141048,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
         __pyx_v_c_result = xsltApplyStylesheetUser(__pyx_v_self->_c_style, __pyx_v_c_input_doc, __pyx_v_params, NULL, NULL, __pyx_v_transform_ctxt);
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":631
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":630
  *         if self._access_control is not None:
  *             self._access_control._register_in_context(transform_ctxt)
  *         with nogil:             # <<<<<<<<<<<<<<
@@ -141445,7 +141062,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
       }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":634
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":633
  *             c_result = xslt.xsltApplyStylesheetUser(
  *                 self._c_style, c_input_doc, params, NULL, NULL, transform_ctxt)
  *         return c_result             # <<<<<<<<<<<<<<
@@ -141461,7 +141078,7 @@ static xmlDoc *__pyx_f_4lxml_5etree_4XSLT__run_transform(struct __pyx_obj_4lxml_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":636
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":635
  *         return c_result
  * 
  * cdef _convert_xslt_parameters(xslt.xsltTransformContext* transform_ctxt,             # <<<<<<<<<<<<<<
@@ -141499,7 +141116,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_convert_xslt_parameters", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":640
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":639
  *     cdef Py_ssize_t i, parameter_count
  *     cdef const_char** params
  *     cdef tree.xmlDict* c_dict = transform_ctxt.dict             # <<<<<<<<<<<<<<
@@ -141509,7 +141126,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
   __pyx_t_1 = __pyx_v_transform_ctxt->dict;
   __pyx_v_c_dict = __pyx_t_1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":641
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":640
  *     cdef const_char** params
  *     cdef tree.xmlDict* c_dict = transform_ctxt.dict
  *     params_ptr[0] = NULL             # <<<<<<<<<<<<<<
@@ -141518,7 +141135,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
   (__pyx_v_params_ptr[0]) = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":642
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":641
  *     cdef tree.xmlDict* c_dict = transform_ctxt.dict
  *     params_ptr[0] = NULL
  *     parameter_count = len(parameters)             # <<<<<<<<<<<<<<
@@ -141527,12 +141144,12 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
   if (unlikely(((PyObject *)__pyx_v_parameters) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_2 = PyDict_Size(((PyObject *)__pyx_v_parameters)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 642; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_Size(((PyObject *)__pyx_v_parameters)); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_parameter_count = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":643
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":642
  *     params_ptr[0] = NULL
  *     parameter_count = len(parameters)
  *     if parameter_count == 0:             # <<<<<<<<<<<<<<
@@ -141542,7 +141159,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
   __pyx_t_3 = ((__pyx_v_parameter_count == 0) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":644
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":643
  *     parameter_count = len(parameters)
  *     if parameter_count == 0:
  *         return             # <<<<<<<<<<<<<<
@@ -141556,7 +141173,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":649
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":648
  *     # and + 1 as array is NULL terminated
  *     params = <const_char**>python.PyMem_Malloc(
  *         sizeof(const_char*) * (parameter_count * 2 + 1))             # <<<<<<<<<<<<<<
@@ -141565,7 +141182,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
   __pyx_v_params = ((const char **)PyMem_Malloc(((sizeof(const char *)) * ((__pyx_v_parameter_count * 2) + 1))));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":650
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":649
  *     params = <const_char**>python.PyMem_Malloc(
  *         sizeof(const_char*) * (parameter_count * 2 + 1))
  *     try:             # <<<<<<<<<<<<<<
@@ -141579,7 +141196,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
     __Pyx_XGOTREF(__pyx_t_6);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":651
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":650
  *         sizeof(const_char*) * (parameter_count * 2 + 1))
  *     try:
  *         i = 0             # <<<<<<<<<<<<<<
@@ -141588,7 +141205,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
       __pyx_v_i = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":652
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":651
  *     try:
  *         i = 0
  *         for key, value in parameters.iteritems():             # <<<<<<<<<<<<<<
@@ -141598,9 +141215,9 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
       __pyx_t_2 = 0;
       if (unlikely(((PyObject *)__pyx_v_parameters) == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "iteritems");
-        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        {__pyx_filename = __pyx_f[2]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
       }
-      __pyx_t_10 = __Pyx_dict_iterator(((PyObject *)__pyx_v_parameters), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+      __pyx_t_10 = __Pyx_dict_iterator(((PyObject *)__pyx_v_parameters), 1, ((PyObject *)__pyx_n_s__iteritems), (&__pyx_t_8), (&__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
       __Pyx_GOTREF(__pyx_t_10);
       __Pyx_XDECREF(__pyx_t_7);
       __pyx_t_7 = __pyx_t_10;
@@ -141608,30 +141225,27 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
       while (1) {
         __pyx_t_12 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_8, &__pyx_t_2, &__pyx_t_10, &__pyx_t_11, NULL, __pyx_t_9);
         if (unlikely(__pyx_t_12 == 0)) break;
-        if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 651; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_10);
         __Pyx_GOTREF(__pyx_t_11);
-        __Pyx_XDECREF(__pyx_v_key);
-        __pyx_v_key = __pyx_t_10;
+        __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_10);
         __pyx_t_10 = 0;
-        __Pyx_XDECREF(__pyx_v_value);
-        __pyx_v_value = __pyx_t_11;
+        __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_11);
         __pyx_t_11 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":653
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":652
  *         i = 0
  *         for key, value in parameters.iteritems():
  *             k = _utf8(key)             # <<<<<<<<<<<<<<
  *             if isinstance(value, _XSLTQuotedStringParam):
  *                 v = (<_XSLTQuotedStringParam>value).strval
  */
-        __pyx_t_11 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_key)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 653; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+        __pyx_t_11 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_key)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
         __Pyx_GOTREF(__pyx_t_11);
-        __Pyx_XDECREF(((PyObject *)__pyx_v_k));
-        __pyx_v_k = ((PyObject*)__pyx_t_11);
+        __Pyx_XDECREF_SET(__pyx_v_k, ((PyObject*)__pyx_t_11));
         __pyx_t_11 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":654
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":653
  *         for key, value in parameters.iteritems():
  *             k = _utf8(key)
  *             if isinstance(value, _XSLTQuotedStringParam):             # <<<<<<<<<<<<<<
@@ -141642,7 +141256,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
         __pyx_t_13 = (__pyx_t_3 != 0);
         if (__pyx_t_13) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":655
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":654
  *             k = _utf8(key)
  *             if isinstance(value, _XSLTQuotedStringParam):
  *                 v = (<_XSLTQuotedStringParam>value).strval             # <<<<<<<<<<<<<<
@@ -141651,11 +141265,10 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
           __pyx_t_11 = ((PyObject *)((struct __pyx_obj_4lxml_5etree__XSLTQuotedStringParam *)__pyx_v_value)->strval);
           __Pyx_INCREF(__pyx_t_11);
-          __Pyx_XDECREF(((PyObject *)__pyx_v_v));
-          __pyx_v_v = ((PyObject*)__pyx_t_11);
+          __Pyx_XDECREF_SET(__pyx_v_v, ((PyObject*)__pyx_t_11));
           __pyx_t_11 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":657
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":656
  *                 v = (<_XSLTQuotedStringParam>value).strval
  *                 xslt.xsltQuoteOneUserParam(
  *                     transform_ctxt, _xcstr(k), _xcstr(v))             # <<<<<<<<<<<<<<
@@ -141667,7 +141280,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":659
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":658
  *                     transform_ctxt, _xcstr(k), _xcstr(v))
  *             else:
  *                 if isinstance(value, XPath):             # <<<<<<<<<<<<<<
@@ -141678,7 +141291,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
           __pyx_t_3 = (__pyx_t_13 != 0);
           if (__pyx_t_3) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":660
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":659
  *             else:
  *                 if isinstance(value, XPath):
  *                     v = (<XPath>value)._path             # <<<<<<<<<<<<<<
@@ -141687,29 +141300,27 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
             __pyx_t_11 = ((PyObject *)((struct __pyx_obj_4lxml_5etree_XPath *)__pyx_v_value)->_path);
             __Pyx_INCREF(__pyx_t_11);
-            __Pyx_XDECREF(((PyObject *)__pyx_v_v));
-            __pyx_v_v = ((PyObject*)__pyx_t_11);
+            __Pyx_XDECREF_SET(__pyx_v_v, ((PyObject*)__pyx_t_11));
             __pyx_t_11 = 0;
             goto __pyx_L15;
           }
           /*else*/ {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":662
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":661
  *                     v = (<XPath>value)._path
  *                 else:
  *                     v = _utf8(value)             # <<<<<<<<<<<<<<
  *                 params[i] = <const_char*>tree.xmlDictLookup(c_dict, _xcstr(k), len(k))
  *                 i += 1
  */
-            __pyx_t_11 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+            __pyx_t_11 = ((PyObject *)__pyx_f_4lxml_5etree__utf8(__pyx_v_value)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
             __Pyx_GOTREF(__pyx_t_11);
-            __Pyx_XDECREF(((PyObject *)__pyx_v_v));
-            __pyx_v_v = ((PyObject*)__pyx_t_11);
+            __Pyx_XDECREF_SET(__pyx_v_v, ((PyObject*)__pyx_t_11));
             __pyx_t_11 = 0;
           }
           __pyx_L15:;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":663
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":662
  *                 else:
  *                     v = _utf8(value)
  *                 params[i] = <const_char*>tree.xmlDictLookup(c_dict, _xcstr(k), len(k))             # <<<<<<<<<<<<<<
@@ -141718,12 +141329,12 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
           if (unlikely(((PyObject *)__pyx_v_k) == Py_None)) {
             PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-            {__pyx_filename = __pyx_f[2]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+            {__pyx_filename = __pyx_f[2]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           }
-          __pyx_t_14 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_k)); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 663; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+          __pyx_t_14 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_k)); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 662; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           (__pyx_v_params[__pyx_v_i]) = ((const char *)xmlDictLookup(__pyx_v_c_dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_k)), __pyx_t_14));
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":664
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":663
  *                     v = _utf8(value)
  *                 params[i] = <const_char*>tree.xmlDictLookup(c_dict, _xcstr(k), len(k))
  *                 i += 1             # <<<<<<<<<<<<<<
@@ -141732,7 +141343,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
           __pyx_v_i = (__pyx_v_i + 1);
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":665
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":664
  *                 params[i] = <const_char*>tree.xmlDictLookup(c_dict, _xcstr(k), len(k))
  *                 i += 1
  *                 params[i] = <const_char*>tree.xmlDictLookup(c_dict, _xcstr(v), len(v))             # <<<<<<<<<<<<<<
@@ -141741,12 +141352,12 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
           if (unlikely(((PyObject *)__pyx_v_v) == Py_None)) {
             PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-            {__pyx_filename = __pyx_f[2]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+            {__pyx_filename = __pyx_f[2]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           }
-          __pyx_t_14 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_v)); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 665; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+          __pyx_t_14 = PyBytes_GET_SIZE(((PyObject *)__pyx_v_v)); if (unlikely(__pyx_t_14 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 664; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
           (__pyx_v_params[__pyx_v_i]) = ((const char *)xmlDictLookup(__pyx_v_c_dict, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_v)), __pyx_t_14));
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":666
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":665
  *                 i += 1
  *                 params[i] = <const_char*>tree.xmlDictLookup(c_dict, _xcstr(v), len(v))
  *                 i += 1             # <<<<<<<<<<<<<<
@@ -141768,7 +141379,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
     __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":667
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":666
  *                 params[i] = <const_char*>tree.xmlDictLookup(c_dict, _xcstr(v), len(v))
  *                 i += 1
  *     except:             # <<<<<<<<<<<<<<
@@ -141777,12 +141388,12 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
     /*except:*/ {
       __Pyx_AddTraceback("lxml.etree._convert_xslt_parameters", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_11, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 667; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_11, &__pyx_t_10) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 666; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_11);
       __Pyx_GOTREF(__pyx_t_10);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":668
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":667
  *                 i += 1
  *     except:
  *         python.PyMem_Free(params)             # <<<<<<<<<<<<<<
@@ -141791,7 +141402,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
       PyMem_Free(__pyx_v_params);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":669
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":668
  *     except:
  *         python.PyMem_Free(params)
  *         raise             # <<<<<<<<<<<<<<
@@ -141803,7 +141414,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
       __Pyx_GIVEREF(__pyx_t_10);
       __Pyx_ErrRestore(__pyx_t_7, __pyx_t_11, __pyx_t_10);
       __pyx_t_7 = 0; __pyx_t_11 = 0; __pyx_t_10 = 0; 
-      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 669; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
+      {__pyx_filename = __pyx_f[2]; __pyx_lineno = 668; __pyx_clineno = __LINE__; goto __pyx_L6_except_error;}
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
       __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
@@ -141823,7 +141434,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
     __pyx_L11_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":670
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":669
  *         python.PyMem_Free(params)
  *         raise
  *     params[i] = NULL             # <<<<<<<<<<<<<<
@@ -141832,7 +141443,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
  */
   (__pyx_v_params[__pyx_v_i]) = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":671
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":670
  *         raise
  *     params[i] = NULL
  *     params_ptr[0] = params             # <<<<<<<<<<<<<<
@@ -141859,7 +141470,7 @@ static PyObject *__pyx_f_4lxml_5etree__convert_xslt_parameters(xsltTransformCont
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":673
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":672
  *     params_ptr[0] = params
  * 
  * cdef XSLT _copyXSLT(XSLT stylesheet):             # <<<<<<<<<<<<<<
@@ -141880,7 +141491,7 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_copyXSLT", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":676
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":675
  *     cdef XSLT new_xslt
  *     cdef xmlDoc* c_doc
  *     assert stylesheet._c_style is not NULL, "XSLT stylesheet not initialised"             # <<<<<<<<<<<<<<
@@ -141889,25 +141500,25 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_stylesheet->_c_style != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_363));
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_366));
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 675; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":677
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":676
  *     cdef xmlDoc* c_doc
  *     assert stylesheet._c_style is not NULL, "XSLT stylesheet not initialised"
  *     new_xslt = XSLT.__new__(XSLT)             # <<<<<<<<<<<<<<
  *     new_xslt._access_control = stylesheet._access_control
  *     new_xslt._error_log = _ErrorLog()
  */
-  __pyx_t_1 = __pyx_tp_new_4lxml_5etree_XSLT(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XSLT)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_tp_new_4lxml_5etree_XSLT(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XSLT)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree_XSLT)))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 677; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree_XSLT)))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 676; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_new_xslt = ((struct __pyx_obj_4lxml_5etree_XSLT *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":678
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":677
  *     assert stylesheet._c_style is not NULL, "XSLT stylesheet not initialised"
  *     new_xslt = XSLT.__new__(XSLT)
  *     new_xslt._access_control = stylesheet._access_control             # <<<<<<<<<<<<<<
@@ -141922,14 +141533,14 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
   __pyx_v_new_xslt->_access_control = ((struct __pyx_obj_4lxml_5etree_XSLTAccessControl *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":679
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":678
  *     new_xslt = XSLT.__new__(XSLT)
  *     new_xslt._access_control = stylesheet._access_control
  *     new_xslt._error_log = _ErrorLog()             # <<<<<<<<<<<<<<
  *     new_xslt._context = stylesheet._context._copy()
  * 
  */
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_new_xslt->_error_log);
@@ -141937,30 +141548,30 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
   __pyx_v_new_xslt->_error_log = ((struct __pyx_obj_4lxml_5etree__ErrorLog *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":680
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":679
  *     new_xslt._access_control = stylesheet._access_control
  *     new_xslt._error_log = _ErrorLog()
  *     new_xslt._context = stylesheet._context._copy()             # <<<<<<<<<<<<<<
  * 
  *     new_xslt._xslt_resolver_context = stylesheet._xslt_resolver_context._copy()
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_12_XSLTContext__copy(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_stylesheet->_context))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_12_XSLTContext__copy(((struct __pyx_obj_4lxml_5etree__BaseContext *)__pyx_v_stylesheet->_context))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__XSLTContext))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 680; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_5etree__XSLTContext))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_new_xslt->_context);
   __Pyx_DECREF(((PyObject *)__pyx_v_new_xslt->_context));
   __pyx_v_new_xslt->_context = ((struct __pyx_obj_4lxml_5etree__XSLTContext *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":682
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":681
  *     new_xslt._context = stylesheet._context._copy()
  * 
  *     new_xslt._xslt_resolver_context = stylesheet._xslt_resolver_context._copy()             # <<<<<<<<<<<<<<
  *     new_xslt._xslt_resolver_context._c_style_doc = _copyDoc(
  *         stylesheet._xslt_resolver_context._c_style_doc, 1)
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_20_XSLTResolverContext__copy(__pyx_v_stylesheet->_xslt_resolver_context)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree_20_XSLTResolverContext__copy(__pyx_v_stylesheet->_xslt_resolver_context)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_new_xslt->_xslt_resolver_context);
@@ -141968,16 +141579,16 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
   __pyx_v_new_xslt->_xslt_resolver_context = ((struct __pyx_obj_4lxml_5etree__XSLTResolverContext *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":684
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":683
  *     new_xslt._xslt_resolver_context = stylesheet._xslt_resolver_context._copy()
  *     new_xslt._xslt_resolver_context._c_style_doc = _copyDoc(
  *         stylesheet._xslt_resolver_context._c_style_doc, 1)             # <<<<<<<<<<<<<<
  * 
  *     c_doc = _copyDoc(stylesheet._c_style.doc, 1)
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDoc(__pyx_v_stylesheet->_xslt_resolver_context->_c_style_doc, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDoc(__pyx_v_stylesheet->_xslt_resolver_context->_c_style_doc, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":683
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":682
  * 
  *     new_xslt._xslt_resolver_context = stylesheet._xslt_resolver_context._copy()
  *     new_xslt._xslt_resolver_context._c_style_doc = _copyDoc(             # <<<<<<<<<<<<<<
@@ -141986,17 +141597,17 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
  */
   __pyx_v_new_xslt->_xslt_resolver_context->_c_style_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":686
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":685
  *         stylesheet._xslt_resolver_context._c_style_doc, 1)
  * 
  *     c_doc = _copyDoc(stylesheet._c_style.doc, 1)             # <<<<<<<<<<<<<<
  *     new_xslt._c_style = xslt.xsltParseStylesheetDoc(c_doc)
  *     if new_xslt._c_style is NULL:
  */
-  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDoc(__pyx_v_stylesheet->_c_style->doc, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 686; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_5etree__copyDoc(__pyx_v_stylesheet->_c_style->doc, 1); if (unlikely(__pyx_t_2 == NULL)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 685; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_c_doc = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":687
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":686
  * 
  *     c_doc = _copyDoc(stylesheet._c_style.doc, 1)
  *     new_xslt._c_style = xslt.xsltParseStylesheetDoc(c_doc)             # <<<<<<<<<<<<<<
@@ -142005,7 +141616,7 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
  */
   __pyx_v_new_xslt->_c_style = xsltParseStylesheetDoc(__pyx_v_c_doc);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":688
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":687
  *     c_doc = _copyDoc(stylesheet._c_style.doc, 1)
  *     new_xslt._c_style = xslt.xsltParseStylesheetDoc(c_doc)
  *     if new_xslt._c_style is NULL:             # <<<<<<<<<<<<<<
@@ -142015,7 +141626,7 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
   __pyx_t_3 = ((__pyx_v_new_xslt->_c_style == NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":689
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":688
  *     new_xslt._c_style = xslt.xsltParseStylesheetDoc(c_doc)
  *     if new_xslt._c_style is NULL:
  *         tree.xmlFreeDoc(c_doc)             # <<<<<<<<<<<<<<
@@ -142024,19 +141635,19 @@ static struct __pyx_obj_4lxml_5etree_XSLT *__pyx_f_4lxml_5etree__copyXSLT(struct
  */
     xmlFreeDoc(__pyx_v_c_doc);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":690
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":689
  *     if new_xslt._c_style is NULL:
  *         tree.xmlFreeDoc(c_doc)
  *         raise MemoryError()             # <<<<<<<<<<<<<<
  * 
  *     return new_xslt
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":692
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":691
  *         raise MemoryError()
  * 
  *     return new_xslt             # <<<<<<<<<<<<<<
@@ -142075,7 +141686,7 @@ static int __pyx_pw_4lxml_5etree_15_XSLTResultTree_1__cinit__(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":701
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":700
  *     cdef Py_ssize_t _buffer_len
  *     cdef Py_ssize_t _buffer_refcnt
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -142088,7 +141699,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree___cinit__(struct __pyx_obj_4l
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":702
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":701
  *     cdef Py_ssize_t _buffer_refcnt
  *     def __cinit__(self):
  *         self._buffer = NULL             # <<<<<<<<<<<<<<
@@ -142097,7 +141708,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree___cinit__(struct __pyx_obj_4l
  */
   __pyx_v_self->_buffer = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":703
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":702
  *     def __cinit__(self):
  *         self._buffer = NULL
  *         self._buffer_len = 0             # <<<<<<<<<<<<<<
@@ -142106,7 +141717,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree___cinit__(struct __pyx_obj_4l
  */
   __pyx_v_self->_buffer_len = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":704
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":703
  *         self._buffer = NULL
  *         self._buffer_len = 0
  *         self._buffer_refcnt = 0             # <<<<<<<<<<<<<<
@@ -142120,7 +141731,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree___cinit__(struct __pyx_obj_4l
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":706
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":705
  *         self._buffer_refcnt = 0
  * 
  *     cdef _saveToStringAndSize(self, xmlChar** s, int* l):             # <<<<<<<<<<<<<<
@@ -142141,7 +141752,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_saveToStringAndSize", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":709
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":708
  *         cdef _Document doc
  *         cdef int r
  *         if self._context_node is not None:             # <<<<<<<<<<<<<<
@@ -142152,7 +141763,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":710
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":709
  *         cdef int r
  *         if self._context_node is not None:
  *             doc = self._context_node._doc             # <<<<<<<<<<<<<<
@@ -142167,7 +141778,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":712
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":711
  *             doc = self._context_node._doc
  *         else:
  *             doc = None             # <<<<<<<<<<<<<<
@@ -142179,7 +141790,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":713
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":712
  *         else:
  *             doc = None
  *         if doc is None:             # <<<<<<<<<<<<<<
@@ -142190,7 +141801,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":714
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":713
  *             doc = None
  *         if doc is None:
  *             doc = self._doc             # <<<<<<<<<<<<<<
@@ -142199,11 +141810,10 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
  */
     __pyx_t_3 = ((PyObject *)__pyx_v_self->__pyx_base._doc);
     __Pyx_INCREF(__pyx_t_3);
-    __Pyx_DECREF(((PyObject *)__pyx_v_doc));
-    __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_doc, ((struct LxmlDocument *)__pyx_t_3));
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":715
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":714
  *         if doc is None:
  *             doc = self._doc
  *             if doc is None:             # <<<<<<<<<<<<<<
@@ -142214,7 +141824,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":716
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":715
  *             doc = self._doc
  *             if doc is None:
  *                 s[0] = NULL             # <<<<<<<<<<<<<<
@@ -142223,7 +141833,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
  */
       (__pyx_v_s[0]) = NULL;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":717
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":716
  *             if doc is None:
  *                 s[0] = NULL
  *                 return             # <<<<<<<<<<<<<<
@@ -142240,7 +141850,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":718
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":717
  *                 s[0] = NULL
  *                 return
  *         with nogil:             # <<<<<<<<<<<<<<
@@ -142254,7 +141864,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
       #endif
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":720
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":719
  *         with nogil:
  *             r = xslt.xsltSaveResultToString(s, l, doc._c_doc,
  *                                             self._xslt._c_style)             # <<<<<<<<<<<<<<
@@ -142264,7 +141874,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
         __pyx_v_r = xsltSaveResultToString(__pyx_v_s, __pyx_v_l, __pyx_v_doc->_c_doc, __pyx_v_self->_xslt->_c_style);
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":718
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":717
  *                 s[0] = NULL
  *                 return
  *         with nogil:             # <<<<<<<<<<<<<<
@@ -142278,7 +141888,7 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
       }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":721
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":720
  *             r = xslt.xsltSaveResultToString(s, l, doc._c_doc,
  *                                             self._xslt._c_style)
  *         if r == -1:             # <<<<<<<<<<<<<<
@@ -142288,14 +141898,14 @@ static PyObject *__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(str
   __pyx_t_2 = ((__pyx_v_r == -1) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":722
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":721
  *                                             self._xslt._c_style)
  *         if r == -1:
  *             raise MemoryError()             # <<<<<<<<<<<<<<
  * 
  *     def __str__(self):
  */
-    PyErr_NoMemory(); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 722; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_NoMemory(); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L9;
   }
   __pyx_L9:;
@@ -142324,7 +141934,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15_XSLTResultTree_3__str__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":724
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":723
  *             raise MemoryError()
  * 
  *     def __str__(self):             # <<<<<<<<<<<<<<
@@ -142346,7 +141956,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__str__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":725
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":724
  * 
  *     def __str__(self):
  *         cdef xmlChar* s = NULL             # <<<<<<<<<<<<<<
@@ -142355,7 +141965,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  */
   __pyx_v_s = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":726
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":725
  *     def __str__(self):
  *         cdef xmlChar* s = NULL
  *         cdef int l = 0             # <<<<<<<<<<<<<<
@@ -142364,7 +141974,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  */
   __pyx_v_l = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":727
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":726
  *         cdef xmlChar* s = NULL
  *         cdef int l = 0
  *         if python.IS_PYTHON3:             # <<<<<<<<<<<<<<
@@ -142374,7 +141984,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
   __pyx_t_1 = (IS_PYTHON3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":728
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":727
  *         cdef int l = 0
  *         if python.IS_PYTHON3:
  *             return self.__unicode__()             # <<<<<<<<<<<<<<
@@ -142382,9 +141992,9 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  *         if s is NULL:
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____unicode__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s____unicode__); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __pyx_r = __pyx_t_3;
@@ -142394,18 +142004,18 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":729
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":728
  *         if python.IS_PYTHON3:
  *             return self.__unicode__()
  *         self._saveToStringAndSize(&s, &l)             # <<<<<<<<<<<<<<
  *         if s is NULL:
  *             return ''
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(__pyx_v_self, (&__pyx_v_s), (&__pyx_v_l)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(__pyx_v_self, (&__pyx_v_s), (&__pyx_v_l)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":730
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":729
  *             return self.__unicode__()
  *         self._saveToStringAndSize(&s, &l)
  *         if s is NULL:             # <<<<<<<<<<<<<<
@@ -142415,7 +142025,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
   __pyx_t_1 = ((__pyx_v_s == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":731
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":730
  *         self._saveToStringAndSize(&s, &l)
  *         if s is NULL:
  *             return ''             # <<<<<<<<<<<<<<
@@ -142430,7 +142040,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":733
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":732
  *             return ''
  *         # we must not use 'funicode' here as this is not always UTF-8
  *         try:             # <<<<<<<<<<<<<<
@@ -142439,21 +142049,21 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":734
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":733
  *         # we must not use 'funicode' here as this is not always UTF-8
  *         try:
  *             result = <bytes>s[:l]             # <<<<<<<<<<<<<<
  *         finally:
  *             tree.xmlFree(s)
  */
-    __pyx_t_3 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_l - 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L6;}
+    __pyx_t_3 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_s) + 0, __pyx_v_l - 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 733; __pyx_clineno = __LINE__; goto __pyx_L6;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_3)));
     __pyx_v_result = ((PyObject*)__pyx_t_3);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":736
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":735
  *             result = <bytes>s[:l]
  *         finally:
  *             tree.xmlFree(s)             # <<<<<<<<<<<<<<
@@ -142488,7 +142098,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_2__str__(struct __pyx_o
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":737
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":736
  *         finally:
  *             tree.xmlFree(s)
  *         return result             # <<<<<<<<<<<<<<
@@ -142525,7 +142135,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15_XSLTResultTree_5__unicode__(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":739
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":738
  *         return result
  * 
  *     def __unicode__(self):             # <<<<<<<<<<<<<<
@@ -142548,7 +142158,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__unicode__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":741
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":740
  *     def __unicode__(self):
  *         cdef xmlChar* encoding
  *         cdef xmlChar* s = NULL             # <<<<<<<<<<<<<<
@@ -142557,7 +142167,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
  */
   __pyx_v_s = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":742
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":741
  *         cdef xmlChar* encoding
  *         cdef xmlChar* s = NULL
  *         cdef int l = 0             # <<<<<<<<<<<<<<
@@ -142566,18 +142176,18 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
  */
   __pyx_v_l = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":743
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":742
  *         cdef xmlChar* s = NULL
  *         cdef int l = 0
  *         self._saveToStringAndSize(&s, &l)             # <<<<<<<<<<<<<<
  *         if s is NULL:
  *             return u''
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(__pyx_v_self, (&__pyx_v_s), (&__pyx_v_l)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(__pyx_v_self, (&__pyx_v_s), (&__pyx_v_l)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":744
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":743
  *         cdef int l = 0
  *         self._saveToStringAndSize(&s, &l)
  *         if s is NULL:             # <<<<<<<<<<<<<<
@@ -142587,7 +142197,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
   __pyx_t_2 = ((__pyx_v_s == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":745
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":744
  *         self._saveToStringAndSize(&s, &l)
  *         if s is NULL:
  *             return u''             # <<<<<<<<<<<<<<
@@ -142602,7 +142212,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":746
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":745
  *         if s is NULL:
  *             return u''
  *         encoding = self._xslt._c_style.encoding             # <<<<<<<<<<<<<<
@@ -142612,7 +142222,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
   __pyx_t_3 = __pyx_v_self->_xslt->_c_style->encoding;
   __pyx_v_encoding = __pyx_t_3;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":747
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":746
  *             return u''
  *         encoding = self._xslt._c_style.encoding
  *         try:             # <<<<<<<<<<<<<<
@@ -142621,7 +142231,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
  */
   /*try:*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":748
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":747
  *         encoding = self._xslt._c_style.encoding
  *         try:
  *             if encoding is NULL:             # <<<<<<<<<<<<<<
@@ -142631,14 +142241,14 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
     __pyx_t_2 = ((__pyx_v_encoding == NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":749
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":748
  *         try:
  *             if encoding is NULL:
  *                 result = s[:l].decode('UTF-8')             # <<<<<<<<<<<<<<
  *             else:
  *                 result = s[:l].decode(encoding)
  */
-      __pyx_t_1 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_l, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L5;}
+      __pyx_t_1 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_l, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 748; __pyx_clineno = __LINE__; goto __pyx_L5;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
       __pyx_v_result = ((PyObject *)__pyx_t_1);
       __pyx_t_1 = 0;
@@ -142646,14 +142256,14 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":751
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":750
  *                 result = s[:l].decode('UTF-8')
  *             else:
  *                 result = s[:l].decode(encoding)             # <<<<<<<<<<<<<<
  *         finally:
  *             tree.xmlFree(s)
  */
-      __pyx_t_1 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_l, ((char *)__pyx_v_encoding), NULL, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 751; __pyx_clineno = __LINE__; goto __pyx_L5;}
+      __pyx_t_1 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_v_s), 0, __pyx_v_l, ((char *)__pyx_v_encoding), NULL, NULL)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L5;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_1));
       __pyx_v_result = ((PyObject *)__pyx_t_1);
       __pyx_t_1 = 0;
@@ -142661,7 +142271,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
     __pyx_L7:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":753
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":752
  *                 result = s[:l].decode(encoding)
  *         finally:
  *             tree.xmlFree(s)             # <<<<<<<<<<<<<<
@@ -142695,7 +142305,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
     }
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":754
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":753
  *         finally:
  *             tree.xmlFree(s)
  *         return _stripEncodingDeclaration(result)             # <<<<<<<<<<<<<<
@@ -142703,7 +142313,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_4__unicode__(struct __p
  *     def __getbuffer__(self, Py_buffer* buffer, int flags):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_5etree__stripEncodingDeclaration(__pyx_v_result); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__stripEncodingDeclaration(__pyx_v_result); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -142733,7 +142343,7 @@ static CYTHON_UNUSED int __pyx_pw_4lxml_5etree_15_XSLTResultTree_7__getbuffer__(
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":756
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":755
  *         return _stripEncodingDeclaration(result)
  * 
  *     def __getbuffer__(self, Py_buffer* buffer, int flags):             # <<<<<<<<<<<<<<
@@ -142760,7 +142370,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
     __Pyx_GIVEREF(__pyx_v_buffer->obj);
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":757
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":756
  * 
  *     def __getbuffer__(self, Py_buffer* buffer, int flags):
  *         cdef int l = 0             # <<<<<<<<<<<<<<
@@ -142769,7 +142379,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
   __pyx_v_l = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":758
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":757
  *     def __getbuffer__(self, Py_buffer* buffer, int flags):
  *         cdef int l = 0
  *         if buffer is NULL:             # <<<<<<<<<<<<<<
@@ -142779,7 +142389,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   __pyx_t_1 = ((__pyx_v_buffer == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":759
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":758
  *         cdef int l = 0
  *         if buffer is NULL:
  *             return             # <<<<<<<<<<<<<<
@@ -142792,7 +142402,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":760
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":759
  *         if buffer is NULL:
  *             return
  *         if self._buffer is NULL or flags & python.PyBUF_WRITABLE:             # <<<<<<<<<<<<<<
@@ -142807,18 +142417,18 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":761
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":760
  *             return
  *         if self._buffer is NULL or flags & python.PyBUF_WRITABLE:
  *             self._saveToStringAndSize(<xmlChar**>&buffer.buf, &l)             # <<<<<<<<<<<<<<
  *             buffer.len = l
  *             if self._buffer is NULL and not flags & python.PyBUF_WRITABLE:
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(__pyx_v_self, ((xmlChar **)(&__pyx_v_buffer->buf)), (&__pyx_v_l)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize(__pyx_v_self, ((xmlChar **)(&__pyx_v_buffer->buf)), (&__pyx_v_l)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":762
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":761
  *         if self._buffer is NULL or flags & python.PyBUF_WRITABLE:
  *             self._saveToStringAndSize(<xmlChar**>&buffer.buf, &l)
  *             buffer.len = l             # <<<<<<<<<<<<<<
@@ -142827,7 +142437,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
     __pyx_v_buffer->len = __pyx_v_l;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":763
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":762
  *             self._saveToStringAndSize(<xmlChar**>&buffer.buf, &l)
  *             buffer.len = l
  *             if self._buffer is NULL and not flags & python.PyBUF_WRITABLE:             # <<<<<<<<<<<<<<
@@ -142843,7 +142453,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
     }
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":764
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":763
  *             buffer.len = l
  *             if self._buffer is NULL and not flags & python.PyBUF_WRITABLE:
  *                 self._buffer = <xmlChar*>buffer.buf             # <<<<<<<<<<<<<<
@@ -142852,7 +142462,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
       __pyx_v_self->_buffer = ((xmlChar *)__pyx_v_buffer->buf);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":765
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":764
  *             if self._buffer is NULL and not flags & python.PyBUF_WRITABLE:
  *                 self._buffer = <xmlChar*>buffer.buf
  *                 self._buffer_len = l             # <<<<<<<<<<<<<<
@@ -142861,7 +142471,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
       __pyx_v_self->_buffer_len = __pyx_v_l;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":766
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":765
  *                 self._buffer = <xmlChar*>buffer.buf
  *                 self._buffer_len = l
  *                 self._buffer_refcnt = 1             # <<<<<<<<<<<<<<
@@ -142876,7 +142486,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":768
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":767
  *                 self._buffer_refcnt = 1
  *         else:
  *             buffer.buf = self._buffer             # <<<<<<<<<<<<<<
@@ -142886,7 +142496,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
     __pyx_t_5 = __pyx_v_self->_buffer;
     __pyx_v_buffer->buf = __pyx_t_5;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":769
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":768
  *         else:
  *             buffer.buf = self._buffer
  *             buffer.len = self._buffer_len             # <<<<<<<<<<<<<<
@@ -142896,7 +142506,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
     __pyx_t_6 = __pyx_v_self->_buffer_len;
     __pyx_v_buffer->len = __pyx_t_6;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":770
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":769
  *             buffer.buf = self._buffer
  *             buffer.len = self._buffer_len
  *             self._buffer_refcnt += 1             # <<<<<<<<<<<<<<
@@ -142907,7 +142517,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":771
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":770
  *             buffer.len = self._buffer_len
  *             self._buffer_refcnt += 1
  *         if flags & python.PyBUF_WRITABLE:             # <<<<<<<<<<<<<<
@@ -142917,7 +142527,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   __pyx_t_4 = ((__pyx_v_flags & PyBUF_WRITABLE) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":772
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":771
  *             self._buffer_refcnt += 1
  *         if flags & python.PyBUF_WRITABLE:
  *             buffer.readonly = 0             # <<<<<<<<<<<<<<
@@ -142929,7 +142539,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":774
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":773
  *             buffer.readonly = 0
  *         else:
  *             buffer.readonly = 1             # <<<<<<<<<<<<<<
@@ -142940,7 +142550,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":775
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":774
  *         else:
  *             buffer.readonly = 1
  *         if flags & python.PyBUF_FORMAT:             # <<<<<<<<<<<<<<
@@ -142950,7 +142560,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   __pyx_t_4 = ((__pyx_v_flags & PyBUF_FORMAT) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":776
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":775
  *             buffer.readonly = 1
  *         if flags & python.PyBUF_FORMAT:
  *             buffer.format = "B"             # <<<<<<<<<<<<<<
@@ -142962,7 +142572,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":778
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":777
  *             buffer.format = "B"
  *         else:
  *             buffer.format = NULL             # <<<<<<<<<<<<<<
@@ -142973,7 +142583,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":779
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":778
  *         else:
  *             buffer.format = NULL
  *         buffer.ndim = 0             # <<<<<<<<<<<<<<
@@ -142982,7 +142592,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
   __pyx_v_buffer->ndim = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":780
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":779
  *             buffer.format = NULL
  *         buffer.ndim = 0
  *         buffer.shape = NULL             # <<<<<<<<<<<<<<
@@ -142991,7 +142601,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
   __pyx_v_buffer->shape = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":781
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":780
  *         buffer.ndim = 0
  *         buffer.shape = NULL
  *         buffer.strides = NULL             # <<<<<<<<<<<<<<
@@ -143000,7 +142610,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
   __pyx_v_buffer->strides = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":782
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":781
  *         buffer.shape = NULL
  *         buffer.strides = NULL
  *         buffer.suboffsets = NULL             # <<<<<<<<<<<<<<
@@ -143009,7 +142619,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
   __pyx_v_buffer->suboffsets = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":783
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":782
  *         buffer.strides = NULL
  *         buffer.suboffsets = NULL
  *         buffer.itemsize = 1             # <<<<<<<<<<<<<<
@@ -143018,7 +142628,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
   __pyx_v_buffer->itemsize = 1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":784
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":783
  *         buffer.suboffsets = NULL
  *         buffer.itemsize = 1
  *         buffer.internal = NULL             # <<<<<<<<<<<<<<
@@ -143027,7 +142637,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
  */
   __pyx_v_buffer->internal = NULL;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":785
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":784
  *         buffer.itemsize = 1
  *         buffer.internal = NULL
  *         if buffer.obj is not self: # set by Cython?             # <<<<<<<<<<<<<<
@@ -143038,7 +142648,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_6__getbuffer__(struct __pyx_o
   __pyx_t_2 = (__pyx_t_4 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":786
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":785
  *         buffer.internal = NULL
  *         if buffer.obj is not self: # set by Cython?
  *             buffer.obj = self             # <<<<<<<<<<<<<<
@@ -143084,7 +142694,7 @@ static CYTHON_UNUSED void __pyx_pw_4lxml_5etree_15_XSLTResultTree_9__releasebuff
   __Pyx_RefNannyFinishContext();
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":788
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":787
  *             buffer.obj = self
  * 
  *     def __releasebuffer__(self, Py_buffer* buffer):             # <<<<<<<<<<<<<<
@@ -143097,7 +142707,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
   int __pyx_t_1;
   __Pyx_RefNannySetupContext("__releasebuffer__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":789
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":788
  * 
  *     def __releasebuffer__(self, Py_buffer* buffer):
  *         if buffer is NULL:             # <<<<<<<<<<<<<<
@@ -143107,7 +142717,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
   __pyx_t_1 = ((__pyx_v_buffer == NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":790
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":789
  *     def __releasebuffer__(self, Py_buffer* buffer):
  *         if buffer is NULL:
  *             return             # <<<<<<<<<<<<<<
@@ -143119,7 +142729,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":791
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":790
  *         if buffer is NULL:
  *             return
  *         if <xmlChar*>buffer.buf is self._buffer:             # <<<<<<<<<<<<<<
@@ -143129,7 +142739,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
   __pyx_t_1 = ((((xmlChar *)__pyx_v_buffer->buf) == __pyx_v_self->_buffer) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":792
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":791
  *             return
  *         if <xmlChar*>buffer.buf is self._buffer:
  *             self._buffer_refcnt -= 1             # <<<<<<<<<<<<<<
@@ -143138,7 +142748,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
  */
     __pyx_v_self->_buffer_refcnt = (__pyx_v_self->_buffer_refcnt - 1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":793
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":792
  *         if <xmlChar*>buffer.buf is self._buffer:
  *             self._buffer_refcnt -= 1
  *             if self._buffer_refcnt == 0:             # <<<<<<<<<<<<<<
@@ -143148,7 +142758,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
     __pyx_t_1 = ((__pyx_v_self->_buffer_refcnt == 0) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":794
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":793
  *             self._buffer_refcnt -= 1
  *             if self._buffer_refcnt == 0:
  *                 tree.xmlFree(<char*>self._buffer)             # <<<<<<<<<<<<<<
@@ -143157,7 +142767,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
  */
       xmlFree(((char *)__pyx_v_self->_buffer));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":795
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":794
  *             if self._buffer_refcnt == 0:
  *                 tree.xmlFree(<char*>self._buffer)
  *                 self._buffer = NULL             # <<<<<<<<<<<<<<
@@ -143172,7 +142782,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":797
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":796
  *                 self._buffer = NULL
  *         else:
  *             tree.xmlFree(<char*>buffer.buf)             # <<<<<<<<<<<<<<
@@ -143183,7 +142793,7 @@ static void __pyx_pf_4lxml_5etree_15_XSLTResultTree_8__releasebuffer__(struct __
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":798
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":797
  *         else:
  *             tree.xmlFree(<char*>buffer.buf)
  *         buffer.buf = NULL             # <<<<<<<<<<<<<<
@@ -143207,7 +142817,7 @@ static PyObject *__pyx_pw_4lxml_5etree_15_XSLTResultTree_12xslt_profile_1__get__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":803
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":802
  *         u"""Return an ElementTree with profiling data for the stylesheet run.
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -143229,7 +142839,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":805
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":804
  *         def __get__(self):
  *             cdef object root
  *             if self._profile is None:             # <<<<<<<<<<<<<<
@@ -143240,7 +142850,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":806
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":805
  *             cdef object root
  *             if self._profile is None:
  *                 return None             # <<<<<<<<<<<<<<
@@ -143255,19 +142865,19 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":807
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":806
  *             if self._profile is None:
  *                 return None
  *             root = self._profile.getroot()             # <<<<<<<<<<<<<<
  *             if root is None:
  *                 return None
  */
-  __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_profile); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __pyx_f_4lxml_5etree_9_Document_getroot(__pyx_v_self->_profile); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 806; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_v_root = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":808
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":807
  *                 return None
  *             root = self._profile.getroot()
  *             if root is None:             # <<<<<<<<<<<<<<
@@ -143278,7 +142888,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":809
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":808
  *             root = self._profile.getroot()
  *             if root is None:
  *                 return None             # <<<<<<<<<<<<<<
@@ -143293,7 +142903,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":810
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":809
  *             if root is None:
  *                 return None
  *             return ElementTree(root)             # <<<<<<<<<<<<<<
@@ -143301,14 +142911,14 @@ static PyObject *__pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile___get__(
  *         def __del__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__ElementTree); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__ElementTree); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(__pyx_v_root);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_root);
   __Pyx_GIVEREF(__pyx_v_root);
-  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -143342,7 +142952,7 @@ static int __pyx_pw_4lxml_5etree_15_XSLTResultTree_12xslt_profile_3__del__(PyObj
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":812
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":811
  *             return ElementTree(root)
  * 
  *         def __del__(self):             # <<<<<<<<<<<<<<
@@ -143355,7 +142965,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile_2__del__(struc
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__del__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":813
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":812
  * 
  *         def __del__(self):
  *             self._profile = None             # <<<<<<<<<<<<<<
@@ -143373,7 +142983,7 @@ static int __pyx_pf_4lxml_5etree_15_XSLTResultTree_12xslt_profile_2__del__(struc
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":815
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":814
  *             self._profile = None
  * 
  * cdef _xsltResultTreeFactory(_Document doc, XSLT xslt, _Document profile):             # <<<<<<<<<<<<<<
@@ -143392,14 +143002,14 @@ static PyObject *__pyx_f_4lxml_5etree__xsltResultTreeFactory(struct LxmlDocument
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_xsltResultTreeFactory", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":817
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":816
  * cdef _xsltResultTreeFactory(_Document doc, XSLT xslt, _Document profile):
  *     cdef _XSLTResultTree result
  *     result = <_XSLTResultTree>_newElementTree(doc, None, _XSLTResultTree)             # <<<<<<<<<<<<<<
  *     result._xslt = xslt
  *     result._profile = profile
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newElementTree(__pyx_v_doc, ((struct LxmlElement *)Py_None), ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XSLTResultTree)))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 817; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newElementTree(__pyx_v_doc, ((struct LxmlElement *)Py_None), ((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__XSLTResultTree)))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 816; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = __pyx_t_1;
   __Pyx_INCREF(__pyx_t_2);
@@ -143407,7 +143017,7 @@ static PyObject *__pyx_f_4lxml_5etree__xsltResultTreeFactory(struct LxmlDocument
   __pyx_v_result = ((struct __pyx_obj_4lxml_5etree__XSLTResultTree *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":818
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":817
  *     cdef _XSLTResultTree result
  *     result = <_XSLTResultTree>_newElementTree(doc, None, _XSLTResultTree)
  *     result._xslt = xslt             # <<<<<<<<<<<<<<
@@ -143420,7 +143030,7 @@ static PyObject *__pyx_f_4lxml_5etree__xsltResultTreeFactory(struct LxmlDocument
   __Pyx_DECREF(((PyObject *)__pyx_v_result->_xslt));
   __pyx_v_result->_xslt = __pyx_v_xslt;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":819
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":818
  *     result = <_XSLTResultTree>_newElementTree(doc, None, _XSLTResultTree)
  *     result._xslt = xslt
  *     result._profile = profile             # <<<<<<<<<<<<<<
@@ -143433,7 +143043,7 @@ static PyObject *__pyx_f_4lxml_5etree__xsltResultTreeFactory(struct LxmlDocument
   __Pyx_DECREF(((PyObject *)__pyx_v_result->_profile));
   __pyx_v_result->_profile = __pyx_v_profile;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":820
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":819
  *     result._xslt = xslt
  *     result._profile = profile
  *     return result             # <<<<<<<<<<<<<<
@@ -143459,7 +143069,7 @@ static PyObject *__pyx_f_4lxml_5etree__xsltResultTreeFactory(struct LxmlDocument
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":838
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":837
  * cdef XPath __findStylesheetByID = None
  * 
  * cdef _findStylesheetByID(_Document doc, id):             # <<<<<<<<<<<<<<
@@ -143480,7 +143090,7 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_findStylesheetByID", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":840
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":839
  * cdef _findStylesheetByID(_Document doc, id):
  *     global __findStylesheetByID
  *     if __findStylesheetByID is None:             # <<<<<<<<<<<<<<
@@ -143491,41 +143101,40 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":841
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":840
  *     global __findStylesheetByID
  *     if __findStylesheetByID is None:
  *         __findStylesheetByID = XPath(             # <<<<<<<<<<<<<<
  *             u"//xsl:stylesheet[@xml:id = $id]",
  *             namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})
  */
-    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":843
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":842
  *         __findStylesheetByID = XPath(
  *             u"//xsl:stylesheet[@xml:id = $id]",
  *             namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})             # <<<<<<<<<<<<<<
  *     return __findStylesheetByID(doc, id=id)
  * 
  */
-    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_u__xsl), ((PyObject *)__pyx_kp_u_368)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_u__xsl), ((PyObject *)__pyx_kp_u_371)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_t_4)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_367), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_370), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID));
-    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID));
+    __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___findStylesheetByID, ((struct __pyx_obj_4lxml_5etree_XPath *)__pyx_t_4));
     __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_v_4lxml_5etree___findStylesheetByID = ((struct __pyx_obj_4lxml_5etree_XPath *)__pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":844
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":843
  *             u"//xsl:stylesheet[@xml:id = $id]",
  *             namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})
  *     return __findStylesheetByID(doc, id=id)             # <<<<<<<<<<<<<<
@@ -143533,15 +143142,15 @@ static PyObject *__pyx_f_4lxml_5etree__findStylesheetByID(struct LxmlDocument *_
  * cdef class _XSLTProcessingInstruction(PIBase):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(((PyObject *)__pyx_v_doc));
   PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_v_doc));
   __Pyx_GIVEREF(((PyObject *)__pyx_v_doc));
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__id), __pyx_v_id) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_3, ((PyObject *)__pyx_n_s__id), __pyx_v_id) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID), ((PyObject *)__pyx_t_4), ((PyObject *)__pyx_t_3)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -143578,7 +143187,7 @@ static PyObject *__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_1parseXSL(Py
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__parser,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":847
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":846
  * 
  * cdef class _XSLTProcessingInstruction(PIBase):
  *     def parseXSL(self, parser=None):             # <<<<<<<<<<<<<<
@@ -143603,7 +143212,7 @@ static PyObject *__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_1parseXSL(Py
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parseXSL") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parseXSL") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -143616,7 +143225,7 @@ static PyObject *__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_1parseXSL(Py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("parseXSL", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("parseXSL", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._XSLTProcessingInstruction.parseXSL", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -143651,16 +143260,16 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("parseXSL", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":863
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":862
  *         cdef const_xmlChar* c_href
  *         cdef xmlAttr* c_attr
  *         _assertValidNode(self)             # <<<<<<<<<<<<<<
  *         if self._c_node.content is NULL:
  *             raise ValueError, u"PI lacks content"
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 863; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidNode(((struct LxmlElement *)__pyx_v_self)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 862; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":864
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":863
  *         cdef xmlAttr* c_attr
  *         _assertValidNode(self)
  *         if self._c_node.content is NULL:             # <<<<<<<<<<<<<<
@@ -143670,20 +143279,20 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
   __pyx_t_2 = ((__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->content == NULL) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":865
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":864
  *         _assertValidNode(self)
  *         if self._c_node.content is NULL:
  *             raise ValueError, u"PI lacks content"             # <<<<<<<<<<<<<<
  *         hrefs = _FIND_PI_HREF(u' ' + (<unsigned char*>self._c_node.content).decode('UTF-8'))
  *         if len(hrefs) != 1:
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_369), 0, 0);
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_372), 0, 0);
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":866
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":865
  *         if self._c_node.content is NULL:
  *             raise ValueError, u"PI lacks content"
  *         hrefs = _FIND_PI_HREF(u' ' + (<unsigned char*>self._c_node.content).decode('UTF-8'))             # <<<<<<<<<<<<<<
@@ -143691,72 +143300,71 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *             raise ValueError, u"malformed PI attributes"
  */
   __pyx_t_3 = ((unsigned char *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->content);
-  __pyx_t_4 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_3), 0, strlen(((char *)__pyx_t_3)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_3), 0, strlen(((char *)__pyx_t_3)), NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
   __Pyx_GIVEREF(__pyx_t_5);
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree__FIND_PI_HREF, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree__FIND_PI_HREF, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 865; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_v_hrefs = __pyx_t_5;
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":867
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":866
  *             raise ValueError, u"PI lacks content"
  *         hrefs = _FIND_PI_HREF(u' ' + (<unsigned char*>self._c_node.content).decode('UTF-8'))
  *         if len(hrefs) != 1:             # <<<<<<<<<<<<<<
  *             raise ValueError, u"malformed PI attributes"
  *         hrefs = hrefs[0]
  */
-  __pyx_t_6 = PyObject_Length(__pyx_v_hrefs); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_Length(__pyx_v_hrefs); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 866; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_2 = ((__pyx_t_6 != 1) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":868
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":867
  *         hrefs = _FIND_PI_HREF(u' ' + (<unsigned char*>self._c_node.content).decode('UTF-8'))
  *         if len(hrefs) != 1:
  *             raise ValueError, u"malformed PI attributes"             # <<<<<<<<<<<<<<
  *         hrefs = hrefs[0]
  *         href_utf = utf8(hrefs[0] or hrefs[1])
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_370), 0, 0);
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_373), 0, 0);
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":869
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":868
  *         if len(hrefs) != 1:
  *             raise ValueError, u"malformed PI attributes"
  *         hrefs = hrefs[0]             # <<<<<<<<<<<<<<
  *         href_utf = utf8(hrefs[0] or hrefs[1])
  *         c_href = _xcstr(href_utf)
  */
-  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_hrefs, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_hrefs, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 868; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __Pyx_DECREF(__pyx_v_hrefs);
-  __pyx_v_hrefs = __pyx_t_5;
+  __Pyx_DECREF_SET(__pyx_v_hrefs, __pyx_t_5);
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":870
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":869
  *             raise ValueError, u"malformed PI attributes"
  *         hrefs = hrefs[0]
  *         href_utf = utf8(hrefs[0] or hrefs[1])             # <<<<<<<<<<<<<<
  *         c_href = _xcstr(href_utf)
  * 
  */
-  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_hrefs, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_hrefs, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!__pyx_t_2) {
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
-    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_hrefs, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_hrefs, 1, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_7 = __pyx_t_4;
     __pyx_t_4 = 0;
@@ -143764,13 +143372,13 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
     __pyx_t_7 = __pyx_t_5;
     __pyx_t_5 = 0;
   }
-  __pyx_t_5 = ((PyObject *)utf8(__pyx_t_7)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = ((PyObject *)utf8(__pyx_t_7)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 869; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   __pyx_v_href_utf = ((PyObject*)__pyx_t_5);
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":871
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":870
  *         hrefs = hrefs[0]
  *         href_utf = utf8(hrefs[0] or hrefs[1])
  *         c_href = _xcstr(href_utf)             # <<<<<<<<<<<<<<
@@ -143779,7 +143387,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  */
   __pyx_v_c_href = (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_href_utf));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":873
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":872
  *         c_href = _xcstr(href_utf)
  * 
  *         if c_href[0] != c'#':             # <<<<<<<<<<<<<<
@@ -143789,7 +143397,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
   __pyx_t_2 = (((__pyx_v_c_href[0]) != '#') != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":877
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":876
  *             c_href = tree.xmlBuildURI(
  *                 c_href,
  *                 tree.xmlNodeGetBase(self._c_node.doc, self._c_node))             # <<<<<<<<<<<<<<
@@ -143798,7 +143406,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  */
     __pyx_v_c_href = xmlBuildURI(__pyx_v_c_href, xmlNodeGetBase(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->doc, __pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":878
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":877
  *                 c_href,
  *                 tree.xmlNodeGetBase(self._c_node.doc, self._c_node))
  *             if c_href is not NULL:             # <<<<<<<<<<<<<<
@@ -143808,7 +143416,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
     __pyx_t_2 = ((__pyx_v_c_href != NULL) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":879
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":878
  *                 tree.xmlNodeGetBase(self._c_node.doc, self._c_node))
  *             if c_href is not NULL:
  *                 try:             # <<<<<<<<<<<<<<
@@ -143817,21 +143425,20 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  */
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":880
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":879
  *             if c_href is not NULL:
  *                 try:
  *                     href_utf = <unsigned char*>c_href             # <<<<<<<<<<<<<<
  *                 finally:
  *                     tree.xmlFree(<char*>c_href)
  */
-        __pyx_t_5 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_href)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L8;}
+        __pyx_t_5 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_href)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 879; __pyx_clineno = __LINE__; goto __pyx_L8;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_5));
-        __Pyx_DECREF(((PyObject *)__pyx_v_href_utf));
-        __pyx_v_href_utf = ((PyObject*)__pyx_t_5);
+        __Pyx_DECREF_SET(__pyx_v_href_utf, ((PyObject*)__pyx_t_5));
         __pyx_t_5 = 0;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":882
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":881
  *                     href_utf = <unsigned char*>c_href
  *                 finally:
  *                     tree.xmlFree(<char*>c_href)             # <<<<<<<<<<<<<<
@@ -143870,20 +143477,20 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":883
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":882
  *                 finally:
  *                     tree.xmlFree(<char*>c_href)
  *             result_doc = _parseDocumentFromURL(href_utf, parser)             # <<<<<<<<<<<<<<
  *             return _elementTreeFactory(result_doc, None)
  * 
  */
-    if (!(likely(((__pyx_v_parser) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_parser, __pyx_ptype_4lxml_5etree__BaseParser))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocumentFromURL(((PyObject *)__pyx_v_href_utf), ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_v_parser) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_parser, __pyx_ptype_4lxml_5etree__BaseParser))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__parseDocumentFromURL(((PyObject *)__pyx_v_href_utf), ((struct __pyx_obj_4lxml_5etree__BaseParser *)__pyx_v_parser))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_v_result_doc = ((struct LxmlDocument *)__pyx_t_5);
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":884
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":883
  *                     tree.xmlFree(<char*>c_href)
  *             result_doc = _parseDocumentFromURL(href_utf, parser)
  *             return _elementTreeFactory(result_doc, None)             # <<<<<<<<<<<<<<
@@ -143891,7 +143498,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  *         # ID reference to embedded stylesheet
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_result_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(__pyx_v_result_doc, ((struct LxmlElement *)Py_None))); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_r = __pyx_t_5;
     __pyx_t_5 = 0;
@@ -143900,7 +143507,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":888
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":887
  *         # ID reference to embedded stylesheet
  *         # try XML:ID lookup
  *         _assertValidDoc(self._doc)             # <<<<<<<<<<<<<<
@@ -143909,10 +143516,10 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  */
   __pyx_t_5 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._doc);
   __Pyx_INCREF(__pyx_t_5);
-  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_5)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree__assertValidDoc(((struct LxmlDocument *)__pyx_t_5)); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":889
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":888
  *         # try XML:ID lookup
  *         _assertValidDoc(self._doc)
  *         c_href += 1 # skip leading '#'             # <<<<<<<<<<<<<<
@@ -143921,7 +143528,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  */
   __pyx_v_c_href = (__pyx_v_c_href + 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":890
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":889
  *         _assertValidDoc(self._doc)
  *         c_href += 1 # skip leading '#'
  *         c_attr = tree.xmlGetID(self._c_node.doc, c_href)             # <<<<<<<<<<<<<<
@@ -143930,7 +143537,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  */
   __pyx_v_c_attr = xmlGetID(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node->doc, __pyx_v_c_href);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":891
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":890
  *         c_href += 1 # skip leading '#'
  *         c_attr = tree.xmlGetID(self._c_node.doc, c_href)
  *         if c_attr is not NULL and c_attr.doc is self._c_node.doc:             # <<<<<<<<<<<<<<
@@ -143946,7 +143553,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
   }
   if (__pyx_t_9) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":892
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":891
  *         c_attr = tree.xmlGetID(self._c_node.doc, c_href)
  *         if c_attr is not NULL and c_attr.doc is self._c_node.doc:
  *             result_node = _elementFactory(self._doc, c_attr.parent)             # <<<<<<<<<<<<<<
@@ -143955,13 +143562,13 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  */
     __pyx_t_5 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._doc);
     __Pyx_INCREF(__pyx_t_5);
-    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_attr->parent)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementFactory(((struct LxmlDocument *)__pyx_t_5), __pyx_v_c_attr->parent)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __pyx_v_result_node = ((struct LxmlElement *)__pyx_t_7);
     __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":893
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":892
  *         if c_attr is not NULL and c_attr.doc is self._c_node.doc:
  *             result_node = _elementFactory(self._doc, c_attr.parent)
  *             return _elementTreeFactory(result_node._doc, result_node)             # <<<<<<<<<<<<<<
@@ -143971,7 +143578,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
     __Pyx_XDECREF(__pyx_r);
     __pyx_t_7 = ((PyObject *)__pyx_v_result_node->_doc);
     __Pyx_INCREF(__pyx_t_7);
-    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_7), __pyx_v_result_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_7), __pyx_v_result_node)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
     __pyx_r = __pyx_t_5;
@@ -143981,7 +143588,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
   }
   __pyx_L11:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":896
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":895
  * 
  *         # try XPath search
  *         root = _findStylesheetByID(self._doc, funicode(c_href))             # <<<<<<<<<<<<<<
@@ -143990,76 +143597,76 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
  */
   __pyx_t_5 = ((PyObject *)__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._doc);
   __Pyx_INCREF(__pyx_t_5);
-  __pyx_t_7 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_href); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_href); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
-  __pyx_t_4 = __pyx_f_4lxml_5etree__findStylesheetByID(((struct LxmlDocument *)__pyx_t_5), __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __pyx_f_4lxml_5etree__findStylesheetByID(((struct LxmlDocument *)__pyx_t_5), __pyx_t_7); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   __pyx_v_root = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":897
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":896
  *         # try XPath search
  *         root = _findStylesheetByID(self._doc, funicode(c_href))
  *         if not root:             # <<<<<<<<<<<<<<
  *             raise ValueError, u"reference to non-existing embedded stylesheet"
  *         elif len(root) > 1:
  */
-  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_root); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_root); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_2 = ((!__pyx_t_9) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":898
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":897
  *         root = _findStylesheetByID(self._doc, funicode(c_href))
  *         if not root:
  *             raise ValueError, u"reference to non-existing embedded stylesheet"             # <<<<<<<<<<<<<<
  *         elif len(root) > 1:
  *             raise ValueError, u"ambiguous reference to embedded stylesheet"
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_371), 0, 0);
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_374), 0, 0);
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L12;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":899
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":898
  *         if not root:
  *             raise ValueError, u"reference to non-existing embedded stylesheet"
  *         elif len(root) > 1:             # <<<<<<<<<<<<<<
  *             raise ValueError, u"ambiguous reference to embedded stylesheet"
  *         result_node = root[0]
  */
-  __pyx_t_6 = PyObject_Length(__pyx_v_root); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyObject_Length(__pyx_v_root); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 898; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_2 = ((__pyx_t_6 > 1) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":900
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":899
  *             raise ValueError, u"reference to non-existing embedded stylesheet"
  *         elif len(root) > 1:
  *             raise ValueError, u"ambiguous reference to embedded stylesheet"             # <<<<<<<<<<<<<<
  *         result_node = root[0]
  *         return _elementTreeFactory(result_node._doc, result_node)
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_372), 0, 0);
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_375), 0, 0);
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 899; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L12;
   }
   __pyx_L12:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":901
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":900
  *         elif len(root) > 1:
  *             raise ValueError, u"ambiguous reference to embedded stylesheet"
  *         result_node = root[0]             # <<<<<<<<<<<<<<
  *         return _elementTreeFactory(result_node._doc, result_node)
  * 
  */
-  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_root, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_root, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_5etree__Element))))) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 900; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_result_node = ((struct LxmlElement *)__pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":902
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":901
  *             raise ValueError, u"ambiguous reference to embedded stylesheet"
  *         result_node = root[0]
  *         return _elementTreeFactory(result_node._doc, result_node)             # <<<<<<<<<<<<<<
@@ -144069,7 +143676,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_parseXSL(str
   __Pyx_XDECREF(__pyx_r);
   __pyx_t_4 = ((PyObject *)__pyx_v_result_node->_doc);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_4), __pyx_v_result_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 902; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = ((PyObject *)__pyx_f_4lxml_5etree__elementTreeFactory(((struct LxmlDocument *)__pyx_t_4), __pyx_v_result_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __pyx_r = __pyx_t_7;
@@ -144127,11 +143734,11 @@ static PyObject *__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_3set(PyObjec
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__value)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, 1); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set") < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
       goto __pyx_L5_argtuple_error;
@@ -144144,7 +143751,7 @@ static PyObject *__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_3set(PyObjec
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 904; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("set", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[2]; __pyx_lineno = 903; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._XSLTProcessingInstruction.set", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -144155,7 +143762,7 @@ static PyObject *__pyx_pw_4lxml_5etree_26_XSLTProcessingInstruction_3set(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":904
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":903
  *         return _elementTreeFactory(result_node._doc, result_node)
  * 
  *     def set(self, key, value):             # <<<<<<<<<<<<<<
@@ -144178,32 +143785,32 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("set", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":910
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":909
  *         the processing instruction.
  *         """
  *         if key != u"href":             # <<<<<<<<<<<<<<
  *             raise AttributeError, \
  *                 u"only setting the 'href' attribute is supported on XSLT-PIs"
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_key, ((PyObject *)__pyx_n_u__href), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_key, ((PyObject *)__pyx_n_u__href), Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":911
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":910
  *         """
  *         if key != u"href":
  *             raise AttributeError, \             # <<<<<<<<<<<<<<
  *                 u"only setting the 'href' attribute is supported on XSLT-PIs"
  *         if value is None:
  */
-    __Pyx_Raise(__pyx_builtin_AttributeError, ((PyObject *)__pyx_kp_u_373), 0, 0);
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_AttributeError, ((PyObject *)__pyx_kp_u_376), 0, 0);
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":913
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":912
  *             raise AttributeError, \
  *                 u"only setting the 'href' attribute is supported on XSLT-PIs"
  *         if value is None:             # <<<<<<<<<<<<<<
@@ -144214,7 +143821,7 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":914
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":913
  *                 u"only setting the 'href' attribute is supported on XSLT-PIs"
  *         if value is None:
  *             attrib = u""             # <<<<<<<<<<<<<<
@@ -144226,91 +143833,91 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
     goto __pyx_L4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":915
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":914
  *         if value is None:
  *             attrib = u""
  *         elif u'"' in value or u'>' in value:             # <<<<<<<<<<<<<<
  *             raise ValueError, u"Invalid URL, must not contain '\"' or '>'"
  *         else:
  */
-  __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_242), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_245), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!(__pyx_t_3 != 0)) {
-    __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_258), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_261), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = (__pyx_t_2 != 0);
   } else {
     __pyx_t_4 = (__pyx_t_3 != 0);
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":916
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":915
  *             attrib = u""
  *         elif u'"' in value or u'>' in value:
  *             raise ValueError, u"Invalid URL, must not contain '\"' or '>'"             # <<<<<<<<<<<<<<
  *         else:
  *             attrib = u' href="%s"' % value
  */
-    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_374), 0, 0);
-    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_377), 0, 0);
+    {__pyx_filename = __pyx_f[2]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":918
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":917
  *             raise ValueError, u"Invalid URL, must not contain '\"' or '>'"
  *         else:
  *             attrib = u' href="%s"' % value             # <<<<<<<<<<<<<<
  *         text = u' ' + self.text
  *         if _FIND_PI_HREF(text):
  */
-    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_375), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_378), __pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __pyx_v_attrib = ((PyObject*)__pyx_t_1);
     __pyx_t_1 = 0;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":919
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":918
  *         else:
  *             attrib = u' href="%s"' % value
  *         text = u' ' + self.text             # <<<<<<<<<<<<<<
  *         if _FIND_PI_HREF(text):
  *             self.text = _REPLACE_PI_HREF(attrib, text)
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_kp_u_17), __pyx_t_1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_text = __pyx_t_5;
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":920
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":919
  *             attrib = u' href="%s"' % value
  *         text = u' ' + self.text
  *         if _FIND_PI_HREF(text):             # <<<<<<<<<<<<<<
  *             self.text = _REPLACE_PI_HREF(attrib, text)
  *         else:
  */
-  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_INCREF(__pyx_v_text);
   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_text);
   __Pyx_GIVEREF(__pyx_v_text);
-  __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_5etree__FIND_PI_HREF, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_5etree__FIND_PI_HREF, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":921
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":920
  *         text = u' ' + self.text
  *         if _FIND_PI_HREF(text):
  *             self.text = _REPLACE_PI_HREF(attrib, text)             # <<<<<<<<<<<<<<
  *         else:
  *             self.text = text + attrib
  */
-    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(((PyObject *)__pyx_v_attrib));
     PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_attrib));
@@ -144318,23 +143925,23 @@ static PyObject *__pyx_pf_4lxml_5etree_26_XSLTProcessingInstruction_2set(struct
     __Pyx_INCREF(__pyx_v_text);
     PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_text);
     __Pyx_GIVEREF(__pyx_v_text);
-    __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree__REPLACE_PI_HREF, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_5etree__REPLACE_PI_HREF, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     goto __pyx_L5;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":923
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":922
  *             self.text = _REPLACE_PI_HREF(attrib, text)
  *         else:
  *             self.text = text + attrib             # <<<<<<<<<<<<<<
  */
-    __pyx_t_5 = PyNumber_Add(__pyx_v_text, ((PyObject *)__pyx_v_attrib)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_Add(__pyx_v_text, ((PyObject *)__pyx_v_attrib)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s__text, __pyx_t_5) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   }
   __pyx_L5:;
@@ -144478,8 +144085,8 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_3apply_templates(PyObject
  *         u"""apply_templates(self, context, node, output_parent=None, elements_only=False, remove_blank_text=False)
  */
     values[2] = ((PyObject *)Py_None);
-    values[3] = __pyx_k_376;
-    values[4] = __pyx_k_377;
+    values[3] = __pyx_k_379;
+    values[4] = __pyx_k_380;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -144573,7 +144180,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_context->_xsltCtxt != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_378));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_381));
     {__pyx_filename = __pyx_f[19]; __pyx_lineno = 47; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -144619,7 +144226,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_2apply_templates(struct _
  * 
  *         c_node = context._xsltCtxt.insert
  */
-    __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_379)), NULL);
+    __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_382)), NULL);
   }
   __pyx_L3:;
 
@@ -144795,8 +144402,8 @@ static PyObject *__pyx_pw_4lxml_5etree_13XSLTExtension_5process_children(PyObjec
  *         u"""process_children(self, context, output_parent=None, elements_only=False, remove_blank_text=False)
  */
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_380;
-    values[3] = __pyx_k_381;
+    values[2] = __pyx_k_383;
+    values[3] = __pyx_k_384;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -144903,7 +144510,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_context->_xsltCtxt != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_378));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_381));
     {__pyx_filename = __pyx_f[19]; __pyx_lineno = 99; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -144939,7 +144546,7 @@ static PyObject *__pyx_pf_4lxml_5etree_13XSLTExtension_4process_children(struct
  * 
  *         c_ctxt.insert = _nonRoNodeOf(output_parent)
  */
-    __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_379)), NULL);
+    __pyx_v_c_parent = xmlNewDocNode(__pyx_v_context->_xsltCtxt->output, NULL, ((unsigned char *)((unsigned char *)__pyx_k_382)), NULL);
   }
   __pyx_L3:;
 
@@ -145180,8 +144787,7 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
  */
         __pyx_t_1 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_node->content); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
-        __Pyx_XDECREF(__pyx_v_s);
-        __pyx_v_s = __pyx_t_1;
+        __Pyx_XDECREF_SET(__pyx_v_s, __pyx_t_1);
         __pyx_t_1 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":138
@@ -145226,8 +144832,7 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
  *                 proxy = _newReadOnlyProxy(
  */
         __Pyx_INCREF(Py_None);
-        __Pyx_DECREF(__pyx_v_s);
-        __pyx_v_s = Py_None;
+        __Pyx_DECREF_SET(__pyx_v_s, Py_None);
         goto __pyx_L6;
       }
       __pyx_L6:;
@@ -145256,8 +144861,7 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
       __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_4), __pyx_v_c_node)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 142; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-      __Pyx_XDECREF(((PyObject *)__pyx_v_proxy));
-      __pyx_v_proxy = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_1);
+      __Pyx_XDECREF_SET(__pyx_v_proxy, ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_1));
       __pyx_t_1 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":144
@@ -145299,7 +144903,7 @@ static PyObject *__pyx_f_4lxml_5etree_13XSLTExtension__collectXSLTResultContent(
  */
       __pyx_t_1 = PyInt_FromLong(__pyx_v_c_node->type); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_382), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_385), __pyx_t_1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_t_4), 0, 0);
@@ -145464,11 +145068,9 @@ static PyObject *__pyx_f_4lxml_5etree__registerXSLTExtensions(xsltTransformConte
       {__pyx_filename = __pyx_f[19]; __pyx_lineno = 157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_ns_utf);
-    __pyx_v_ns_utf = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_ns_utf, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_name_utf);
-    __pyx_v_name_utf = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_name_utf, __pyx_t_6);
     __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":160
@@ -145698,7 +145300,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
             __pyx_t_11 = __pyx_f_4lxml_5etree_funicode(__pyx_v_c_inst_node->name); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
             __Pyx_GOTREF(__pyx_t_11);
-            __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_383), __pyx_t_11); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
+            __pyx_t_8 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_386), __pyx_t_11); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L13_error;}
             __Pyx_GOTREF(((PyObject *)__pyx_t_8));
             __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
             __Pyx_Raise(__pyx_builtin_KeyError, ((PyObject *)__pyx_t_8), 0, 0);
@@ -145737,8 +145339,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
             __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None), __pyx_v_c_inst_node)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 191; __pyx_clineno = __LINE__; goto __pyx_L25;}
             __Pyx_GOTREF(__pyx_t_8);
-            __Pyx_DECREF(((PyObject *)__pyx_v_self_node));
-            __pyx_v_self_node = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_8);
+            __Pyx_DECREF_SET(__pyx_v_self_node, ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_8));
             __pyx_t_8 = 0;
 
             /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":192
@@ -145834,8 +145435,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
                 __pyx_t_8 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(__pyx_v_self_node, __pyx_v_c_node)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 201; __pyx_clineno = __LINE__; goto __pyx_L25;}
                 __Pyx_GOTREF(__pyx_t_8);
-                __Pyx_DECREF(((PyObject *)__pyx_v_context_node));
-                __pyx_v_context_node = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_8);
+                __Pyx_DECREF_SET(__pyx_v_context_node, ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_8));
                 __pyx_t_8 = 0;
                 goto __pyx_L29;
               }
@@ -145849,8 +145449,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  *                                              tree.XML_TEXT_NODE,
  */
                 __Pyx_INCREF(Py_None);
-                __Pyx_DECREF(((PyObject *)__pyx_v_context_node));
-                __pyx_v_context_node = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None);
+                __Pyx_DECREF_SET(__pyx_v_context_node, ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)Py_None));
               }
               __pyx_L29:;
               goto __pyx_L28;
@@ -145905,7 +145504,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
               __pyx_t_8 = PyInt_FromLong(__pyx_v_c_context_node->type); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(__pyx_t_8);
-              __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_135), __pyx_t_8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L25;}
+              __pyx_t_11 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_138), __pyx_t_8); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(((PyObject *)__pyx_t_11));
               __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
               __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L25;}
@@ -145932,8 +145531,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  */
               __pyx_t_11 = ((PyObject *)__pyx_f_4lxml_5etree__newReadOnlyProxy(__pyx_v_self_node, __pyx_v_c_context_node)); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L25;}
               __Pyx_GOTREF(__pyx_t_11);
-              __Pyx_DECREF(((PyObject *)__pyx_v_context_node));
-              __pyx_v_context_node = ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_11);
+              __Pyx_DECREF_SET(__pyx_v_context_node, ((struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *)__pyx_t_11));
               __pyx_t_11 = 0;
             }
             __pyx_L28:;
@@ -146116,8 +145714,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
               __pyx_t_9 = ((PyObject *)PyUnicode_AsUTF8String(((PyObject*)__pyx_t_19))); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 223; __pyx_clineno = __LINE__; goto __pyx_L35_error;}
               __Pyx_GOTREF(((PyObject *)__pyx_t_9));
               __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
-              __Pyx_DECREF(__pyx_v_e);
-              __pyx_v_e = ((PyObject *)__pyx_t_9);
+              __Pyx_DECREF_SET(__pyx_v_e, ((PyObject *)__pyx_t_9));
               __pyx_t_9 = 0;
             }
             __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
@@ -146154,11 +145751,10 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
               __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s__encode); if (unlikely(!__pyx_t_22)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
               __Pyx_GOTREF(__pyx_t_22);
               __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
-              __pyx_t_21 = PyObject_Call(__pyx_t_22, ((PyObject *)__pyx_k_tuple_384), NULL); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
+              __pyx_t_21 = PyObject_Call(__pyx_t_22, ((PyObject *)__pyx_k_tuple_387), NULL); if (unlikely(!__pyx_t_21)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L37_except_error;}
               __Pyx_GOTREF(__pyx_t_21);
               __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
-              __Pyx_DECREF(__pyx_v_e);
-              __pyx_v_e = __pyx_t_21;
+              __Pyx_DECREF_SET(__pyx_v_e, __pyx_t_21);
               __pyx_t_21 = 0;
               __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
               __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
@@ -146186,7 +145782,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
  *             context._exc._store_raised()
  */
-          __pyx_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_385, __pyx_v_c_inst_node->name, PyBytes_AS_STRING(__pyx_v_e))); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+          __pyx_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_388, __pyx_v_c_inst_node->name, PyBytes_AS_STRING(__pyx_v_e))); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 226; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
           __Pyx_GOTREF(__pyx_t_20);
           __pyx_v_message = ((PyObject*)__pyx_t_20);
           __pyx_t_20 = 0;
@@ -146236,7 +145832,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  *             xslt.xsltTransformError(c_ctxt, NULL, c_inst_node, message)
  *             context._exc._store_raised()
  */
-          __pyx_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_386, __pyx_v_c_inst_node->name)); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
+          __pyx_t_20 = ((PyObject *)PyBytes_FromFormat(__pyx_k_389, __pyx_v_c_inst_node->name)); if (unlikely(!__pyx_t_20)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 233; __pyx_clineno = __LINE__; goto __pyx_L15_except_error;}
           __Pyx_GOTREF(__pyx_t_20);
           __pyx_v_message = ((PyObject*)__pyx_t_20);
           __pyx_t_20 = 0;
@@ -146313,7 +145909,7 @@ static void __pyx_f_4lxml_5etree__callExtensionElement(xsltTransformContext *__p
  *                                 "Error during XSLT extension element evaluation")
  *         context._exc._store_raised()
  */
-      xsltTransformError(__pyx_v_c_ctxt, NULL, __pyx_v_c_inst_node, __pyx_k_387);
+      xsltTransformError(__pyx_v_c_ctxt, NULL, __pyx_v_c_inst_node, __pyx_k_390);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":241
  *         xslt.xsltTransformError(c_ctxt, NULL, c_inst_node,
@@ -146379,7 +145975,7 @@ static int __pyx_pw_4lxml_5etree_10_Validator_1__cinit__(PyObject *__pyx_v_self,
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3247
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3244
  *     u"Base class for XML validators."
  *     cdef _ErrorLog _error_log
  *     def __cinit__(self):             # <<<<<<<<<<<<<<
@@ -146396,14 +145992,14 @@ static int __pyx_pf_4lxml_5etree_10_Validator___cinit__(struct __pyx_obj_4lxml_5
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__cinit__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3248
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3245
  *     cdef _ErrorLog _error_log
  *     def __cinit__(self):
  *         self._error_log = _ErrorLog()             # <<<<<<<<<<<<<<
  * 
  *     def validate(self, etree):
  */
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ErrorLog)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->_error_log);
@@ -146434,7 +146030,7 @@ static PyObject *__pyx_pw_4lxml_5etree_10_Validator_3validate(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3250
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3247
  *         self._error_log = _ErrorLog()
  * 
  *     def validate(self, etree):             # <<<<<<<<<<<<<<
@@ -146452,7 +146048,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_2validate(struct __pyx_obj_4
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("validate", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3257
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3254
  *         Returns true if document is valid, false if not.
  *         """
  *         return self(etree)             # <<<<<<<<<<<<<<
@@ -146460,12 +146056,12 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_2validate(struct __pyx_obj_4
  *     def assertValid(self, etree):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_etree);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_etree);
   __Pyx_GIVEREF(__pyx_v_etree);
-  __pyx_t_2 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -146497,7 +146093,7 @@ static PyObject *__pyx_pw_4lxml_5etree_10_Validator_5assertValid(PyObject *__pyx
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3259
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3256
  *         return self(etree)
  * 
  *     def assertValid(self, etree):             # <<<<<<<<<<<<<<
@@ -146518,46 +146114,46 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_4assertValid(struct __pyx_ob
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("assertValid", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3264
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3261
  *         Raises `DocumentInvalid` if the document does not comply with the schema.
  *         """
  *         if not self(etree):             # <<<<<<<<<<<<<<
  *             raise DocumentInvalid(self._error_log._buildExceptionMessage(
  *                     u"Document does not comply with schema"),
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_etree);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_etree);
   __Pyx_GIVEREF(__pyx_v_etree);
-  __pyx_t_2 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_t_4 = ((!__pyx_t_3) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3265
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3262
  *         """
  *         if not self(etree):
  *             raise DocumentInvalid(self._error_log._buildExceptionMessage(             # <<<<<<<<<<<<<<
  *                     u"Document does not comply with schema"),
  *                                   self._error_log)
  */
-    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__DocumentInvalid); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__DocumentInvalid); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_388)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_391)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3267
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3264
  *             raise DocumentInvalid(self._error_log._buildExceptionMessage(
  *                     u"Document does not comply with schema"),
  *                                   self._error_log)             # <<<<<<<<<<<<<<
  * 
  *     def assert_(self, etree):
  */
-    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
     __Pyx_GIVEREF(__pyx_t_1);
@@ -146565,13 +146161,13 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_4assertValid(struct __pyx_ob
     PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_self->_error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self->_error_log));
     __pyx_t_1 = 0;
-    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
     __Pyx_Raise(__pyx_t_1, 0, 0, 0);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -146602,7 +146198,7 @@ static PyObject *__pyx_pw_4lxml_5etree_10_Validator_7assert_(PyObject *__pyx_v_s
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3269
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3266
  *                                   self._error_log)
  * 
  *     def assert_(self, etree):             # <<<<<<<<<<<<<<
@@ -146622,38 +146218,38 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_6assert_(struct __pyx_obj_4l
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("assert_", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3274
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3271
  *         Raises `AssertionError` if the document does not comply with the schema.
  *         """
  *         if not self(etree):             # <<<<<<<<<<<<<<
  *             raise AssertionError, self._error_log._buildExceptionMessage(
  *                 u"Document does not comply with schema")
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_etree);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_etree);
   __Pyx_GIVEREF(__pyx_v_etree);
-  __pyx_t_2 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)__pyx_v_self), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3271; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_t_4 = ((!__pyx_t_3) != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3275
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3272
  *         """
  *         if not self(etree):
  *             raise AssertionError, self._error_log._buildExceptionMessage(             # <<<<<<<<<<<<<<
  *                 u"Document does not comply with schema")
  * 
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_388)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), ((PyObject *)__pyx_kp_u_391)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_Raise(__pyx_builtin_AssertionError, __pyx_t_2, 0, 0);
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
@@ -146671,7 +146267,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_6assert_(struct __pyx_obj_4l
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3278
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3275
  *                 u"Document does not comply with schema")
  * 
  *     cpdef _append_log_message(self, int domain, int type, int level, int line,             # <<<<<<<<<<<<<<
@@ -146697,19 +146293,19 @@ static PyObject *__pyx_f_4lxml_5etree_10_Validator__append_log_message(struct __
   if (unlikely(__pyx_skip_dispatch)) ;
   /* Check if overridden in Python */
   else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
-    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___append_log_message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___append_log_message); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_9_append_log_message)) {
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_2 = PyInt_FromLong(__pyx_v_domain); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyInt_FromLong(__pyx_v_domain); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_3 = PyInt_FromLong(__pyx_v_type); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyInt_FromLong(__pyx_v_type); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_4 = PyInt_FromLong(__pyx_v_level); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyInt_FromLong(__pyx_v_level); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyInt_FromLong(__pyx_v_line); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_6 = PyTuple_New(6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyTuple_New(6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2);
       __Pyx_GIVEREF(__pyx_t_2);
@@ -146729,7 +146325,7 @@ static PyObject *__pyx_f_4lxml_5etree_10_Validator__append_log_message(struct __
       __pyx_t_3 = 0;
       __pyx_t_4 = 0;
       __pyx_t_5 = 0;
-      __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
       __pyx_r = __pyx_t_5;
@@ -146740,7 +146336,7 @@ static PyObject *__pyx_f_4lxml_5etree_10_Validator__append_log_message(struct __
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3281
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3278
  *                               message, filename):
  *         self._error_log._receiveGeneric(domain, type, level, line, message,
  *                                         filename)             # <<<<<<<<<<<<<<
@@ -146805,31 +146401,31 @@ static PyObject *__pyx_pw_4lxml_5etree_10_Validator_9_append_log_message(PyObjec
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__type)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__level)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  3:
         if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__line)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  4:
         if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__message)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  5:
         if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__filename)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_append_log_message") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "_append_log_message") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
       goto __pyx_L5_argtuple_error;
@@ -146841,16 +146437,16 @@ static PyObject *__pyx_pw_4lxml_5etree_10_Validator_9_append_log_message(PyObjec
       values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
       values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
     }
-    __pyx_v_domain = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_domain == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-    __pyx_v_type = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-    __pyx_v_level = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
-    __pyx_v_line = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_line == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_domain = __Pyx_PyInt_AsInt(values[0]); if (unlikely((__pyx_v_domain == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_type = __Pyx_PyInt_AsInt(values[1]); if (unlikely((__pyx_v_type == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_level = __Pyx_PyInt_AsInt(values[2]); if (unlikely((__pyx_v_level == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_line = __Pyx_PyInt_AsInt(values[3]); if (unlikely((__pyx_v_line == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     __pyx_v_message = values[4];
     __pyx_v_filename = values[5];
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("_append_log_message", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.etree._Validator._append_log_message", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -146861,7 +146457,7 @@ static PyObject *__pyx_pw_4lxml_5etree_10_Validator_9_append_log_message(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3278
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3275
  *                 u"Document does not comply with schema")
  * 
  *     cpdef _append_log_message(self, int domain, int type, int level, int line,             # <<<<<<<<<<<<<<
@@ -146878,7 +146474,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_8_append_log_message(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_append_log_message", 0);
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__Validator *)__pyx_v_self->__pyx_vtab)->_append_log_message(__pyx_v_self, __pyx_v_domain, __pyx_v_type, __pyx_v_level, __pyx_v_line, __pyx_v_message, __pyx_v_filename, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3278; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__Validator *)__pyx_v_self->__pyx_vtab)->_append_log_message(__pyx_v_self, __pyx_v_domain, __pyx_v_type, __pyx_v_level, __pyx_v_line, __pyx_v_message, __pyx_v_filename, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -146896,7 +146492,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_8_append_log_message(struct
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3283
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3280
  *                                         filename)
  * 
  *     cpdef _clear_error_log(self):             # <<<<<<<<<<<<<<
@@ -146918,11 +146514,11 @@ static PyObject *__pyx_f_4lxml_5etree_10_Validator__clear_error_log(struct __pyx
   if (unlikely(__pyx_skip_dispatch)) ;
   /* Check if overridden in Python */
   else if (unlikely(Py_TYPE(((PyObject *)__pyx_v_self))->tp_dictoffset != 0)) {
-    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___clear_error_log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s___clear_error_log); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     if (!PyCFunction_Check(__pyx_t_1) || (PyCFunction_GET_FUNCTION(__pyx_t_1) != (PyCFunction)__pyx_pw_4lxml_5etree_10_Validator_11_clear_error_log)) {
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __pyx_r = __pyx_t_2;
       __pyx_t_2 = 0;
@@ -146932,14 +146528,14 @@ static PyObject *__pyx_f_4lxml_5etree_10_Validator__clear_error_log(struct __pyx
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3284
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3281
  * 
  *     cpdef _clear_error_log(self):
  *         self._error_log.clear()             # <<<<<<<<<<<<<<
  * 
  *     property error_log:
  */
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->clear(__pyx_v_self->_error_log, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->clear(__pyx_v_self->_error_log, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -146967,7 +146563,7 @@ static PyObject *__pyx_pw_4lxml_5etree_10_Validator_11_clear_error_log(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3283
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3280
  *                                         filename)
  * 
  *     cpdef _clear_error_log(self):             # <<<<<<<<<<<<<<
@@ -146984,7 +146580,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_10_clear_error_log(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_clear_error_log", 0);
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__Validator *)__pyx_v_self->__pyx_vtab)->_clear_error_log(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((struct __pyx_vtabstruct_4lxml_5etree__Validator *)__pyx_v_self->__pyx_vtab)->_clear_error_log(__pyx_v_self, 1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -147013,7 +146609,7 @@ static PyObject *__pyx_pw_4lxml_5etree_10_Validator_9error_log_1__get__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3288
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3285
  *     property error_log:
  *         u"The log of validation errors and warnings."
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -147031,7 +146627,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_9error_log___get__(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3289
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3286
  *         u"The log of validation errors and warnings."
  *         def __get__(self):
  *             assert self._error_log is not None, "XPath evaluator not initialised"             # <<<<<<<<<<<<<<
@@ -147041,12 +146637,12 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_9error_log___get__(struct __
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_error_log) != Py_None);
   if (unlikely(!(__pyx_t_1 != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_309));
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_312));
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3290
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3287
  *         def __get__(self):
  *             assert self._error_log is not None, "XPath evaluator not initialised"
  *             return self._error_log.copy()             # <<<<<<<<<<<<<<
@@ -147054,7 +146650,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10_Validator_9error_log___get__(struct __
  * include "dtd.pxi"        # DTD
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((struct __pyx_vtabstruct_4lxml_5etree__ErrorLog *)__pyx_v_self->_error_log->__pyx_base.__pyx_base.__pyx_vtab)->__pyx_base.__pyx_base.copy(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->_error_log), 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3287; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_r = __pyx_t_2;
   __pyx_t_2 = 0;
@@ -147107,7 +146703,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_5etree__assertValidDTDNode(PyObject *__py
     __pyx_t_2 = PyObject_Call(__pyx_builtin_id, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_389), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_392), __pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
     __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_t_1));
@@ -147255,7 +146851,7 @@ static PyObject *__pyx_pf_4lxml_5etree_22_DTDElementContentDecl_2__repr__(struct
   __pyx_t_4 = 0;
   __pyx_t_5 = 0;
   __pyx_t_7 = 0;
-  __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_390), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_393), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_7));
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   __pyx_r = ((PyObject *)__pyx_t_7);
@@ -148174,7 +147770,7 @@ static PyObject *__pyx_pf_4lxml_5etree_17_DTDAttributeDecl_2__repr__(struct __py
   __pyx_t_7 = 0;
   __pyx_t_8 = 0;
   __pyx_t_10 = 0;
-  __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_391), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_10 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_394), ((PyObject *)__pyx_t_9)); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_10));
   __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
   __pyx_r = ((PyObject *)__pyx_t_10);
@@ -149409,7 +149005,7 @@ static PyObject *__pyx_pf_4lxml_5etree_15_DTDElementDecl_2__repr__(struct __pyx_
   __pyx_t_4 = 0;
   __pyx_t_5 = 0;
   __pyx_t_7 = 0;
-  __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_392), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_395), ((PyObject *)__pyx_t_6)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_7));
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   __pyx_r = ((PyObject *)__pyx_t_7);
@@ -150035,9 +149631,8 @@ static PyObject *__pyx_gb_4lxml_5etree_15_DTDElementDecl_6generator1(__pyx_Gener
     __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__DTDAttributeDecl)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 229; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_node));
-    __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_node));
+    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_node, ((struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)__pyx_t_4));
     __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_cur_scope->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDAttributeDecl *)__pyx_t_4);
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":230
@@ -150286,7 +149881,7 @@ static PyObject *__pyx_pf_4lxml_5etree_14_DTDEntityDecl_2__repr__(struct __pyx_o
   __pyx_t_3 = 0;
   __pyx_t_1 = 0;
   __pyx_t_5 = 0;
-  __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_393), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_396), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_r = ((PyObject *)__pyx_t_5);
@@ -150713,8 +150308,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  */
       __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_file); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_file);
-      __pyx_v_file = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_file, __pyx_t_3);
       __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":284
@@ -150817,7 +150411,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
         }
         /*finally:*/ {
           if (__pyx_t_6) {
-            __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_394, NULL);
+            __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_397, NULL);
             __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
             if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_10);
@@ -150868,7 +150462,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  */
       __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_395), 0, 0);
+      __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_398), 0, 0);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       {__pyx_filename = __pyx_f[20]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
@@ -150990,7 +150584,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
       }
       /*finally:*/ {
         if (__pyx_t_6) {
-          __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_396, NULL);
+          __pyx_t_8 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_399, NULL);
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_8);
@@ -151018,7 +150612,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  */
     __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDParseError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_397), 0, 0);
+    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_400), 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     {__pyx_filename = __pyx_f[20]; __pyx_lineno = 294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -151051,7 +150645,7 @@ static int __pyx_pf_4lxml_5etree_3DTD_2__init__(struct __pyx_obj_4lxml_5etree_DT
  *                 self._error_log)
  * 
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_398)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_401)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":299
@@ -151437,9 +151031,8 @@ static PyObject *__pyx_gb_4lxml_5etree_3DTD_6generator2(__pyx_GeneratorObject *_
       __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__DTDElementDecl)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_node));
-      __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_node));
+      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_node, ((struct __pyx_obj_4lxml_5etree__DTDElementDecl *)__pyx_t_3));
       __Pyx_GIVEREF(__pyx_t_3);
-      __pyx_cur_scope->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDElementDecl *)__pyx_t_3);
       __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":318
@@ -151697,9 +151290,8 @@ static PyObject *__pyx_gb_4lxml_5etree_3DTD_11generator3(__pyx_GeneratorObject *
       __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__DTDEntityDecl)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_XGOTREF(((PyObject *)__pyx_cur_scope->__pyx_v_node));
-      __Pyx_XDECREF(((PyObject *)__pyx_cur_scope->__pyx_v_node));
+      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_node, ((struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)__pyx_t_3));
       __Pyx_GIVEREF(__pyx_t_3);
-      __pyx_cur_scope->__pyx_v_node = ((struct __pyx_obj_4lxml_5etree__DTDEntityDecl *)__pyx_t_3);
       __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":331
@@ -151973,7 +151565,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_dtd != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_399));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_402));
     {__pyx_filename = __pyx_f[20]; __pyx_lineno = 355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -152030,7 +151622,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  */
     __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_401), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_404), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_Raise(__pyx_t_3, 0, 0, 0);
@@ -152168,7 +151760,7 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
       }
       /*finally:*/ {
         if (__pyx_t_4) {
-          __pyx_t_8 = PyObject_Call(__pyx_t_4, __pyx_k_tuple_402, NULL);
+          __pyx_t_8 = PyObject_Call(__pyx_t_4, __pyx_k_tuple_405, NULL);
           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
           if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L5;}
           __Pyx_GOTREF(__pyx_t_8);
@@ -152251,9 +151843,9 @@ static PyObject *__pyx_pf_4lxml_5etree_3DTD_16__call__(struct __pyx_obj_4lxml_5e
  */
     __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_403));
-    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_403));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_403));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_406));
+    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_406));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_406));
     __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
     PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
@@ -152507,7 +152099,7 @@ static xmlDtd *__pyx_f_4lxml_5etree__parseDtdFromFilelike(PyObject *__pyx_v_file
     }
     /*finally:*/ {
       if (__pyx_t_3) {
-        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_404, NULL);
+        __pyx_t_7 = PyObject_Call(__pyx_t_3, __pyx_k_tuple_407, NULL);
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
@@ -152553,9 +152145,9 @@ static xmlDtd *__pyx_f_4lxml_5etree__parseDtdFromFilelike(PyObject *__pyx_v_file
     __Pyx_GOTREF(__pyx_t_8);
     __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_398));
-    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_398));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_398));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_401));
+    PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_kp_u_401));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_401));
     __Pyx_INCREF(((PyObject *)__pyx_v_error_log));
     PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_error_log));
@@ -152983,7 +152575,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                     raise RelaxNGParseError, u"Document is not Relax NG"
  *             fake_c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
  */
-        __pyx_t_4 = ((xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_405))) != 0) != 0);
+        __pyx_t_4 = ((xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_408))) != 0) != 0);
         __pyx_t_7 = __pyx_t_4;
       } else {
         __pyx_t_7 = __pyx_t_5;
@@ -152999,7 +152591,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  */
         __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
-        __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_406), 0, 0);
+        __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_409), 0, 0);
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         {__pyx_filename = __pyx_f[21]; __pyx_lineno = 51; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L5;
@@ -153173,7 +152765,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
         }
         /*finally:*/ {
           if (__pyx_t_9) {
-            __pyx_t_13 = PyObject_Call(__pyx_t_9, __pyx_k_tuple_407, NULL);
+            __pyx_t_13 = PyObject_Call(__pyx_t_9, __pyx_k_tuple_410, NULL);
             __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
             if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_13);
@@ -153227,7 +152819,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  */
     __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_408), 0, 0);
+    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_411), 0, 0);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     {__pyx_filename = __pyx_f[21]; __pyx_lineno = 64; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -153282,7 +152874,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                     u"Document is not parsable as Relax NG"),
  *                 self._error_log)
  */
-    __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_409)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_412)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 70; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":72
@@ -153422,7 +153014,7 @@ static int __pyx_pf_4lxml_5etree_7RelaxNG_2__init__(struct __pyx_obj_4lxml_5etre
  *                     u"Document is not valid Relax NG"),
  *                 self._error_log)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_410)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_413)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":88
@@ -153612,7 +153204,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_schema != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_411));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_414));
     {__pyx_filename = __pyx_f[21]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -153764,7 +153356,7 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  *                 u"Internal error in Relax NG validation",
  *                 self._error_log)
  */
-    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_412); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_415); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":127
@@ -153776,9 +153368,9 @@ static PyObject *__pyx_pf_4lxml_5etree_7RelaxNG_6__call__(struct __pyx_obj_4lxml
  */
     __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 125; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_413));
-    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_413));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_413));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_416));
+    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_416));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_416));
     __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
     PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
@@ -153934,7 +153526,7 @@ static int __pyx_pw_4lxml_5etree_9XMLSchema_3__init__(PyObject *__pyx_v_self, Py
  */
     values[0] = ((PyObject *)Py_None);
     values[1] = ((PyObject *)Py_None);
-    values[2] = __pyx_k_414;
+    values[2] = __pyx_k_417;
     if (unlikely(__pyx_kwds)) {
       Py_ssize_t kw_args;
       const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
@@ -154128,7 +153720,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                     raise XMLSchemaParseError, u"Document is not XML Schema"
  * 
  */
-        __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_415))) != 0) != 0);
+        __pyx_t_1 = ((xmlStrcmp(__pyx_v_c_href, ((unsigned char *)((unsigned char *)__pyx_k_418))) != 0) != 0);
         __pyx_t_7 = __pyx_t_1;
       } else {
         __pyx_t_7 = __pyx_t_5;
@@ -154144,7 +153736,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  */
         __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
-        __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_416), 0, 0);
+        __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_419), 0, 0);
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
         {__pyx_filename = __pyx_f[22]; __pyx_lineno = 65; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L5;
@@ -154265,7 +153857,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  */
     __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaParseError); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_408), 0, 0);
+    __Pyx_Raise(__pyx_t_4, ((PyObject *)__pyx_kp_u_411), 0, 0);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 78; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -154448,7 +154040,7 @@ static int __pyx_pf_4lxml_5etree_9XMLSchema_2__init__(struct __pyx_obj_4lxml_5et
  *                     u"Document is not valid XML Schema"),
  *                 self._error_log)
  */
-    __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_417)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_5etree_13_BaseErrorLog__buildExceptionMessage(((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_v_self->__pyx_base._error_log), ((PyObject *)__pyx_kp_u_420)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":105
@@ -154685,7 +154277,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_schema != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_418));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_421));
     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 128; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -154859,7 +154451,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  *                 u"Internal error in XML Schema validation.",
  *                 self._error_log)
  */
-    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_419); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_422); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":153
@@ -154871,9 +154463,9 @@ static PyObject *__pyx_pf_4lxml_5etree_9XMLSchema_6__call__(struct __pyx_obj_4lx
  */
     __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_420));
-    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_420));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_420));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_423));
+    PyTuple_SET_ITEM(__pyx_t_4, 0, ((PyObject *)__pyx_kp_u_423));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_423));
     __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
     PyTuple_SET_ITEM(__pyx_t_4, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
@@ -155196,7 +154788,7 @@ static struct __pyx_obj_4lxml_5etree__ParserSchemaValidationContext *__pyx_f_4lx
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   __pyx_t_1 = (((PyObject *)__pyx_v_self->_schema) != Py_None);
   if (unlikely(!(__pyx_t_1 != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_421));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_424));
     {__pyx_filename = __pyx_f[22]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -155732,7 +155324,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  */
     __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s__SchematronError); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_422), 0, 0);
+    __Pyx_Raise(__pyx_t_3, ((PyObject *)__pyx_kp_u_425), 0, 0);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     {__pyx_filename = __pyx_f[23]; __pyx_lineno = 85; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
@@ -155837,8 +155429,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *             with self._error_log:
  */
       __Pyx_INCREF(__pyx_v_file);
-      __Pyx_DECREF(__pyx_v_filename);
-      __pyx_v_filename = __pyx_v_file;
+      __Pyx_DECREF_SET(__pyx_v_filename, __pyx_v_file);
       goto __pyx_L5;
     }
     __pyx_L5:;
@@ -155852,8 +155443,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  */
     __pyx_t_3 = __pyx_f_4lxml_5etree__encodeFilename(__pyx_v_filename); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_filename);
-    __pyx_v_filename = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_filename, __pyx_t_3);
     __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":98
@@ -155956,7 +155546,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
       }
       /*finally:*/ {
         if (__pyx_t_7) {
-          __pyx_t_11 = PyObject_Call(__pyx_t_7, __pyx_k_tuple_423, NULL);
+          __pyx_t_11 = PyObject_Call(__pyx_t_7, __pyx_k_tuple_426, NULL);
           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
           if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_11);
@@ -155982,9 +155572,9 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  * 
  *         if parser_ctxt is NULL:
  */
-    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_424); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_427); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_408), 0, 0);
+    __Pyx_Raise(__pyx_t_1, ((PyObject *)__pyx_kp_u_411), 0, 0);
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     {__pyx_filename = __pyx_f[23]; __pyx_lineno = 101; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
@@ -156153,7 +155743,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
       }
       /*finally:*/ {
         if (__pyx_t_7) {
-          __pyx_t_9 = PyObject_Call(__pyx_t_7, __pyx_k_tuple_425, NULL);
+          __pyx_t_9 = PyObject_Call(__pyx_t_7, __pyx_k_tuple_428, NULL);
           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
           if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L25;}
           __Pyx_GOTREF(__pyx_t_9);
@@ -156224,7 +155814,7 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  *                 u"Document is not a valid Schematron schema",
  *                 self._error_log)
  */
-    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_424); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_GetModuleGlobalName(__pyx_n_s_427); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":118
@@ -156236,9 +155826,9 @@ static int __pyx_pf_4lxml_5etree_10Schematron_2__init__(struct __pyx_obj_4lxml_5
  */
     __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 116; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_426));
-    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_426));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_426));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_429));
+    PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_kp_u_429));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_429));
     __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
     PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
@@ -156438,7 +156028,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  */
   #ifndef CYTHON_WITHOUT_ASSERTIONS
   if (unlikely(!((__pyx_v_self->_c_schema != NULL) != 0))) {
-    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_427));
+    PyErr_SetObject(PyExc_AssertionError, ((PyObject *)__pyx_kp_s_430));
     {__pyx_filename = __pyx_f[23]; __pyx_lineno = 141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   #endif
@@ -156789,7 +156379,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
       }
       /*finally:*/ {
         if (__pyx_t_6) {
-          __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_428, NULL);
+          __pyx_t_10 = PyObject_Call(__pyx_t_6, __pyx_k_tuple_431, NULL);
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_10);
@@ -156833,7 +156423,7 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  *                 u"Internal error in Schematron validation",
  *                 self._error_log)
  */
-    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_429); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_12 = __Pyx_GetModuleGlobalName(__pyx_n_s_432); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_12);
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":178
@@ -156845,9 +156435,9 @@ static PyObject *__pyx_pf_4lxml_5etree_10Schematron_6__call__(struct __pyx_obj_4
  */
     __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_11);
-    __Pyx_INCREF(((PyObject *)__pyx_kp_u_430));
-    PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_kp_u_430));
-    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_430));
+    __Pyx_INCREF(((PyObject *)__pyx_kp_u_433));
+    PyTuple_SET_ITEM(__pyx_t_11, 0, ((PyObject *)__pyx_kp_u_433));
+    __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_433));
     __Pyx_INCREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
     PyTuple_SET_ITEM(__pyx_t_11, 1, ((PyObject *)__pyx_v_self->__pyx_base._error_log));
     __Pyx_GIVEREF(((PyObject *)__pyx_v_self->__pyx_base._error_log));
@@ -159178,9 +158768,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  *         elif isinstance(output_file, unicode):
  *             output_file.encode(sys.getfilesystemencoding())
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_b_431));
-    __Pyx_DECREF(__pyx_v_output_file);
-    __pyx_v_output_file = ((PyObject *)__pyx_kp_b_431);
+    __Pyx_INCREF(((PyObject *)__pyx_kp_b_434));
+    __Pyx_DECREF_SET(__pyx_v_output_file, ((PyObject *)__pyx_kp_b_434));
     goto __pyx_L3;
   }
 
@@ -159204,7 +158793,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  */
     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__encode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_432); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_435); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
@@ -159252,7 +158841,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
  */
     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__decode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_432); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_435); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
@@ -159266,7 +158855,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_6dump(CYTHON_UNUSED struct __p
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_433), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_436), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 56; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -159519,9 +159108,8 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_8show(CYTHON_UNUSED struct __p
  *         elif isinstance(output_file, unicode):
  *             output_file.encode(sys.getfilesystemencoding())
  */
-    __Pyx_INCREF(((PyObject *)__pyx_kp_b_434));
-    __Pyx_DECREF(__pyx_v_output_file);
-    __pyx_v_output_file = ((PyObject *)__pyx_kp_b_434);
+    __Pyx_INCREF(((PyObject *)__pyx_kp_b_437));
+    __Pyx_DECREF_SET(__pyx_v_output_file, ((PyObject *)__pyx_kp_b_437));
     goto __pyx_L3;
   }
 
@@ -159545,7 +159133,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_8show(CYTHON_UNUSED struct __p
  */
     __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__encode); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_432); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_435); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
@@ -159593,7 +159181,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_8show(CYTHON_UNUSED struct __p
  */
     __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_output_file, __pyx_n_s__decode); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_432); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_435); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_t_3 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
@@ -159607,7 +159195,7 @@ static PyObject *__pyx_pf_4lxml_5etree_9_MemDebug_8show(CYTHON_UNUSED struct __p
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_433), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_s_436), __pyx_t_3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -159825,9 +159413,9 @@ static PyMethodDef __pyx_methods_4lxml_5etree__BaseParser[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__BaseParser[] = {
-  {(char *)"error_log", __pyx_getprop_4lxml_5etree_11_BaseParser_error_log, 0, __Pyx_DOCSTR(__pyx_k_435), 0},
-  {(char *)"resolvers", __pyx_getprop_4lxml_5etree_11_BaseParser_resolvers, 0, __Pyx_DOCSTR(__pyx_k_436), 0},
-  {(char *)"version", __pyx_getprop_4lxml_5etree_11_BaseParser_version, 0, __Pyx_DOCSTR(__pyx_k_437), 0},
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_11_BaseParser_error_log, 0, __Pyx_DOCSTR(__pyx_k_438), 0},
+  {(char *)"resolvers", __pyx_getprop_4lxml_5etree_11_BaseParser_resolvers, 0, __Pyx_DOCSTR(__pyx_k_439), 0},
+  {(char *)"version", __pyx_getprop_4lxml_5etree_11_BaseParser_version, 0, __Pyx_DOCSTR(__pyx_k_440), 0},
   {(char *)"target", __pyx_getprop_4lxml_5etree_11_BaseParser_target, 0, 0, 0},
   {0, 0, 0, 0, 0}
 };
@@ -159886,6 +159474,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseParser = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__FeedParser __pyx_vtable_4lxml_5etree__FeedParser;
 
@@ -159909,7 +159500,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree__FeedParser[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__FeedParser[] = {
-  {(char *)"feed_error_log", __pyx_getprop_4lxml_5etree_11_FeedParser_feed_error_log, 0, __Pyx_DOCSTR(__pyx_k_438), 0},
+  {(char *)"feed_error_log", __pyx_getprop_4lxml_5etree_11_FeedParser_feed_error_log, 0, __Pyx_DOCSTR(__pyx_k_441), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -159971,6 +159562,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__FeedParser = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XMLParser __pyx_vtable_4lxml_5etree_XMLParser;
 
@@ -160041,6 +159635,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XMLParser = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_ETCompatXMLParser __pyx_vtable_4lxml_5etree_ETCompatXMLParser;
 
@@ -160111,6 +159708,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ETCompatXMLParser = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__Element(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -160304,14 +159904,14 @@ static PyMethodDef __pyx_methods_4lxml_5etree__Element[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Element[] = {
-  {(char *)"tag", __pyx_getprop_4lxml_5etree_8_Element_tag, __pyx_setprop_4lxml_5etree_8_Element_tag, __Pyx_DOCSTR(__pyx_k_439), 0},
-  {(char *)"attrib", __pyx_getprop_4lxml_5etree_8_Element_attrib, 0, __Pyx_DOCSTR(__pyx_k_440), 0},
-  {(char *)"text", __pyx_getprop_4lxml_5etree_8_Element_text, __pyx_setprop_4lxml_5etree_8_Element_text, __Pyx_DOCSTR(__pyx_k_441), 0},
-  {(char *)"tail", __pyx_getprop_4lxml_5etree_8_Element_tail, __pyx_setprop_4lxml_5etree_8_Element_tail, __Pyx_DOCSTR(__pyx_k_442), 0},
-  {(char *)"prefix", __pyx_getprop_4lxml_5etree_8_Element_prefix, 0, __Pyx_DOCSTR(__pyx_k_443), 0},
-  {(char *)"sourceline", __pyx_getprop_4lxml_5etree_8_Element_sourceline, __pyx_setprop_4lxml_5etree_8_Element_sourceline, __Pyx_DOCSTR(__pyx_k_444), 0},
-  {(char *)"nsmap", __pyx_getprop_4lxml_5etree_8_Element_nsmap, 0, __Pyx_DOCSTR(__pyx_k_445), 0},
-  {(char *)"base", __pyx_getprop_4lxml_5etree_8_Element_base, __pyx_setprop_4lxml_5etree_8_Element_base, __Pyx_DOCSTR(__pyx_k_446), 0},
+  {(char *)"tag", __pyx_getprop_4lxml_5etree_8_Element_tag, __pyx_setprop_4lxml_5etree_8_Element_tag, __Pyx_DOCSTR(__pyx_k_442), 0},
+  {(char *)"attrib", __pyx_getprop_4lxml_5etree_8_Element_attrib, 0, __Pyx_DOCSTR(__pyx_k_443), 0},
+  {(char *)"text", __pyx_getprop_4lxml_5etree_8_Element_text, __pyx_setprop_4lxml_5etree_8_Element_text, __Pyx_DOCSTR(__pyx_k_444), 0},
+  {(char *)"tail", __pyx_getprop_4lxml_5etree_8_Element_tail, __pyx_setprop_4lxml_5etree_8_Element_tail, __Pyx_DOCSTR(__pyx_k_445), 0},
+  {(char *)"prefix", __pyx_getprop_4lxml_5etree_8_Element_prefix, 0, __Pyx_DOCSTR(__pyx_k_446), 0},
+  {(char *)"sourceline", __pyx_getprop_4lxml_5etree_8_Element_sourceline, __pyx_setprop_4lxml_5etree_8_Element_sourceline, __Pyx_DOCSTR(__pyx_k_447), 0},
+  {(char *)"nsmap", __pyx_getprop_4lxml_5etree_8_Element_nsmap, 0, __Pyx_DOCSTR(__pyx_k_448), 0},
+  {(char *)"base", __pyx_getprop_4lxml_5etree_8_Element_base, __pyx_setprop_4lxml_5etree_8_Element_base, __Pyx_DOCSTR(__pyx_k_449), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -160446,6 +160046,9 @@ DL_EXPORT(PyTypeObject) LxmlElementType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree___ContentOnlyElement __pyx_vtable_4lxml_5etree___ContentOnlyElement;
 
@@ -160598,6 +160201,9 @@ static PyTypeObject __pyx_type_4lxml_5etree___ContentOnlyElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ProcessingInstruction __pyx_vtable_4lxml_5etree__ProcessingInstruction;
 
@@ -160640,7 +160246,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree__ProcessingInstruction[] = {
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ProcessingInstruction[] = {
   {(char *)"tag", __pyx_getprop_4lxml_5etree_22_ProcessingInstruction_tag, 0, 0, 0},
   {(char *)"target", __pyx_getprop_4lxml_5etree_22_ProcessingInstruction_target, __pyx_setprop_4lxml_5etree_22_ProcessingInstruction_target, 0, 0},
-  {(char *)"attrib", __pyx_getprop_4lxml_5etree_22_ProcessingInstruction_attrib, 0, __Pyx_DOCSTR(__pyx_k_447), 0},
+  {(char *)"attrib", __pyx_getprop_4lxml_5etree_22_ProcessingInstruction_attrib, 0, __Pyx_DOCSTR(__pyx_k_450), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -160702,6 +160308,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ProcessingInstruction = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_PIBase __pyx_vtable_4lxml_5etree_PIBase;
 
@@ -160780,6 +160389,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_PIBase = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__XSLTProcessingInstruction __pyx_vtable_4lxml_5etree__XSLTProcessingInstruction;
 
@@ -160864,6 +160476,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTProcessingInstruction = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static struct __pyx_obj_4lxml_5etree___pyx_scope_struct__itervalues *__pyx_freelist_4lxml_5etree___pyx_scope_struct__itervalues[8];
@@ -160973,6 +160588,9 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct__itervalues = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry __pyx_vtable_4lxml_5etree__NamespaceRegistry;
 
@@ -161130,6 +160748,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__NamespaceRegistry = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__FunctionNamespaceRegistry __pyx_vtable_4lxml_5etree__FunctionNamespaceRegistry;
 
@@ -161227,6 +160848,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__FunctionNamespaceRegistry = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__XPathFunctionNamespaceRegistry __pyx_vtable_4lxml_5etree__XPathFunctionNamespaceRegistry;
 
@@ -161237,7 +160861,7 @@ static PyObject *__pyx_tp_new_4lxml_5etree__XPathFunctionNamespaceRegistry(PyTyp
   p = ((struct __pyx_obj_4lxml_5etree__XPathFunctionNamespaceRegistry *)o);
   p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree__NamespaceRegistry*)__pyx_vtabptr_4lxml_5etree__XPathFunctionNamespaceRegistry;
   p->_prefix = Py_None; Py_INCREF(Py_None);
-  p->_prefix_utf = Py_None; Py_INCREF(Py_None);
+  p->_prefix_utf = ((PyObject*)Py_None); Py_INCREF(Py_None);
   return o;
 }
 
@@ -161271,7 +160895,7 @@ static int __pyx_tp_clear_4lxml_5etree__XPathFunctionNamespaceRegistry(PyObject
   p->_prefix = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   tmp = ((PyObject*)p->_prefix_utf);
-  p->_prefix_utf = Py_None; Py_INCREF(Py_None);
+  p->_prefix_utf = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
@@ -161294,7 +160918,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree__XPathFunctionNamespaceRegistry[]
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__XPathFunctionNamespaceRegistry[] = {
-  {(char *)"prefix", __pyx_getprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix, __pyx_setprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix, __Pyx_DOCSTR(__pyx_k_448), 0},
+  {(char *)"prefix", __pyx_getprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix, __pyx_setprop_4lxml_5etree_31_XPathFunctionNamespaceRegistry_prefix, __Pyx_DOCSTR(__pyx_k_451), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -161360,6 +160984,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathFunctionNamespaceRegistry = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__FileReaderContext __pyx_vtable_4lxml_5etree__FileReaderContext;
 
@@ -161492,6 +161119,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__FileReaderContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__BaseErrorLog __pyx_vtable_4lxml_5etree__BaseErrorLog;
 
@@ -161608,6 +161238,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseErrorLog = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ElementTagMatcher __pyx_vtable_4lxml_5etree__ElementTagMatcher;
 
@@ -161705,6 +161338,9 @@ DL_EXPORT(PyTypeObject) LxmlElementTagMatcherType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XSLT __pyx_vtable_4lxml_5etree_XSLT;
 
@@ -161795,7 +161431,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree_XSLT[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XSLT[] = {
-  {(char *)"error_log", __pyx_getprop_4lxml_5etree_4XSLT_error_log, 0, __Pyx_DOCSTR(__pyx_k_449), 0},
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_4XSLT_error_log, 0, __Pyx_DOCSTR(__pyx_k_452), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -161853,6 +161489,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLT = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_ElementDepthFirstIterator __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator;
 
@@ -161970,6 +161609,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementDepthFirstIterator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_ElementClassLookup(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -162044,6 +161686,9 @@ DL_EXPORT(PyTypeObject) LxmlElementClassLookupType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ResolverRegistry __pyx_vtable_4lxml_5etree__ResolverRegistry;
 
@@ -162156,6 +161801,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ResolverRegistry = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__SaxParserTarget __pyx_vtable_4lxml_5etree__SaxParserTarget;
 
@@ -162234,6 +161882,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__SaxParserTarget = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_TreeBuilder __pyx_vtable_4lxml_5etree_TreeBuilder;
 
@@ -162379,6 +162030,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_TreeBuilder = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__XPathEvaluatorBase __pyx_vtable_4lxml_5etree__XPathEvaluatorBase;
 
@@ -162506,6 +162160,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathEvaluatorBase = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XPathElementEvaluator __pyx_vtable_4lxml_5etree_XPathElementEvaluator;
 
@@ -162607,6 +162264,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPathElementEvaluator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XPathDocumentEvaluator __pyx_vtable_4lxml_5etree_XPathDocumentEvaluator;
 
@@ -162677,6 +162337,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPathDocumentEvaluator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static struct __pyx_obj_4lxml_5etree___pyx_scope_struct_1_iterattributes *__pyx_freelist_4lxml_5etree___pyx_scope_struct_1_iterattributes[8];
@@ -162794,6 +162457,9 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__Comment __pyx_vtable_4lxml_5etree__Comment;
 
@@ -162877,6 +162543,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__Comment = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__MultiTagMatcher __pyx_vtable_4lxml_5etree__MultiTagMatcher;
 
@@ -162994,6 +162663,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__MultiTagMatcher = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XPath __pyx_vtable_4lxml_5etree_XPath;
 
@@ -163056,7 +162728,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree_XPath[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XPath[] = {
-  {(char *)"path", __pyx_getprop_4lxml_5etree_5XPath_path, 0, __Pyx_DOCSTR(__pyx_k_450), 0},
+  {(char *)"path", __pyx_getprop_4lxml_5etree_5XPath_path, 0, __Pyx_DOCSTR(__pyx_k_453), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -163114,6 +162786,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XPath = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_ETXPath __pyx_vtable_4lxml_5etree_ETXPath;
 
@@ -163192,6 +162867,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ETXPath = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup __pyx_vtable_4lxml_5etree_FallbackElementClassLookup;
 
@@ -163304,6 +162982,9 @@ DL_EXPORT(PyTypeObject) LxmlFallbackElementClassLookupType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_CustomElementClassLookup __pyx_vtable_4lxml_5etree_CustomElementClassLookup;
 
@@ -163382,6 +163063,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_CustomElementClassLookup = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__IncrementalFileWriter __pyx_vtable_4lxml_5etree__IncrementalFileWriter;
 
@@ -163392,7 +163076,7 @@ static PyObject *__pyx_tp_new_4lxml_5etree__IncrementalFileWriter(PyTypeObject *
   if (unlikely(!o)) return 0;
   p = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o);
   p->__pyx_vtab = __pyx_vtabptr_4lxml_5etree__IncrementalFileWriter;
-  p->_encoding = Py_None; Py_INCREF(Py_None);
+  p->_encoding = ((PyObject*)Py_None); Py_INCREF(Py_None);
   p->_target = Py_None; Py_INCREF(Py_None);
   p->_element_stack = ((PyObject*)Py_None); Py_INCREF(Py_None);
   if (unlikely(__pyx_pw_4lxml_5etree_22_IncrementalFileWriter_1__cinit__(o, a, k) < 0)) {
@@ -163438,7 +163122,7 @@ static int __pyx_tp_clear_4lxml_5etree__IncrementalFileWriter(PyObject *o) {
   struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *p = (struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)o;
   PyObject* tmp;
   tmp = ((PyObject*)p->_encoding);
-  p->_encoding = Py_None; Py_INCREF(Py_None);
+  p->_encoding = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   tmp = ((PyObject*)p->_target);
   p->_target = Py_None; Py_INCREF(Py_None);
@@ -163511,6 +163195,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__IncrementalFileWriter = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyProxy __pyx_vtable_4lxml_5etree__ReadOnlyProxy;
 
@@ -163596,10 +163283,10 @@ static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyProxy[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyProxy[] = {
-  {(char *)"tag", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tag, 0, __Pyx_DOCSTR(__pyx_k_439), 0},
-  {(char *)"text", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text, 0, __Pyx_DOCSTR(__pyx_k_441), 0},
-  {(char *)"tail", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tail, 0, __Pyx_DOCSTR(__pyx_k_442), 0},
-  {(char *)"sourceline", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_sourceline, 0, __Pyx_DOCSTR(__pyx_k_444), 0},
+  {(char *)"tag", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tag, 0, __Pyx_DOCSTR(__pyx_k_442), 0},
+  {(char *)"text", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_text, 0, __Pyx_DOCSTR(__pyx_k_444), 0},
+  {(char *)"tail", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_tail, 0, __Pyx_DOCSTR(__pyx_k_445), 0},
+  {(char *)"sourceline", __pyx_getprop_4lxml_5etree_14_ReadOnlyProxy_sourceline, 0, __Pyx_DOCSTR(__pyx_k_447), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -163734,6 +163421,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyProxy = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyElementProxy __pyx_vtable_4lxml_5etree__ReadOnlyElementProxy;
 
@@ -163764,7 +163454,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree__ReadOnlyElementProxy[] = {
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ReadOnlyElementProxy[] = {
   {(char *)"attrib", __pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_attrib, 0, 0, 0},
-  {(char *)"prefix", __pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_prefix, 0, __Pyx_DOCSTR(__pyx_k_443), 0},
+  {(char *)"prefix", __pyx_getprop_4lxml_5etree_21_ReadOnlyElementProxy_prefix, 0, __Pyx_DOCSTR(__pyx_k_446), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -163830,6 +163520,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyElementProxy = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_CommentBase __pyx_vtable_4lxml_5etree_CommentBase;
 
@@ -163908,6 +163601,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_CommentBase = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__XSLTQuotedStringParam(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -164006,6 +163702,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTQuotedStringParam = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__BaseContext __pyx_vtable_4lxml_5etree__BaseContext;
 
@@ -164200,6 +163899,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__BaseContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__XSLTContext __pyx_vtable_4lxml_5etree__XSLTContext;
 
@@ -164310,6 +164012,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__DTDElementDecl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -164434,6 +164139,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDElementDecl = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XSLTExtension __pyx_vtable_4lxml_5etree_XSLTExtension;
 
@@ -164512,6 +164220,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLTExtension = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ExceptionContext __pyx_vtable_4lxml_5etree__ExceptionContext;
 
@@ -164609,6 +164320,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ExceptionContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ResolverContext __pyx_vtable_4lxml_5etree__ResolverContext;
 
@@ -164716,6 +164430,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ResolverContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ParserContext __pyx_vtable_4lxml_5etree__ParserContext;
 
@@ -164835,6 +164552,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__SaxParserContext __pyx_vtable_4lxml_5etree__SaxParserContext;
 
@@ -164934,6 +164654,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__SaxParserContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__TargetParserContext __pyx_vtable_4lxml_5etree__TargetParserContext;
 
@@ -165033,6 +164756,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__TargetParserContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_Resolver(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -165109,6 +164835,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_Resolver = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__XPathContext __pyx_vtable_4lxml_5etree__XPathContext;
 
@@ -165208,6 +164937,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XPathContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__Entity __pyx_vtable_4lxml_5etree__Entity;
 
@@ -165311,6 +165043,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__Entity = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_EntityBase __pyx_vtable_4lxml_5etree_EntityBase;
 
@@ -165389,6 +165124,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_EntityBase = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_XInclude(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -165493,6 +165231,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XInclude = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__Document __pyx_vtable_4lxml_5etree__Document;
 
@@ -165607,6 +165348,9 @@ DL_EXPORT(PyTypeObject) LxmlDocumentType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__InputDocument(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -165615,7 +165359,7 @@ static PyObject *__pyx_tp_new_4lxml_5etree__InputDocument(PyTypeObject *t, CYTHO
   o = (*t->tp_alloc)(t, 0);
   if (unlikely(!o)) return 0;
   p = ((struct __pyx_obj_4lxml_5etree__InputDocument *)o);
-  p->_data_bytes = Py_None; Py_INCREF(Py_None);
+  p->_data_bytes = ((PyObject*)Py_None); Py_INCREF(Py_None);
   p->_filename = Py_None; Py_INCREF(Py_None);
   p->_file = Py_None; Py_INCREF(Py_None);
   if (unlikely(__pyx_pw_4lxml_5etree_14_InputDocument_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
@@ -165652,7 +165396,7 @@ static int __pyx_tp_clear_4lxml_5etree__InputDocument(PyObject *o) {
   struct __pyx_obj_4lxml_5etree__InputDocument *p = (struct __pyx_obj_4lxml_5etree__InputDocument *)o;
   PyObject* tmp;
   tmp = ((PyObject*)p->_data_bytes);
-  p->_data_bytes = Py_None; Py_INCREF(Py_None);
+  p->_data_bytes = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   tmp = ((PyObject*)p->_filename);
   p->_filename = Py_None; Py_INCREF(Py_None);
@@ -165721,6 +165465,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__InputDocument = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ElementTree __pyx_vtable_4lxml_5etree__ElementTree;
 
@@ -165800,8 +165547,8 @@ static PyMethodDef __pyx_methods_4lxml_5etree__ElementTree[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__ElementTree[] = {
-  {(char *)"docinfo", __pyx_getprop_4lxml_5etree_12_ElementTree_docinfo, 0, __Pyx_DOCSTR(__pyx_k_451), 0},
-  {(char *)"parser", __pyx_getprop_4lxml_5etree_12_ElementTree_parser, 0, __Pyx_DOCSTR(__pyx_k_452), 0},
+  {(char *)"docinfo", __pyx_getprop_4lxml_5etree_12_ElementTree_docinfo, 0, __Pyx_DOCSTR(__pyx_k_454), 0},
+  {(char *)"parser", __pyx_getprop_4lxml_5etree_12_ElementTree_parser, 0, __Pyx_DOCSTR(__pyx_k_455), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -165859,6 +165606,9 @@ DL_EXPORT(PyTypeObject) LxmlElementTreeType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy;
 
@@ -165956,6 +165706,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyProxy = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_ParserBasedElementClassLookup __pyx_vtable_4lxml_5etree_ParserBasedElementClassLookup;
 
@@ -166033,6 +165786,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ParserBasedElementClassLookup = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__Validator __pyx_vtable_4lxml_5etree__Validator;
 
@@ -166089,7 +165845,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree__Validator[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__Validator[] = {
-  {(char *)"error_log", __pyx_getprop_4lxml_5etree_10_Validator_error_log, 0, __Pyx_DOCSTR(__pyx_k_453), 0},
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_10_Validator_error_log, 0, __Pyx_DOCSTR(__pyx_k_456), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -166147,6 +165903,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__Validator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_RelaxNG __pyx_vtable_4lxml_5etree_RelaxNG;
 
@@ -166235,6 +165994,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_RelaxNG = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__LogEntry __pyx_vtable_4lxml_5etree__LogEntry;
 
@@ -166327,9 +166089,9 @@ static PyMethodDef __pyx_methods_4lxml_5etree__LogEntry[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__LogEntry[] = {
-  {(char *)"domain_name", __pyx_getprop_4lxml_5etree_9_LogEntry_domain_name, 0, __Pyx_DOCSTR(__pyx_k_454), 0},
-  {(char *)"type_name", __pyx_getprop_4lxml_5etree_9_LogEntry_type_name, 0, __Pyx_DOCSTR(__pyx_k_455), 0},
-  {(char *)"level_name", __pyx_getprop_4lxml_5etree_9_LogEntry_level_name, 0, __Pyx_DOCSTR(__pyx_k_456), 0},
+  {(char *)"domain_name", __pyx_getprop_4lxml_5etree_9_LogEntry_domain_name, 0, __Pyx_DOCSTR(__pyx_k_457), 0},
+  {(char *)"type_name", __pyx_getprop_4lxml_5etree_9_LogEntry_type_name, 0, __Pyx_DOCSTR(__pyx_k_458), 0},
+  {(char *)"level_name", __pyx_getprop_4lxml_5etree_9_LogEntry_level_name, 0, __Pyx_DOCSTR(__pyx_k_459), 0},
   {(char *)"domain", __pyx_getprop_4lxml_5etree_9_LogEntry_domain, 0, 0, 0},
   {(char *)"type", __pyx_getprop_4lxml_5etree_9_LogEntry_type, 0, 0, 0},
   {(char *)"level", __pyx_getprop_4lxml_5etree_9_LogEntry_level, 0, 0, 0},
@@ -166394,6 +166156,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__LogEntry = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__PythonSaxParserTarget __pyx_vtable_4lxml_5etree__PythonSaxParserTarget;
 
@@ -166536,6 +166301,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__PythonSaxParserTarget = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_CDATA(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -166634,6 +166402,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_CDATA = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_xmlfile(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -166643,7 +166414,7 @@ static PyObject *__pyx_tp_new_4lxml_5etree_xmlfile(PyTypeObject *t, CYTHON_UNUSE
   if (unlikely(!o)) return 0;
   p = ((struct __pyx_obj_4lxml_5etree_xmlfile *)o);
   p->output_file = Py_None; Py_INCREF(Py_None);
-  p->encoding = Py_None; Py_INCREF(Py_None);
+  p->encoding = ((PyObject*)Py_None); Py_INCREF(Py_None);
   p->writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)Py_None); Py_INCREF(Py_None);
   return o;
 }
@@ -166679,7 +166450,7 @@ static int __pyx_tp_clear_4lxml_5etree_xmlfile(PyObject *o) {
   p->output_file = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   tmp = ((PyObject*)p->encoding);
-  p->encoding = Py_None; Py_INCREF(Py_None);
+  p->encoding = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   tmp = ((PyObject*)p->writer);
   p->writer = ((struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *)Py_None); Py_INCREF(Py_None);
@@ -166747,6 +166518,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_xmlfile = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__DTDElementContentDecl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -166874,6 +166648,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDElementContentDecl = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__IterparseContext __pyx_vtable_4lxml_5etree__IterparseContext;
 
@@ -167024,6 +166801,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__IterparseContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ListErrorLog __pyx_vtable_4lxml_5etree__ListErrorLog;
 
@@ -167215,6 +166995,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ListErrorLog = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ErrorLog __pyx_vtable_4lxml_5etree__ErrorLog;
 
@@ -167325,6 +167108,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ErrorLog = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyPIProxy __pyx_vtable_4lxml_5etree__ReadOnlyPIProxy;
 
@@ -167412,6 +167198,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyPIProxy = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__XSLTResultTree __pyx_vtable_4lxml_5etree__XSLTResultTree;
 
@@ -167484,7 +167273,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree__XSLTResultTree[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__XSLTResultTree[] = {
-  {(char *)"xslt_profile", __pyx_getprop_4lxml_5etree_15_XSLTResultTree_xslt_profile, __pyx_setprop_4lxml_5etree_15_XSLTResultTree_xslt_profile, __Pyx_DOCSTR(__pyx_k_457), 0},
+  {(char *)"xslt_profile", __pyx_getprop_4lxml_5etree_15_XSLTResultTree_xslt_profile, __pyx_setprop_4lxml_5etree_15_XSLTResultTree_xslt_profile, __Pyx_DOCSTR(__pyx_k_460), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -167563,6 +167352,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTResultTree = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_ElementTextIterator(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -167670,6 +167462,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementTextIterator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ElementIterator __pyx_vtable_4lxml_5etree__ElementIterator;
 
@@ -167770,6 +167565,9 @@ DL_EXPORT(PyTypeObject) LxmlElementIteratorType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_ElementBase(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -167844,6 +167642,9 @@ DL_EXPORT(PyTypeObject) LxmlElementBaseType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_PyErrorLog __pyx_vtable_4lxml_5etree_PyErrorLog;
 
@@ -167975,6 +167776,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_PyErrorLog = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_DTD __pyx_vtable_4lxml_5etree_DTD;
 
@@ -168086,6 +167890,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_DTD = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_iterparse __pyx_vtable_4lxml_5etree_iterparse;
 
@@ -168099,7 +167906,7 @@ static PyObject *__pyx_tp_new_4lxml_5etree_iterparse(PyTypeObject *t, PyObject *
   p->_events = Py_None; Py_INCREF(Py_None);
   p->root = Py_None; Py_INCREF(Py_None);
   p->_source = Py_None; Py_INCREF(Py_None);
-  p->_buffer = Py_None; Py_INCREF(Py_None);
+  p->_buffer = ((PyObject*)Py_None); Py_INCREF(Py_None);
   return o;
 }
 
@@ -168154,7 +167961,7 @@ static int __pyx_tp_clear_4lxml_5etree_iterparse(PyObject *o) {
   p->_source = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   tmp = ((PyObject*)p->_buffer);
-  p->_buffer = Py_None; Py_INCREF(Py_None);
+  p->_buffer = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
@@ -168174,7 +167981,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree_iterparse[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree_iterparse[] = {
-  {(char *)"error_log", __pyx_getprop_4lxml_5etree_9iterparse_error_log, 0, __Pyx_DOCSTR(__pyx_k_458), 0},
+  {(char *)"error_log", __pyx_getprop_4lxml_5etree_9iterparse_error_log, 0, __Pyx_DOCSTR(__pyx_k_461), 0},
   {(char *)"root", __pyx_getprop_4lxml_5etree_9iterparse_root, 0, 0, 0},
   {0, 0, 0, 0, 0}
 };
@@ -168233,6 +168040,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_iterparse = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static struct __pyx_obj_4lxml_5etree___pyx_scope_struct_2_iterelements *__pyx_freelist_4lxml_5etree___pyx_scope_struct_2_iterelements[8];
@@ -168350,6 +168160,9 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_2_iterelements =
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__XSLTResolverContext __pyx_vtable_4lxml_5etree__XSLTResolverContext;
 
@@ -168449,6 +168262,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__XSLTResolverContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ParserDictionaryContext __pyx_vtable_4lxml_5etree__ParserDictionaryContext;
 
@@ -168566,6 +168382,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserDictionaryContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_iterwalk __pyx_vtable_4lxml_5etree_iterwalk;
 
@@ -168688,6 +168507,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_iterwalk = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__DomainErrorLog __pyx_vtable_4lxml_5etree__DomainErrorLog;
 
@@ -168767,6 +168589,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__DomainErrorLog = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_AttributeBasedElementClassLookup __pyx_vtable_4lxml_5etree_AttributeBasedElementClassLookup;
 
@@ -168777,7 +168602,7 @@ static PyObject *__pyx_tp_new_4lxml_5etree_AttributeBasedElementClassLookup(PyTy
   p = ((struct __pyx_obj_4lxml_5etree_AttributeBasedElementClassLookup *)o);
   p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_4lxml_5etree_FallbackElementClassLookup*)__pyx_vtabptr_4lxml_5etree_AttributeBasedElementClassLookup;
   p->_class_mapping = Py_None; Py_INCREF(Py_None);
-  p->_pytag = Py_None; Py_INCREF(Py_None);
+  p->_pytag = ((PyObject*)Py_None); Py_INCREF(Py_None);
   if (unlikely(__pyx_pw_4lxml_5etree_32AttributeBasedElementClassLookup_1__cinit__(o, __pyx_empty_tuple, NULL) < 0)) {
     Py_DECREF(o); o = 0;
   }
@@ -168814,7 +168639,7 @@ static int __pyx_tp_clear_4lxml_5etree_AttributeBasedElementClassLookup(PyObject
   p->_class_mapping = Py_None; Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   tmp = ((PyObject*)p->_pytag);
-  p->_pytag = Py_None; Py_INCREF(Py_None);
+  p->_pytag = ((PyObject*)Py_None); Py_INCREF(Py_None);
   Py_XDECREF(tmp);
   return 0;
 }
@@ -168877,6 +168702,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_AttributeBasedElementClassLookup = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_DocInfo(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -168972,16 +168800,16 @@ static PyMethodDef __pyx_methods_4lxml_5etree_DocInfo[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree_DocInfo[] = {
-  {(char *)"root_name", __pyx_getprop_4lxml_5etree_7DocInfo_root_name, 0, __Pyx_DOCSTR(__pyx_k_459), 0},
-  {(char *)"public_id", __pyx_getprop_4lxml_5etree_7DocInfo_public_id, 0, __Pyx_DOCSTR(__pyx_k_460), 0},
-  {(char *)"system_url", __pyx_getprop_4lxml_5etree_7DocInfo_system_url, 0, __Pyx_DOCSTR(__pyx_k_461), 0},
-  {(char *)"xml_version", __pyx_getprop_4lxml_5etree_7DocInfo_xml_version, 0, __Pyx_DOCSTR(__pyx_k_462), 0},
-  {(char *)"encoding", __pyx_getprop_4lxml_5etree_7DocInfo_encoding, 0, __Pyx_DOCSTR(__pyx_k_463), 0},
-  {(char *)"standalone", __pyx_getprop_4lxml_5etree_7DocInfo_standalone, 0, __Pyx_DOCSTR(__pyx_k_464), 0},
-  {(char *)"URL", __pyx_getprop_4lxml_5etree_7DocInfo_URL, __pyx_setprop_4lxml_5etree_7DocInfo_URL, __Pyx_DOCSTR(__pyx_k_465), 0},
-  {(char *)"doctype", __pyx_getprop_4lxml_5etree_7DocInfo_doctype, 0, __Pyx_DOCSTR(__pyx_k_466), 0},
-  {(char *)"internalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_internalDTD, 0, __Pyx_DOCSTR(__pyx_k_467), 0},
-  {(char *)"externalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_externalDTD, 0, __Pyx_DOCSTR(__pyx_k_468), 0},
+  {(char *)"root_name", __pyx_getprop_4lxml_5etree_7DocInfo_root_name, 0, __Pyx_DOCSTR(__pyx_k_462), 0},
+  {(char *)"public_id", __pyx_getprop_4lxml_5etree_7DocInfo_public_id, 0, __Pyx_DOCSTR(__pyx_k_463), 0},
+  {(char *)"system_url", __pyx_getprop_4lxml_5etree_7DocInfo_system_url, 0, __Pyx_DOCSTR(__pyx_k_464), 0},
+  {(char *)"xml_version", __pyx_getprop_4lxml_5etree_7DocInfo_xml_version, 0, __Pyx_DOCSTR(__pyx_k_465), 0},
+  {(char *)"encoding", __pyx_getprop_4lxml_5etree_7DocInfo_encoding, 0, __Pyx_DOCSTR(__pyx_k_466), 0},
+  {(char *)"standalone", __pyx_getprop_4lxml_5etree_7DocInfo_standalone, 0, __Pyx_DOCSTR(__pyx_k_467), 0},
+  {(char *)"URL", __pyx_getprop_4lxml_5etree_7DocInfo_URL, __pyx_setprop_4lxml_5etree_7DocInfo_URL, __Pyx_DOCSTR(__pyx_k_468), 0},
+  {(char *)"doctype", __pyx_getprop_4lxml_5etree_7DocInfo_doctype, 0, __Pyx_DOCSTR(__pyx_k_469), 0},
+  {(char *)"internalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_internalDTD, 0, __Pyx_DOCSTR(__pyx_k_470), 0},
+  {(char *)"externalDTD", __pyx_getprop_4lxml_5etree_7DocInfo_externalDTD, 0, __Pyx_DOCSTR(__pyx_k_471), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -169039,6 +168867,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_DocInfo = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__DTDAttributeDecl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -169173,6 +169004,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDAttributeDecl = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XMLSchema __pyx_vtable_4lxml_5etree_XMLSchema;
 
@@ -169261,6 +169095,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XMLSchema = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ElementMatchIterator __pyx_vtable_4lxml_5etree__ElementMatchIterator;
 
@@ -169367,6 +169204,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ElementMatchIterator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_AncestorsIterator __pyx_vtable_4lxml_5etree_AncestorsIterator;
 
@@ -169448,6 +169288,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_AncestorsIterator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__IDDict __pyx_vtable_4lxml_5etree__IDDict;
 
@@ -169599,6 +169442,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__IDDict = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_ElementNamespaceClassLookup __pyx_vtable_4lxml_5etree_ElementNamespaceClassLookup;
 
@@ -169702,6 +169548,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementNamespaceClassLookup = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__AppendOnlyElementProxy __pyx_vtable_4lxml_5etree__AppendOnlyElementProxy;
 
@@ -169735,7 +169584,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree__AppendOnlyElementProxy[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree__AppendOnlyElementProxy[] = {
-  {(char *)"text", __pyx_getprop_4lxml_5etree_23_AppendOnlyElementProxy_text, __pyx_setprop_4lxml_5etree_23_AppendOnlyElementProxy_text, __Pyx_DOCSTR(__pyx_k_469), 0},
+  {(char *)"text", __pyx_getprop_4lxml_5etree_23_AppendOnlyElementProxy_text, __pyx_setprop_4lxml_5etree_23_AppendOnlyElementProxy_text, __Pyx_DOCSTR(__pyx_k_472), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -169801,6 +169650,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__AppendOnlyElementProxy = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyEntityProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyEntityProxy;
 
@@ -169898,6 +169750,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyEntityProxy = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ReadOnlyEntityProxy __pyx_vtable_4lxml_5etree__ReadOnlyEntityProxy;
 
@@ -170000,6 +169855,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ReadOnlyEntityProxy = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__FileWriterElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -170108,6 +169966,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__FileWriterElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__MemDebug(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -170184,6 +170045,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__MemDebug = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__Attrib(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -170388,6 +170252,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__Attrib = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_ElementDefaultClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -170536,6 +170403,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementDefaultClassLookup = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__ElementUnicodeResult(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -170666,6 +170536,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ElementUnicodeResult = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ExsltRegExp __pyx_vtable_4lxml_5etree__ExsltRegExp;
 
@@ -170769,6 +170642,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ExsltRegExp = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree_QName(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -170899,6 +170775,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_QName = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static struct __pyx_obj_4lxml_5etree___pyx_scope_struct_3_iterentities *__pyx_freelist_4lxml_5etree___pyx_scope_struct_3_iterentities[8];
@@ -171016,6 +170895,9 @@ static PyTypeObject __pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities =
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__TempStore __pyx_vtable_4lxml_5etree__TempStore;
 
@@ -171113,6 +170995,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__TempStore = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__OpaqueNodeWrapper(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -171184,6 +171069,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__OpaqueNodeWrapper = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__FilelikeWriter __pyx_vtable_4lxml_5etree__FilelikeWriter;
 
@@ -171308,6 +171196,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__FilelikeWriter = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__OpaqueDocumentWrapper __pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper;
 
@@ -171384,6 +171275,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__OpaqueDocumentWrapper = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_Schematron __pyx_vtable_4lxml_5etree_Schematron;
 
@@ -171472,6 +171366,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_Schematron = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__ErrorLogContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -171543,6 +171440,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ErrorLogContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_XSLTAccessControl __pyx_vtable_4lxml_5etree_XSLTAccessControl;
 
@@ -171581,7 +171481,7 @@ static PyMethodDef __pyx_methods_4lxml_5etree_XSLTAccessControl[] = {
 };
 
 static struct PyGetSetDef __pyx_getsets_4lxml_5etree_XSLTAccessControl[] = {
-  {(char *)"options", __pyx_getprop_4lxml_5etree_17XSLTAccessControl_options, 0, __Pyx_DOCSTR(__pyx_k_470), 0},
+  {(char *)"options", __pyx_getprop_4lxml_5etree_17XSLTAccessControl_options, 0, __Pyx_DOCSTR(__pyx_k_473), 0},
   {0, 0, 0, 0, 0}
 };
 
@@ -171639,6 +171539,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_XSLTAccessControl = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_SiblingsIterator __pyx_vtable_4lxml_5etree_SiblingsIterator;
 
@@ -171720,6 +171623,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_SiblingsIterator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_HTMLParser __pyx_vtable_4lxml_5etree_HTMLParser;
 
@@ -171790,6 +171696,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_HTMLParser = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ModifyContentOnlyPIProxy __pyx_vtable_4lxml_5etree__ModifyContentOnlyPIProxy;
 
@@ -171887,6 +171796,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ModifyContentOnlyPIProxy = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ClassNamespaceRegistry __pyx_vtable_4lxml_5etree__ClassNamespaceRegistry;
 
@@ -171984,6 +171896,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ClassNamespaceRegistry = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__ParserSchemaValidationContext __pyx_vtable_4lxml_5etree__ParserSchemaValidationContext;
 
@@ -172093,6 +172008,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__ParserSchemaValidationContext = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__DTDEntityDecl(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -172210,6 +172128,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__DTDEntityDecl = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_5etree__AttribIterator(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -172306,6 +172227,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__AttribIterator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_PythonElementClassLookup __pyx_vtable_4lxml_5etree_PythonElementClassLookup;
 
@@ -172384,6 +172308,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_PythonElementClassLookup = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree_ElementChildIterator __pyx_vtable_4lxml_5etree_ElementChildIterator;
 
@@ -172465,6 +172392,9 @@ static PyTypeObject __pyx_type_4lxml_5etree_ElementChildIterator = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_5etree__RotatingErrorLog __pyx_vtable_4lxml_5etree__RotatingErrorLog;
 
@@ -172544,6 +172474,9 @@ static PyTypeObject __pyx_type_4lxml_5etree__RotatingErrorLog = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyMethodDef __pyx_methods[] = {
@@ -172558,7 +172491,7 @@ static struct PyModuleDef __pyx_moduledef = {
     PyModuleDef_HEAD_INIT,
   #endif
     __Pyx_NAMESTR("etree"),
-    __Pyx_DOCSTR(__pyx_k_471), /* m_doc */
+    __Pyx_DOCSTR(__pyx_k_474), /* m_doc */
     -1, /* m_size */
     __pyx_methods /* m_methods */,
     NULL, /* m_reload */
@@ -172570,219 +172503,216 @@ static struct PyModuleDef __pyx_moduledef = {
 
 static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_kp_s_1, __pyx_k_1, sizeof(__pyx_k_1), 0, 0, 1, 0},
-  {&__pyx_kp_s_101, __pyx_k_101, sizeof(__pyx_k_101), 0, 0, 1, 0},
-  {&__pyx_kp_u_103, __pyx_k_103, sizeof(__pyx_k_103), 0, 1, 0, 0},
+  {&__pyx_kp_s_100, __pyx_k_100, sizeof(__pyx_k_100), 0, 0, 1, 0},
+  {&__pyx_kp_s_102, __pyx_k_102, sizeof(__pyx_k_102), 0, 0, 1, 0},
   {&__pyx_kp_s_104, __pyx_k_104, sizeof(__pyx_k_104), 0, 0, 1, 0},
-  {&__pyx_kp_u_104, __pyx_k_104, sizeof(__pyx_k_104), 0, 1, 0, 0},
-  {&__pyx_kp_u_105, __pyx_k_105, sizeof(__pyx_k_105), 0, 1, 0, 0},
-  {&__pyx_kp_b_107, __pyx_k_107, sizeof(__pyx_k_107), 0, 0, 0, 0},
+  {&__pyx_kp_u_106, __pyx_k_106, sizeof(__pyx_k_106), 0, 1, 0, 0},
+  {&__pyx_kp_s_107, __pyx_k_107, sizeof(__pyx_k_107), 0, 0, 1, 0},
   {&__pyx_kp_u_107, __pyx_k_107, sizeof(__pyx_k_107), 0, 1, 0, 0},
-  {&__pyx_kp_u_114, __pyx_k_114, sizeof(__pyx_k_114), 0, 1, 0, 0},
-  {&__pyx_kp_b_115, __pyx_k_115, sizeof(__pyx_k_115), 0, 0, 0, 0},
-  {&__pyx_kp_s_115, __pyx_k_115, sizeof(__pyx_k_115), 0, 0, 1, 0},
-  {&__pyx_kp_s_116, __pyx_k_116, sizeof(__pyx_k_116), 0, 0, 1, 0},
-  {&__pyx_kp_u_123, __pyx_k_123, sizeof(__pyx_k_123), 0, 1, 0, 0},
-  {&__pyx_kp_u_124, __pyx_k_124, sizeof(__pyx_k_124), 0, 1, 0, 0},
-  {&__pyx_kp_u_129, __pyx_k_129, sizeof(__pyx_k_129), 0, 1, 0, 0},
-  {&__pyx_kp_u_130, __pyx_k_130, sizeof(__pyx_k_130), 0, 1, 0, 0},
-  {&__pyx_kp_u_131, __pyx_k_131, sizeof(__pyx_k_131), 0, 1, 0, 0},
-  {&__pyx_kp_s_132, __pyx_k_132, sizeof(__pyx_k_132), 0, 0, 1, 0},
+  {&__pyx_kp_u_108, __pyx_k_108, sizeof(__pyx_k_108), 0, 1, 0, 0},
+  {&__pyx_kp_b_110, __pyx_k_110, sizeof(__pyx_k_110), 0, 0, 0, 0},
+  {&__pyx_kp_u_110, __pyx_k_110, sizeof(__pyx_k_110), 0, 1, 0, 0},
+  {&__pyx_kp_u_117, __pyx_k_117, sizeof(__pyx_k_117), 0, 1, 0, 0},
+  {&__pyx_kp_b_118, __pyx_k_118, sizeof(__pyx_k_118), 0, 0, 0, 0},
+  {&__pyx_kp_s_118, __pyx_k_118, sizeof(__pyx_k_118), 0, 0, 1, 0},
+  {&__pyx_kp_s_119, __pyx_k_119, sizeof(__pyx_k_119), 0, 0, 1, 0},
+  {&__pyx_kp_u_126, __pyx_k_126, sizeof(__pyx_k_126), 0, 1, 0, 0},
+  {&__pyx_kp_u_127, __pyx_k_127, sizeof(__pyx_k_127), 0, 1, 0, 0},
+  {&__pyx_kp_u_132, __pyx_k_132, sizeof(__pyx_k_132), 0, 1, 0, 0},
+  {&__pyx_kp_u_133, __pyx_k_133, sizeof(__pyx_k_133), 0, 1, 0, 0},
+  {&__pyx_kp_u_134, __pyx_k_134, sizeof(__pyx_k_134), 0, 1, 0, 0},
   {&__pyx_kp_s_135, __pyx_k_135, sizeof(__pyx_k_135), 0, 0, 1, 0},
-  {&__pyx_kp_u_136, __pyx_k_136, sizeof(__pyx_k_136), 0, 1, 0, 0},
-  {&__pyx_kp_u_137, __pyx_k_137, sizeof(__pyx_k_137), 0, 1, 0, 0},
-  {&__pyx_kp_u_138, __pyx_k_138, sizeof(__pyx_k_138), 0, 1, 0, 0},
+  {&__pyx_kp_s_138, __pyx_k_138, sizeof(__pyx_k_138), 0, 0, 1, 0},
   {&__pyx_kp_u_139, __pyx_k_139, sizeof(__pyx_k_139), 0, 1, 0, 0},
   {&__pyx_kp_u_140, __pyx_k_140, sizeof(__pyx_k_140), 0, 1, 0, 0},
-  {&__pyx_kp_s_142, __pyx_k_142, sizeof(__pyx_k_142), 0, 0, 1, 0},
+  {&__pyx_kp_u_141, __pyx_k_141, sizeof(__pyx_k_141), 0, 1, 0, 0},
+  {&__pyx_kp_u_142, __pyx_k_142, sizeof(__pyx_k_142), 0, 1, 0, 0},
   {&__pyx_kp_u_143, __pyx_k_143, sizeof(__pyx_k_143), 0, 1, 0, 0},
-  {&__pyx_kp_s_144, __pyx_k_144, sizeof(__pyx_k_144), 0, 0, 1, 0},
-  {&__pyx_kp_u_145, __pyx_k_145, sizeof(__pyx_k_145), 0, 1, 0, 0},
+  {&__pyx_kp_s_145, __pyx_k_145, sizeof(__pyx_k_145), 0, 0, 1, 0},
   {&__pyx_kp_u_146, __pyx_k_146, sizeof(__pyx_k_146), 0, 1, 0, 0},
-  {&__pyx_kp_u_147, __pyx_k_147, sizeof(__pyx_k_147), 0, 1, 0, 0},
+  {&__pyx_kp_s_147, __pyx_k_147, sizeof(__pyx_k_147), 0, 0, 1, 0},
   {&__pyx_kp_u_148, __pyx_k_148, sizeof(__pyx_k_148), 0, 1, 0, 0},
+  {&__pyx_kp_u_149, __pyx_k_149, sizeof(__pyx_k_149), 0, 1, 0, 0},
   {&__pyx_kp_u_15, __pyx_k_15, sizeof(__pyx_k_15), 0, 1, 0, 0},
-  {&__pyx_kp_u_153, __pyx_k_153, sizeof(__pyx_k_153), 0, 1, 0, 0},
-  {&__pyx_n_s_154, __pyx_k_154, sizeof(__pyx_k_154), 0, 0, 1, 1},
-  {&__pyx_kp_u_155, __pyx_k_155, sizeof(__pyx_k_155), 0, 1, 0, 0},
+  {&__pyx_kp_u_150, __pyx_k_150, sizeof(__pyx_k_150), 0, 1, 0, 0},
+  {&__pyx_kp_u_151, __pyx_k_151, sizeof(__pyx_k_151), 0, 1, 0, 0},
   {&__pyx_kp_u_156, __pyx_k_156, sizeof(__pyx_k_156), 0, 1, 0, 0},
-  {&__pyx_kp_u_157, __pyx_k_157, sizeof(__pyx_k_157), 0, 1, 0, 0},
+  {&__pyx_n_s_157, __pyx_k_157, sizeof(__pyx_k_157), 0, 0, 1, 1},
   {&__pyx_kp_u_158, __pyx_k_158, sizeof(__pyx_k_158), 0, 1, 0, 0},
   {&__pyx_kp_u_159, __pyx_k_159, sizeof(__pyx_k_159), 0, 1, 0, 0},
   {&__pyx_kp_u_16, __pyx_k_16, sizeof(__pyx_k_16), 0, 1, 0, 0},
-  {&__pyx_kp_s_160, __pyx_k_160, sizeof(__pyx_k_160), 0, 0, 1, 0},
+  {&__pyx_kp_u_160, __pyx_k_160, sizeof(__pyx_k_160), 0, 1, 0, 0},
   {&__pyx_kp_u_161, __pyx_k_161, sizeof(__pyx_k_161), 0, 1, 0, 0},
-  {&__pyx_n_u_162, __pyx_k_162, sizeof(__pyx_k_162), 0, 1, 0, 1},
-  {&__pyx_kp_u_168, __pyx_k_168, sizeof(__pyx_k_168), 0, 1, 0, 0},
-  {&__pyx_kp_u_169, __pyx_k_169, sizeof(__pyx_k_169), 0, 1, 0, 0},
+  {&__pyx_kp_u_162, __pyx_k_162, sizeof(__pyx_k_162), 0, 1, 0, 0},
+  {&__pyx_kp_s_163, __pyx_k_163, sizeof(__pyx_k_163), 0, 0, 1, 0},
+  {&__pyx_kp_u_164, __pyx_k_164, sizeof(__pyx_k_164), 0, 1, 0, 0},
+  {&__pyx_n_u_165, __pyx_k_165, sizeof(__pyx_k_165), 0, 1, 0, 1},
   {&__pyx_kp_u_17, __pyx_k_17, sizeof(__pyx_k_17), 0, 1, 0, 0},
-  {&__pyx_kp_u_170, __pyx_k_170, sizeof(__pyx_k_170), 0, 1, 0, 0},
   {&__pyx_kp_u_171, __pyx_k_171, sizeof(__pyx_k_171), 0, 1, 0, 0},
   {&__pyx_kp_u_172, __pyx_k_172, sizeof(__pyx_k_172), 0, 1, 0, 0},
   {&__pyx_kp_u_173, __pyx_k_173, sizeof(__pyx_k_173), 0, 1, 0, 0},
-  {&__pyx_n_s_174, __pyx_k_174, sizeof(__pyx_k_174), 0, 0, 1, 1},
-  {&__pyx_n_s_175, __pyx_k_175, sizeof(__pyx_k_175), 0, 0, 1, 1},
+  {&__pyx_kp_u_174, __pyx_k_174, sizeof(__pyx_k_174), 0, 1, 0, 0},
+  {&__pyx_kp_u_175, __pyx_k_175, sizeof(__pyx_k_175), 0, 1, 0, 0},
   {&__pyx_kp_u_176, __pyx_k_176, sizeof(__pyx_k_176), 0, 1, 0, 0},
-  {&__pyx_kp_u_177, __pyx_k_177, sizeof(__pyx_k_177), 0, 1, 0, 0},
-  {&__pyx_kp_u_178, __pyx_k_178, sizeof(__pyx_k_178), 0, 1, 0, 0},
-  {&__pyx_n_s_179, __pyx_k_179, sizeof(__pyx_k_179), 0, 0, 1, 1},
+  {&__pyx_n_s_177, __pyx_k_177, sizeof(__pyx_k_177), 0, 0, 1, 1},
+  {&__pyx_n_s_178, __pyx_k_178, sizeof(__pyx_k_178), 0, 0, 1, 1},
+  {&__pyx_kp_u_179, __pyx_k_179, sizeof(__pyx_k_179), 0, 1, 0, 0},
   {&__pyx_kp_u_18, __pyx_k_18, sizeof(__pyx_k_18), 0, 1, 0, 0},
   {&__pyx_kp_u_180, __pyx_k_180, sizeof(__pyx_k_180), 0, 1, 0, 0},
   {&__pyx_kp_u_181, __pyx_k_181, sizeof(__pyx_k_181), 0, 1, 0, 0},
-  {&__pyx_kp_u_182, __pyx_k_182, sizeof(__pyx_k_182), 0, 1, 0, 0},
+  {&__pyx_n_s_182, __pyx_k_182, sizeof(__pyx_k_182), 0, 0, 1, 1},
   {&__pyx_kp_u_183, __pyx_k_183, sizeof(__pyx_k_183), 0, 1, 0, 0},
+  {&__pyx_kp_u_184, __pyx_k_184, sizeof(__pyx_k_184), 0, 1, 0, 0},
+  {&__pyx_kp_u_185, __pyx_k_185, sizeof(__pyx_k_185), 0, 1, 0, 0},
+  {&__pyx_kp_u_186, __pyx_k_186, sizeof(__pyx_k_186), 0, 1, 0, 0},
   {&__pyx_kp_u_19, __pyx_k_19, sizeof(__pyx_k_19), 0, 1, 0, 0},
   {&__pyx_kp_u_20, __pyx_k_20, sizeof(__pyx_k_20), 0, 1, 0, 0},
   {&__pyx_kp_u_21, __pyx_k_21, sizeof(__pyx_k_21), 0, 1, 0, 0},
-  {&__pyx_kp_u_217, __pyx_k_217, sizeof(__pyx_k_217), 0, 1, 0, 0},
-  {&__pyx_kp_u_218, __pyx_k_218, sizeof(__pyx_k_218), 0, 1, 0, 0},
   {&__pyx_kp_u_22, __pyx_k_22, sizeof(__pyx_k_22), 0, 1, 0, 0},
   {&__pyx_kp_u_220, __pyx_k_220, sizeof(__pyx_k_220), 0, 1, 0, 0},
   {&__pyx_kp_u_221, __pyx_k_221, sizeof(__pyx_k_221), 0, 1, 0, 0},
-  {&__pyx_kp_u_222, __pyx_k_222, sizeof(__pyx_k_222), 0, 1, 0, 0},
   {&__pyx_kp_u_223, __pyx_k_223, sizeof(__pyx_k_223), 0, 1, 0, 0},
   {&__pyx_kp_u_224, __pyx_k_224, sizeof(__pyx_k_224), 0, 1, 0, 0},
   {&__pyx_kp_u_225, __pyx_k_225, sizeof(__pyx_k_225), 0, 1, 0, 0},
   {&__pyx_kp_u_226, __pyx_k_226, sizeof(__pyx_k_226), 0, 1, 0, 0},
   {&__pyx_kp_u_227, __pyx_k_227, sizeof(__pyx_k_227), 0, 1, 0, 0},
   {&__pyx_kp_u_228, __pyx_k_228, sizeof(__pyx_k_228), 0, 1, 0, 0},
+  {&__pyx_kp_u_229, __pyx_k_229, sizeof(__pyx_k_229), 0, 1, 0, 0},
   {&__pyx_kp_u_23, __pyx_k_23, sizeof(__pyx_k_23), 0, 1, 0, 0},
   {&__pyx_kp_u_230, __pyx_k_230, sizeof(__pyx_k_230), 0, 1, 0, 0},
   {&__pyx_kp_u_231, __pyx_k_231, sizeof(__pyx_k_231), 0, 1, 0, 0},
+  {&__pyx_kp_u_233, __pyx_k_233, sizeof(__pyx_k_233), 0, 1, 0, 0},
+  {&__pyx_kp_u_234, __pyx_k_234, sizeof(__pyx_k_234), 0, 1, 0, 0},
   {&__pyx_kp_u_24, __pyx_k_24, sizeof(__pyx_k_24), 0, 1, 0, 0},
-  {&__pyx_kp_u_242, __pyx_k_242, sizeof(__pyx_k_242), 0, 1, 0, 0},
-  {&__pyx_kp_u_246, __pyx_k_246, sizeof(__pyx_k_246), 0, 1, 0, 0},
-  {&__pyx_kp_u_247, __pyx_k_247, sizeof(__pyx_k_247), 0, 1, 0, 0},
-  {&__pyx_kp_u_248, __pyx_k_248, sizeof(__pyx_k_248), 0, 1, 0, 0},
+  {&__pyx_kp_u_245, __pyx_k_245, sizeof(__pyx_k_245), 0, 1, 0, 0},
+  {&__pyx_kp_u_249, __pyx_k_249, sizeof(__pyx_k_249), 0, 1, 0, 0},
   {&__pyx_kp_b_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 0, 0, 0},
   {&__pyx_kp_s_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 0, 1, 0},
   {&__pyx_kp_u_25, __pyx_k_25, sizeof(__pyx_k_25), 0, 1, 0, 0},
-  {&__pyx_kp_s_250, __pyx_k_250, sizeof(__pyx_k_250), 0, 0, 1, 0},
-  {&__pyx_kp_s_252, __pyx_k_252, sizeof(__pyx_k_252), 0, 0, 1, 0},
-  {&__pyx_kp_b_254, __pyx_k_254, sizeof(__pyx_k_254), 0, 0, 0, 0},
+  {&__pyx_kp_u_250, __pyx_k_250, sizeof(__pyx_k_250), 0, 1, 0, 0},
+  {&__pyx_kp_u_251, __pyx_k_251, sizeof(__pyx_k_251), 0, 1, 0, 0},
+  {&__pyx_kp_s_253, __pyx_k_253, sizeof(__pyx_k_253), 0, 0, 1, 0},
   {&__pyx_kp_s_255, __pyx_k_255, sizeof(__pyx_k_255), 0, 0, 1, 0},
-  {&__pyx_kp_u_258, __pyx_k_258, sizeof(__pyx_k_258), 0, 1, 0, 0},
-  {&__pyx_kp_s_260, __pyx_k_260, sizeof(__pyx_k_260), 0, 0, 1, 0},
-  {&__pyx_kp_s_264, __pyx_k_264, sizeof(__pyx_k_264), 0, 0, 1, 0},
+  {&__pyx_kp_b_257, __pyx_k_257, sizeof(__pyx_k_257), 0, 0, 0, 0},
+  {&__pyx_kp_s_258, __pyx_k_258, sizeof(__pyx_k_258), 0, 0, 1, 0},
+  {&__pyx_kp_u_261, __pyx_k_261, sizeof(__pyx_k_261), 0, 1, 0, 0},
+  {&__pyx_kp_s_263, __pyx_k_263, sizeof(__pyx_k_263), 0, 0, 1, 0},
+  {&__pyx_kp_s_267, __pyx_k_267, sizeof(__pyx_k_267), 0, 0, 1, 0},
   {&__pyx_kp_u_27, __pyx_k_27, sizeof(__pyx_k_27), 0, 1, 0, 0},
-  {&__pyx_kp_s_270, __pyx_k_270, sizeof(__pyx_k_270), 0, 0, 1, 0},
-  {&__pyx_kp_s_271, __pyx_k_271, sizeof(__pyx_k_271), 0, 0, 1, 0},
   {&__pyx_kp_s_273, __pyx_k_273, sizeof(__pyx_k_273), 0, 0, 1, 0},
-  {&__pyx_kp_u_275, __pyx_k_275, sizeof(__pyx_k_275), 0, 1, 0, 0},
-  {&__pyx_kp_u_276, __pyx_k_276, sizeof(__pyx_k_276), 0, 1, 0, 0},
-  {&__pyx_kp_u_277, __pyx_k_277, sizeof(__pyx_k_277), 0, 1, 0, 0},
+  {&__pyx_kp_s_274, __pyx_k_274, sizeof(__pyx_k_274), 0, 0, 1, 0},
+  {&__pyx_kp_s_276, __pyx_k_276, sizeof(__pyx_k_276), 0, 0, 1, 0},
+  {&__pyx_kp_u_278, __pyx_k_278, sizeof(__pyx_k_278), 0, 1, 0, 0},
+  {&__pyx_kp_u_279, __pyx_k_279, sizeof(__pyx_k_279), 0, 1, 0, 0},
   {&__pyx_kp_u_28, __pyx_k_28, sizeof(__pyx_k_28), 0, 1, 0, 0},
+  {&__pyx_kp_u_280, __pyx_k_280, sizeof(__pyx_k_280), 0, 1, 0, 0},
   {&__pyx_kp_s_29, __pyx_k_29, sizeof(__pyx_k_29), 0, 0, 1, 0},
-  {&__pyx_kp_u_292, __pyx_k_292, sizeof(__pyx_k_292), 0, 1, 0, 0},
-  {&__pyx_kp_s_294, __pyx_k_294, sizeof(__pyx_k_294), 0, 0, 1, 0},
-  {&__pyx_kp_s_30, __pyx_k_30, sizeof(__pyx_k_30), 0, 0, 1, 0},
-  {&__pyx_kp_u_300, __pyx_k_300, sizeof(__pyx_k_300), 0, 1, 0, 0},
+  {&__pyx_kp_u_295, __pyx_k_295, sizeof(__pyx_k_295), 0, 1, 0, 0},
+  {&__pyx_kp_s_297, __pyx_k_297, sizeof(__pyx_k_297), 0, 0, 1, 0},
   {&__pyx_kp_u_303, __pyx_k_303, sizeof(__pyx_k_303), 0, 1, 0, 0},
-  {&__pyx_kp_u_304, __pyx_k_304, sizeof(__pyx_k_304), 0, 1, 0, 0},
-  {&__pyx_kp_u_305, __pyx_k_305, sizeof(__pyx_k_305), 0, 1, 0, 0},
-  {&__pyx_kp_s_308, __pyx_k_308, sizeof(__pyx_k_308), 0, 0, 1, 0},
-  {&__pyx_kp_s_309, __pyx_k_309, sizeof(__pyx_k_309), 0, 0, 1, 0},
-  {&__pyx_kp_u_310, __pyx_k_310, sizeof(__pyx_k_310), 0, 1, 0, 0},
-  {&__pyx_kp_u_311, __pyx_k_311, sizeof(__pyx_k_311), 0, 1, 0, 0},
-  {&__pyx_kp_u_312, __pyx_k_312, sizeof(__pyx_k_312), 0, 1, 0, 0},
+  {&__pyx_kp_u_306, __pyx_k_306, sizeof(__pyx_k_306), 0, 1, 0, 0},
+  {&__pyx_kp_u_307, __pyx_k_307, sizeof(__pyx_k_307), 0, 1, 0, 0},
+  {&__pyx_kp_u_308, __pyx_k_308, sizeof(__pyx_k_308), 0, 1, 0, 0},
+  {&__pyx_kp_s_311, __pyx_k_311, sizeof(__pyx_k_311), 0, 0, 1, 0},
+  {&__pyx_kp_s_312, __pyx_k_312, sizeof(__pyx_k_312), 0, 0, 1, 0},
   {&__pyx_kp_u_313, __pyx_k_313, sizeof(__pyx_k_313), 0, 1, 0, 0},
   {&__pyx_kp_u_314, __pyx_k_314, sizeof(__pyx_k_314), 0, 1, 0, 0},
   {&__pyx_kp_u_315, __pyx_k_315, sizeof(__pyx_k_315), 0, 1, 0, 0},
   {&__pyx_kp_u_316, __pyx_k_316, sizeof(__pyx_k_316), 0, 1, 0, 0},
   {&__pyx_kp_u_317, __pyx_k_317, sizeof(__pyx_k_317), 0, 1, 0, 0},
+  {&__pyx_kp_u_318, __pyx_k_318, sizeof(__pyx_k_318), 0, 1, 0, 0},
+  {&__pyx_kp_u_319, __pyx_k_319, sizeof(__pyx_k_319), 0, 1, 0, 0},
   {&__pyx_kp_s_32, __pyx_k_32, sizeof(__pyx_k_32), 0, 0, 1, 0},
-  {&__pyx_kp_b_321, __pyx_k_321, sizeof(__pyx_k_321), 0, 0, 0, 0},
-  {&__pyx_kp_u_322, __pyx_k_322, sizeof(__pyx_k_322), 0, 1, 0, 0},
-  {&__pyx_kp_s_323, __pyx_k_323, sizeof(__pyx_k_323), 0, 0, 1, 0},
-  {&__pyx_kp_u_324, __pyx_k_324, sizeof(__pyx_k_324), 0, 1, 0, 0},
+  {&__pyx_kp_u_320, __pyx_k_320, sizeof(__pyx_k_320), 0, 1, 0, 0},
+  {&__pyx_kp_b_324, __pyx_k_324, sizeof(__pyx_k_324), 0, 0, 0, 0},
   {&__pyx_kp_u_325, __pyx_k_325, sizeof(__pyx_k_325), 0, 1, 0, 0},
-  {&__pyx_kp_u_326, __pyx_k_326, sizeof(__pyx_k_326), 0, 1, 0, 0},
+  {&__pyx_kp_s_326, __pyx_k_326, sizeof(__pyx_k_326), 0, 0, 1, 0},
   {&__pyx_kp_u_327, __pyx_k_327, sizeof(__pyx_k_327), 0, 1, 0, 0},
   {&__pyx_kp_u_328, __pyx_k_328, sizeof(__pyx_k_328), 0, 1, 0, 0},
-  {&__pyx_n_s_329, __pyx_k_329, sizeof(__pyx_k_329), 0, 0, 1, 1},
+  {&__pyx_kp_u_329, __pyx_k_329, sizeof(__pyx_k_329), 0, 1, 0, 0},
+  {&__pyx_kp_s_33, __pyx_k_33, sizeof(__pyx_k_33), 0, 0, 1, 0},
   {&__pyx_kp_u_330, __pyx_k_330, sizeof(__pyx_k_330), 0, 1, 0, 0},
   {&__pyx_kp_u_331, __pyx_k_331, sizeof(__pyx_k_331), 0, 1, 0, 0},
+  {&__pyx_n_s_332, __pyx_k_332, sizeof(__pyx_k_332), 0, 0, 1, 1},
   {&__pyx_kp_u_333, __pyx_k_333, sizeof(__pyx_k_333), 0, 1, 0, 0},
   {&__pyx_kp_u_334, __pyx_k_334, sizeof(__pyx_k_334), 0, 1, 0, 0},
-  {&__pyx_kp_s_337, __pyx_k_337, sizeof(__pyx_k_337), 0, 0, 1, 0},
-  {&__pyx_kp_u_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 1, 0, 0},
-  {&__pyx_kp_u_350, __pyx_k_350, sizeof(__pyx_k_350), 0, 1, 0, 0},
-  {&__pyx_kp_u_351, __pyx_k_351, sizeof(__pyx_k_351), 0, 1, 0, 0},
-  {&__pyx_kp_u_352, __pyx_k_352, sizeof(__pyx_k_352), 0, 1, 0, 0},
+  {&__pyx_kp_u_336, __pyx_k_336, sizeof(__pyx_k_336), 0, 1, 0, 0},
+  {&__pyx_kp_u_337, __pyx_k_337, sizeof(__pyx_k_337), 0, 1, 0, 0},
+  {&__pyx_kp_s_340, __pyx_k_340, sizeof(__pyx_k_340), 0, 0, 1, 0},
+  {&__pyx_kp_s_35, __pyx_k_35, sizeof(__pyx_k_35), 0, 0, 1, 0},
   {&__pyx_kp_u_353, __pyx_k_353, sizeof(__pyx_k_353), 0, 1, 0, 0},
   {&__pyx_kp_u_354, __pyx_k_354, sizeof(__pyx_k_354), 0, 1, 0, 0},
+  {&__pyx_kp_u_355, __pyx_k_355, sizeof(__pyx_k_355), 0, 1, 0, 0},
   {&__pyx_kp_u_356, __pyx_k_356, sizeof(__pyx_k_356), 0, 1, 0, 0},
-  {&__pyx_kp_u_358, __pyx_k_358, sizeof(__pyx_k_358), 0, 1, 0, 0},
-  {&__pyx_kp_s_359, __pyx_k_359, sizeof(__pyx_k_359), 0, 0, 1, 0},
-  {&__pyx_kp_u_36, __pyx_k_36, sizeof(__pyx_k_36), 0, 1, 0, 0},
-  {&__pyx_kp_s_363, __pyx_k_363, sizeof(__pyx_k_363), 0, 0, 1, 0},
-  {&__pyx_kp_u_364, __pyx_k_364, sizeof(__pyx_k_364), 0, 1, 0, 0},
-  {&__pyx_kp_u_365, __pyx_k_365, sizeof(__pyx_k_365), 0, 1, 0, 0},
-  {&__pyx_kp_u_366, __pyx_k_366, sizeof(__pyx_k_366), 0, 1, 0, 0},
-  {&__pyx_kp_b_368, __pyx_k_368, sizeof(__pyx_k_368), 0, 0, 0, 0},
+  {&__pyx_kp_u_357, __pyx_k_357, sizeof(__pyx_k_357), 0, 1, 0, 0},
+  {&__pyx_kp_u_359, __pyx_k_359, sizeof(__pyx_k_359), 0, 1, 0, 0},
+  {&__pyx_kp_u_361, __pyx_k_361, sizeof(__pyx_k_361), 0, 1, 0, 0},
+  {&__pyx_kp_s_362, __pyx_k_362, sizeof(__pyx_k_362), 0, 0, 1, 0},
+  {&__pyx_kp_s_366, __pyx_k_366, sizeof(__pyx_k_366), 0, 0, 1, 0},
+  {&__pyx_kp_u_367, __pyx_k_367, sizeof(__pyx_k_367), 0, 1, 0, 0},
   {&__pyx_kp_u_368, __pyx_k_368, sizeof(__pyx_k_368), 0, 1, 0, 0},
   {&__pyx_kp_u_369, __pyx_k_369, sizeof(__pyx_k_369), 0, 1, 0, 0},
-  {&__pyx_kp_s_37, __pyx_k_37, sizeof(__pyx_k_37), 0, 0, 1, 0},
-  {&__pyx_kp_u_370, __pyx_k_370, sizeof(__pyx_k_370), 0, 1, 0, 0},
+  {&__pyx_kp_b_371, __pyx_k_371, sizeof(__pyx_k_371), 0, 0, 0, 0},
   {&__pyx_kp_u_371, __pyx_k_371, sizeof(__pyx_k_371), 0, 1, 0, 0},
   {&__pyx_kp_u_372, __pyx_k_372, sizeof(__pyx_k_372), 0, 1, 0, 0},
   {&__pyx_kp_u_373, __pyx_k_373, sizeof(__pyx_k_373), 0, 1, 0, 0},
   {&__pyx_kp_u_374, __pyx_k_374, sizeof(__pyx_k_374), 0, 1, 0, 0},
   {&__pyx_kp_u_375, __pyx_k_375, sizeof(__pyx_k_375), 0, 1, 0, 0},
-  {&__pyx_kp_s_378, __pyx_k_378, sizeof(__pyx_k_378), 0, 0, 1, 0},
-  {&__pyx_kp_s_38, __pyx_k_38, sizeof(__pyx_k_38), 0, 0, 1, 0},
-  {&__pyx_kp_u_382, __pyx_k_382, sizeof(__pyx_k_382), 0, 1, 0, 0},
-  {&__pyx_kp_u_383, __pyx_k_383, sizeof(__pyx_k_383), 0, 1, 0, 0},
-  {&__pyx_kp_u_388, __pyx_k_388, sizeof(__pyx_k_388), 0, 1, 0, 0},
-  {&__pyx_kp_u_389, __pyx_k_389, sizeof(__pyx_k_389), 0, 1, 0, 0},
-  {&__pyx_kp_s_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 0, 1, 0},
-  {&__pyx_kp_s_390, __pyx_k_390, sizeof(__pyx_k_390), 0, 0, 1, 0},
-  {&__pyx_kp_s_391, __pyx_k_391, sizeof(__pyx_k_391), 0, 0, 1, 0},
-  {&__pyx_kp_s_392, __pyx_k_392, sizeof(__pyx_k_392), 0, 0, 1, 0},
+  {&__pyx_kp_u_376, __pyx_k_376, sizeof(__pyx_k_376), 0, 1, 0, 0},
+  {&__pyx_kp_u_377, __pyx_k_377, sizeof(__pyx_k_377), 0, 1, 0, 0},
+  {&__pyx_kp_u_378, __pyx_k_378, sizeof(__pyx_k_378), 0, 1, 0, 0},
+  {&__pyx_kp_u_38, __pyx_k_38, sizeof(__pyx_k_38), 0, 1, 0, 0},
+  {&__pyx_kp_s_381, __pyx_k_381, sizeof(__pyx_k_381), 0, 0, 1, 0},
+  {&__pyx_kp_u_385, __pyx_k_385, sizeof(__pyx_k_385), 0, 1, 0, 0},
+  {&__pyx_kp_u_386, __pyx_k_386, sizeof(__pyx_k_386), 0, 1, 0, 0},
+  {&__pyx_kp_u_39, __pyx_k_39, sizeof(__pyx_k_39), 0, 1, 0, 0},
+  {&__pyx_kp_u_391, __pyx_k_391, sizeof(__pyx_k_391), 0, 1, 0, 0},
+  {&__pyx_kp_u_392, __pyx_k_392, sizeof(__pyx_k_392), 0, 1, 0, 0},
   {&__pyx_kp_s_393, __pyx_k_393, sizeof(__pyx_k_393), 0, 0, 1, 0},
-  {&__pyx_kp_u_395, __pyx_k_395, sizeof(__pyx_k_395), 0, 1, 0, 0},
-  {&__pyx_kp_u_397, __pyx_k_397, sizeof(__pyx_k_397), 0, 1, 0, 0},
+  {&__pyx_kp_s_394, __pyx_k_394, sizeof(__pyx_k_394), 0, 0, 1, 0},
+  {&__pyx_kp_s_395, __pyx_k_395, sizeof(__pyx_k_395), 0, 0, 1, 0},
+  {&__pyx_kp_s_396, __pyx_k_396, sizeof(__pyx_k_396), 0, 0, 1, 0},
   {&__pyx_kp_u_398, __pyx_k_398, sizeof(__pyx_k_398), 0, 1, 0, 0},
-  {&__pyx_kp_s_399, __pyx_k_399, sizeof(__pyx_k_399), 0, 0, 1, 0},
   {&__pyx_kp_u_4, __pyx_k_4, sizeof(__pyx_k_4), 0, 1, 0, 0},
   {&__pyx_kp_s_40, __pyx_k_40, sizeof(__pyx_k_40), 0, 0, 1, 0},
   {&__pyx_kp_u_400, __pyx_k_400, sizeof(__pyx_k_400), 0, 1, 0, 0},
+  {&__pyx_kp_u_401, __pyx_k_401, sizeof(__pyx_k_401), 0, 1, 0, 0},
+  {&__pyx_kp_s_402, __pyx_k_402, sizeof(__pyx_k_402), 0, 0, 1, 0},
   {&__pyx_kp_u_403, __pyx_k_403, sizeof(__pyx_k_403), 0, 1, 0, 0},
   {&__pyx_kp_u_406, __pyx_k_406, sizeof(__pyx_k_406), 0, 1, 0, 0},
-  {&__pyx_kp_u_408, __pyx_k_408, sizeof(__pyx_k_408), 0, 1, 0, 0},
   {&__pyx_kp_u_409, __pyx_k_409, sizeof(__pyx_k_409), 0, 1, 0, 0},
   {&__pyx_kp_s_41, __pyx_k_41, sizeof(__pyx_k_41), 0, 0, 1, 0},
-  {&__pyx_kp_u_410, __pyx_k_410, sizeof(__pyx_k_410), 0, 1, 0, 0},
-  {&__pyx_kp_s_411, __pyx_k_411, sizeof(__pyx_k_411), 0, 0, 1, 0},
-  {&__pyx_n_s_412, __pyx_k_412, sizeof(__pyx_k_412), 0, 0, 1, 1},
+  {&__pyx_kp_u_411, __pyx_k_411, sizeof(__pyx_k_411), 0, 1, 0, 0},
+  {&__pyx_kp_u_412, __pyx_k_412, sizeof(__pyx_k_412), 0, 1, 0, 0},
   {&__pyx_kp_u_413, __pyx_k_413, sizeof(__pyx_k_413), 0, 1, 0, 0},
-  {&__pyx_kp_b_415, __pyx_k_415, sizeof(__pyx_k_415), 0, 0, 0, 0},
-  {&__pyx_kp_u_415, __pyx_k_415, sizeof(__pyx_k_415), 0, 1, 0, 0},
+  {&__pyx_kp_s_414, __pyx_k_414, sizeof(__pyx_k_414), 0, 0, 1, 0},
+  {&__pyx_n_s_415, __pyx_k_415, sizeof(__pyx_k_415), 0, 0, 1, 1},
   {&__pyx_kp_u_416, __pyx_k_416, sizeof(__pyx_k_416), 0, 1, 0, 0},
-  {&__pyx_kp_u_417, __pyx_k_417, sizeof(__pyx_k_417), 0, 1, 0, 0},
-  {&__pyx_kp_s_418, __pyx_k_418, sizeof(__pyx_k_418), 0, 0, 1, 0},
-  {&__pyx_n_s_419, __pyx_k_419, sizeof(__pyx_k_419), 0, 0, 1, 1},
-  {&__pyx_kp_u_42, __pyx_k_42, sizeof(__pyx_k_42), 0, 1, 0, 0},
+  {&__pyx_kp_b_418, __pyx_k_418, sizeof(__pyx_k_418), 0, 0, 0, 0},
+  {&__pyx_kp_u_418, __pyx_k_418, sizeof(__pyx_k_418), 0, 1, 0, 0},
+  {&__pyx_kp_u_419, __pyx_k_419, sizeof(__pyx_k_419), 0, 1, 0, 0},
+  {&__pyx_kp_s_42, __pyx_k_42, sizeof(__pyx_k_42), 0, 0, 1, 0},
   {&__pyx_kp_u_420, __pyx_k_420, sizeof(__pyx_k_420), 0, 1, 0, 0},
   {&__pyx_kp_s_421, __pyx_k_421, sizeof(__pyx_k_421), 0, 0, 1, 0},
-  {&__pyx_kp_u_422, __pyx_k_422, sizeof(__pyx_k_422), 0, 1, 0, 0},
-  {&__pyx_n_s_424, __pyx_k_424, sizeof(__pyx_k_424), 0, 0, 1, 1},
-  {&__pyx_kp_u_426, __pyx_k_426, sizeof(__pyx_k_426), 0, 1, 0, 0},
-  {&__pyx_kp_s_427, __pyx_k_427, sizeof(__pyx_k_427), 0, 0, 1, 0},
-  {&__pyx_n_s_429, __pyx_k_429, sizeof(__pyx_k_429), 0, 0, 1, 1},
-  {&__pyx_kp_u_43, __pyx_k_43, sizeof(__pyx_k_43), 0, 1, 0, 0},
-  {&__pyx_kp_u_430, __pyx_k_430, sizeof(__pyx_k_430), 0, 1, 0, 0},
-  {&__pyx_kp_b_431, __pyx_k_431, sizeof(__pyx_k_431), 0, 0, 0, 0},
+  {&__pyx_n_s_422, __pyx_k_422, sizeof(__pyx_k_422), 0, 0, 1, 1},
+  {&__pyx_kp_u_423, __pyx_k_423, sizeof(__pyx_k_423), 0, 1, 0, 0},
+  {&__pyx_kp_s_424, __pyx_k_424, sizeof(__pyx_k_424), 0, 0, 1, 0},
+  {&__pyx_kp_u_425, __pyx_k_425, sizeof(__pyx_k_425), 0, 1, 0, 0},
+  {&__pyx_n_s_427, __pyx_k_427, sizeof(__pyx_k_427), 0, 0, 1, 1},
+  {&__pyx_kp_u_429, __pyx_k_429, sizeof(__pyx_k_429), 0, 1, 0, 0},
+  {&__pyx_kp_s_43, __pyx_k_43, sizeof(__pyx_k_43), 0, 0, 1, 0},
+  {&__pyx_kp_s_430, __pyx_k_430, sizeof(__pyx_k_430), 0, 0, 1, 0},
   {&__pyx_n_s_432, __pyx_k_432, sizeof(__pyx_k_432), 0, 0, 1, 1},
-  {&__pyx_kp_s_433, __pyx_k_433, sizeof(__pyx_k_433), 0, 0, 1, 0},
+  {&__pyx_kp_u_433, __pyx_k_433, sizeof(__pyx_k_433), 0, 1, 0, 0},
   {&__pyx_kp_b_434, __pyx_k_434, sizeof(__pyx_k_434), 0, 0, 0, 0},
-  {&__pyx_kp_u_44, __pyx_k_44, sizeof(__pyx_k_44), 0, 1, 0, 0},
+  {&__pyx_n_s_435, __pyx_k_435, sizeof(__pyx_k_435), 0, 0, 1, 1},
+  {&__pyx_kp_s_436, __pyx_k_436, sizeof(__pyx_k_436), 0, 0, 1, 0},
+  {&__pyx_kp_b_437, __pyx_k_437, sizeof(__pyx_k_437), 0, 0, 0, 0},
+  {&__pyx_kp_s_44, __pyx_k_44, sizeof(__pyx_k_44), 0, 0, 1, 0},
   {&__pyx_kp_u_45, __pyx_k_45, sizeof(__pyx_k_45), 0, 1, 0, 0},
   {&__pyx_kp_u_46, __pyx_k_46, sizeof(__pyx_k_46), 0, 1, 0, 0},
   {&__pyx_kp_u_47, __pyx_k_47, sizeof(__pyx_k_47), 0, 1, 0, 0},
-  {&__pyx_kp_u_472, __pyx_k_472, sizeof(__pyx_k_472), 0, 1, 0, 0},
-  {&__pyx_n_s_473, __pyx_k_473, sizeof(__pyx_k_473), 0, 0, 1, 1},
-  {&__pyx_n_s_474, __pyx_k_474, sizeof(__pyx_k_474), 0, 0, 1, 1},
-  {&__pyx_n_s_475, __pyx_k_475, sizeof(__pyx_k_475), 0, 0, 1, 1},
+  {&__pyx_kp_u_475, __pyx_k_475, sizeof(__pyx_k_475), 0, 1, 0, 0},
   {&__pyx_n_s_476, __pyx_k_476, sizeof(__pyx_k_476), 0, 0, 1, 1},
   {&__pyx_n_s_477, __pyx_k_477, sizeof(__pyx_k_477), 0, 0, 1, 1},
   {&__pyx_n_s_478, __pyx_k_478, sizeof(__pyx_k_478), 0, 0, 1, 1},
@@ -172793,37 +172723,40 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_n_s_482, __pyx_k_482, sizeof(__pyx_k_482), 0, 0, 1, 1},
   {&__pyx_n_s_483, __pyx_k_483, sizeof(__pyx_k_483), 0, 0, 1, 1},
   {&__pyx_n_s_484, __pyx_k_484, sizeof(__pyx_k_484), 0, 0, 1, 1},
-  {&__pyx_kp_b_486, __pyx_k_486, sizeof(__pyx_k_486), 0, 0, 0, 0},
-  {&__pyx_kp_b_487, __pyx_k_487, sizeof(__pyx_k_487), 0, 0, 0, 0},
-  {&__pyx_kp_b_488, __pyx_k_488, sizeof(__pyx_k_488), 0, 0, 0, 0},
+  {&__pyx_n_s_485, __pyx_k_485, sizeof(__pyx_k_485), 0, 0, 1, 1},
+  {&__pyx_n_s_486, __pyx_k_486, sizeof(__pyx_k_486), 0, 0, 1, 1},
+  {&__pyx_n_s_487, __pyx_k_487, sizeof(__pyx_k_487), 0, 0, 1, 1},
   {&__pyx_kp_b_489, __pyx_k_489, sizeof(__pyx_k_489), 0, 0, 0, 0},
-  {&__pyx_kp_s_49, __pyx_k_49, sizeof(__pyx_k_49), 0, 0, 1, 0},
   {&__pyx_kp_u_49, __pyx_k_49, sizeof(__pyx_k_49), 0, 1, 0, 0},
   {&__pyx_kp_b_490, __pyx_k_490, sizeof(__pyx_k_490), 0, 0, 0, 0},
   {&__pyx_kp_b_491, __pyx_k_491, sizeof(__pyx_k_491), 0, 0, 0, 0},
   {&__pyx_kp_b_492, __pyx_k_492, sizeof(__pyx_k_492), 0, 0, 0, 0},
   {&__pyx_kp_b_493, __pyx_k_493, sizeof(__pyx_k_493), 0, 0, 0, 0},
-  {&__pyx_kp_s_497, __pyx_k_497, sizeof(__pyx_k_497), 0, 0, 1, 0},
-  {&__pyx_n_s_498, __pyx_k_498, sizeof(__pyx_k_498), 0, 0, 1, 1},
+  {&__pyx_kp_b_494, __pyx_k_494, sizeof(__pyx_k_494), 0, 0, 0, 0},
+  {&__pyx_kp_b_495, __pyx_k_495, sizeof(__pyx_k_495), 0, 0, 0, 0},
+  {&__pyx_kp_b_496, __pyx_k_496, sizeof(__pyx_k_496), 0, 0, 0, 0},
   {&__pyx_kp_b_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 0, 0, 0},
   {&__pyx_kp_u_5, __pyx_k_5, sizeof(__pyx_k_5), 0, 1, 0, 0},
-  {&__pyx_n_s_502, __pyx_k_502, sizeof(__pyx_k_502), 0, 0, 1, 1},
-  {&__pyx_kp_s_503, __pyx_k_503, sizeof(__pyx_k_503), 0, 0, 1, 0},
-  {&__pyx_kp_s_504, __pyx_k_504, sizeof(__pyx_k_504), 0, 0, 1, 0},
-  {&__pyx_kp_s_505, __pyx_k_505, sizeof(__pyx_k_505), 0, 0, 1, 0},
-  {&__pyx_kp_u_506, __pyx_k_506, sizeof(__pyx_k_506), 0, 1, 0, 0},
-  {&__pyx_kp_u_508, __pyx_k_508, sizeof(__pyx_k_508), 0, 1, 0, 0},
+  {&__pyx_kp_u_50, __pyx_k_50, sizeof(__pyx_k_50), 0, 1, 0, 0},
+  {&__pyx_kp_s_500, __pyx_k_500, sizeof(__pyx_k_500), 0, 0, 1, 0},
+  {&__pyx_n_s_501, __pyx_k_501, sizeof(__pyx_k_501), 0, 0, 1, 1},
+  {&__pyx_n_s_505, __pyx_k_505, sizeof(__pyx_k_505), 0, 0, 1, 1},
+  {&__pyx_kp_s_506, __pyx_k_506, sizeof(__pyx_k_506), 0, 0, 1, 0},
+  {&__pyx_kp_s_507, __pyx_k_507, sizeof(__pyx_k_507), 0, 0, 1, 0},
+  {&__pyx_kp_s_508, __pyx_k_508, sizeof(__pyx_k_508), 0, 0, 1, 0},
   {&__pyx_kp_u_509, __pyx_k_509, sizeof(__pyx_k_509), 0, 1, 0, 0},
-  {&__pyx_kp_s_511, __pyx_k_511, sizeof(__pyx_k_511), 0, 0, 1, 0},
-  {&__pyx_kp_s_515, __pyx_k_515, sizeof(__pyx_k_515), 0, 0, 1, 0},
-  {&__pyx_kp_s_516, __pyx_k_516, sizeof(__pyx_k_516), 0, 0, 1, 0},
-  {&__pyx_kp_s_517, __pyx_k_517, sizeof(__pyx_k_517), 0, 0, 1, 0},
+  {&__pyx_kp_u_51, __pyx_k_51, sizeof(__pyx_k_51), 0, 1, 0, 0},
+  {&__pyx_kp_u_511, __pyx_k_511, sizeof(__pyx_k_511), 0, 1, 0, 0},
+  {&__pyx_kp_u_512, __pyx_k_512, sizeof(__pyx_k_512), 0, 1, 0, 0},
+  {&__pyx_kp_s_514, __pyx_k_514, sizeof(__pyx_k_514), 0, 0, 1, 0},
   {&__pyx_kp_s_518, __pyx_k_518, sizeof(__pyx_k_518), 0, 0, 1, 0},
-  {&__pyx_kp_u_519, __pyx_k_519, sizeof(__pyx_k_519), 0, 1, 0, 0},
-  {&__pyx_kp_u_521, __pyx_k_521, sizeof(__pyx_k_521), 0, 1, 0, 0},
-  {&__pyx_kp_u_523, __pyx_k_523, sizeof(__pyx_k_523), 0, 1, 0, 0},
+  {&__pyx_kp_s_519, __pyx_k_519, sizeof(__pyx_k_519), 0, 0, 1, 0},
+  {&__pyx_kp_s_52, __pyx_k_52, sizeof(__pyx_k_52), 0, 0, 1, 0},
+  {&__pyx_kp_u_52, __pyx_k_52, sizeof(__pyx_k_52), 0, 1, 0, 0},
+  {&__pyx_kp_s_520, __pyx_k_520, sizeof(__pyx_k_520), 0, 0, 1, 0},
+  {&__pyx_kp_s_521, __pyx_k_521, sizeof(__pyx_k_521), 0, 0, 1, 0},
+  {&__pyx_kp_u_522, __pyx_k_522, sizeof(__pyx_k_522), 0, 1, 0, 0},
   {&__pyx_kp_u_524, __pyx_k_524, sizeof(__pyx_k_524), 0, 1, 0, 0},
-  {&__pyx_kp_u_525, __pyx_k_525, sizeof(__pyx_k_525), 0, 1, 0, 0},
   {&__pyx_kp_u_526, __pyx_k_526, sizeof(__pyx_k_526), 0, 1, 0, 0},
   {&__pyx_kp_u_527, __pyx_k_527, sizeof(__pyx_k_527), 0, 1, 0, 0},
   {&__pyx_kp_u_528, __pyx_k_528, sizeof(__pyx_k_528), 0, 1, 0, 0},
@@ -172832,38 +172765,35 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_kp_u_531, __pyx_k_531, sizeof(__pyx_k_531), 0, 1, 0, 0},
   {&__pyx_kp_u_532, __pyx_k_532, sizeof(__pyx_k_532), 0, 1, 0, 0},
   {&__pyx_kp_u_533, __pyx_k_533, sizeof(__pyx_k_533), 0, 1, 0, 0},
+  {&__pyx_kp_u_534, __pyx_k_534, sizeof(__pyx_k_534), 0, 1, 0, 0},
   {&__pyx_kp_u_535, __pyx_k_535, sizeof(__pyx_k_535), 0, 1, 0, 0},
-  {&__pyx_kp_u_537, __pyx_k_537, sizeof(__pyx_k_537), 0, 1, 0, 0},
-  {&__pyx_kp_u_57, __pyx_k_57, sizeof(__pyx_k_57), 0, 1, 0, 0},
-  {&__pyx_kp_s_572, __pyx_k_572, sizeof(__pyx_k_572), 0, 0, 1, 0},
-  {&__pyx_kp_s_573, __pyx_k_573, sizeof(__pyx_k_573), 0, 0, 1, 0},
-  {&__pyx_kp_s_574, __pyx_k_574, sizeof(__pyx_k_574), 0, 0, 1, 0},
+  {&__pyx_kp_u_536, __pyx_k_536, sizeof(__pyx_k_536), 0, 1, 0, 0},
+  {&__pyx_kp_u_538, __pyx_k_538, sizeof(__pyx_k_538), 0, 1, 0, 0},
+  {&__pyx_kp_u_540, __pyx_k_540, sizeof(__pyx_k_540), 0, 1, 0, 0},
+  {&__pyx_kp_s_575, __pyx_k_575, sizeof(__pyx_k_575), 0, 0, 1, 0},
+  {&__pyx_kp_s_576, __pyx_k_576, sizeof(__pyx_k_576), 0, 0, 1, 0},
   {&__pyx_kp_s_577, __pyx_k_577, sizeof(__pyx_k_577), 0, 0, 1, 0},
   {&__pyx_kp_s_580, __pyx_k_580, sizeof(__pyx_k_580), 0, 0, 1, 0},
-  {&__pyx_n_s_581, __pyx_k_581, sizeof(__pyx_k_581), 0, 0, 1, 1},
-  {&__pyx_kp_s_582, __pyx_k_582, sizeof(__pyx_k_582), 0, 0, 1, 0},
   {&__pyx_kp_s_583, __pyx_k_583, sizeof(__pyx_k_583), 0, 0, 1, 0},
-  {&__pyx_kp_s_584, __pyx_k_584, sizeof(__pyx_k_584), 0, 0, 1, 0},
-  {&__pyx_kp_s_59, __pyx_k_59, sizeof(__pyx_k_59), 0, 0, 1, 0},
-  {&__pyx_kp_s_590, __pyx_k_590, sizeof(__pyx_k_590), 0, 0, 1, 0},
-  {&__pyx_n_s_591, __pyx_k_591, sizeof(__pyx_k_591), 0, 0, 1, 1},
-  {&__pyx_kp_s_592, __pyx_k_592, sizeof(__pyx_k_592), 0, 0, 1, 0},
+  {&__pyx_n_s_584, __pyx_k_584, sizeof(__pyx_k_584), 0, 0, 1, 1},
+  {&__pyx_kp_s_585, __pyx_k_585, sizeof(__pyx_k_585), 0, 0, 1, 0},
+  {&__pyx_kp_s_586, __pyx_k_586, sizeof(__pyx_k_586), 0, 0, 1, 0},
+  {&__pyx_kp_s_587, __pyx_k_587, sizeof(__pyx_k_587), 0, 0, 1, 0},
+  {&__pyx_kp_s_593, __pyx_k_593, sizeof(__pyx_k_593), 0, 0, 1, 0},
+  {&__pyx_n_s_594, __pyx_k_594, sizeof(__pyx_k_594), 0, 0, 1, 1},
   {&__pyx_kp_s_595, __pyx_k_595, sizeof(__pyx_k_595), 0, 0, 1, 0},
+  {&__pyx_kp_s_598, __pyx_k_598, sizeof(__pyx_k_598), 0, 0, 1, 0},
   {&__pyx_kp_u_60, __pyx_k_60, sizeof(__pyx_k_60), 0, 1, 0, 0},
-  {&__pyx_kp_s_600, __pyx_k_600, sizeof(__pyx_k_600), 0, 0, 1, 0},
   {&__pyx_kp_s_603, __pyx_k_603, sizeof(__pyx_k_603), 0, 0, 1, 0},
-  {&__pyx_kp_u_61, __pyx_k_61, sizeof(__pyx_k_61), 0, 1, 0, 0},
-  {&__pyx_kp_s_610, __pyx_k_610, sizeof(__pyx_k_610), 0, 0, 1, 0},
-  {&__pyx_kp_s_611, __pyx_k_611, sizeof(__pyx_k_611), 0, 0, 1, 0},
-  {&__pyx_kp_s_612, __pyx_k_612, sizeof(__pyx_k_612), 0, 0, 1, 0},
+  {&__pyx_kp_s_606, __pyx_k_606, sizeof(__pyx_k_606), 0, 0, 1, 0},
   {&__pyx_kp_s_613, __pyx_k_613, sizeof(__pyx_k_613), 0, 0, 1, 0},
-  {&__pyx_kp_b_614, __pyx_k_614, sizeof(__pyx_k_614), 0, 0, 0, 0},
-  {&__pyx_kp_b_615, __pyx_k_615, sizeof(__pyx_k_615), 0, 0, 0, 0},
-  {&__pyx_kp_b_616, __pyx_k_616, sizeof(__pyx_k_616), 0, 0, 0, 0},
+  {&__pyx_kp_s_614, __pyx_k_614, sizeof(__pyx_k_614), 0, 0, 1, 0},
+  {&__pyx_kp_s_615, __pyx_k_615, sizeof(__pyx_k_615), 0, 0, 1, 0},
+  {&__pyx_kp_s_616, __pyx_k_616, sizeof(__pyx_k_616), 0, 0, 1, 0},
   {&__pyx_kp_b_617, __pyx_k_617, sizeof(__pyx_k_617), 0, 0, 0, 0},
   {&__pyx_kp_b_618, __pyx_k_618, sizeof(__pyx_k_618), 0, 0, 0, 0},
   {&__pyx_kp_b_619, __pyx_k_619, sizeof(__pyx_k_619), 0, 0, 0, 0},
-  {&__pyx_kp_u_62, __pyx_k_62, sizeof(__pyx_k_62), 0, 1, 0, 0},
+  {&__pyx_kp_s_62, __pyx_k_62, sizeof(__pyx_k_62), 0, 0, 1, 0},
   {&__pyx_kp_b_620, __pyx_k_620, sizeof(__pyx_k_620), 0, 0, 0, 0},
   {&__pyx_kp_b_621, __pyx_k_621, sizeof(__pyx_k_621), 0, 0, 0, 0},
   {&__pyx_kp_b_622, __pyx_k_622, sizeof(__pyx_k_622), 0, 0, 0, 0},
@@ -172882,25 +172812,25 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_kp_b_634, __pyx_k_634, sizeof(__pyx_k_634), 0, 0, 0, 0},
   {&__pyx_kp_b_635, __pyx_k_635, sizeof(__pyx_k_635), 0, 0, 0, 0},
   {&__pyx_kp_b_636, __pyx_k_636, sizeof(__pyx_k_636), 0, 0, 0, 0},
-  {&__pyx_kp_s_639, __pyx_k_639, sizeof(__pyx_k_639), 0, 0, 1, 0},
+  {&__pyx_kp_b_637, __pyx_k_637, sizeof(__pyx_k_637), 0, 0, 0, 0},
+  {&__pyx_kp_b_638, __pyx_k_638, sizeof(__pyx_k_638), 0, 0, 0, 0},
+  {&__pyx_kp_b_639, __pyx_k_639, sizeof(__pyx_k_639), 0, 0, 0, 0},
   {&__pyx_kp_u_64, __pyx_k_64, sizeof(__pyx_k_64), 0, 1, 0, 0},
-  {&__pyx_n_s_642, __pyx_k_642, sizeof(__pyx_k_642), 0, 0, 1, 1},
-  {&__pyx_kp_s_645, __pyx_k_645, sizeof(__pyx_k_645), 0, 0, 1, 0},
-  {&__pyx_kp_b_646, __pyx_k_646, sizeof(__pyx_k_646), 0, 0, 0, 0},
-  {&__pyx_kp_b_648, __pyx_k_648, sizeof(__pyx_k_648), 0, 0, 0, 0},
+  {&__pyx_kp_s_642, __pyx_k_642, sizeof(__pyx_k_642), 0, 0, 1, 0},
+  {&__pyx_n_s_645, __pyx_k_645, sizeof(__pyx_k_645), 0, 0, 1, 1},
+  {&__pyx_kp_s_648, __pyx_k_648, sizeof(__pyx_k_648), 0, 0, 1, 0},
+  {&__pyx_kp_b_649, __pyx_k_649, sizeof(__pyx_k_649), 0, 0, 0, 0},
   {&__pyx_kp_u_65, __pyx_k_65, sizeof(__pyx_k_65), 0, 1, 0, 0},
-  {&__pyx_kp_s_650, __pyx_k_650, sizeof(__pyx_k_650), 0, 0, 1, 0},
-  {&__pyx_kp_s_651, __pyx_k_651, sizeof(__pyx_k_651), 0, 0, 1, 0},
-  {&__pyx_kp_s_652, __pyx_k_652, sizeof(__pyx_k_652), 0, 0, 1, 0},
+  {&__pyx_kp_b_651, __pyx_k_651, sizeof(__pyx_k_651), 0, 0, 0, 0},
   {&__pyx_kp_s_653, __pyx_k_653, sizeof(__pyx_k_653), 0, 0, 1, 0},
   {&__pyx_kp_s_654, __pyx_k_654, sizeof(__pyx_k_654), 0, 0, 1, 0},
+  {&__pyx_kp_s_655, __pyx_k_655, sizeof(__pyx_k_655), 0, 0, 1, 0},
+  {&__pyx_kp_s_656, __pyx_k_656, sizeof(__pyx_k_656), 0, 0, 1, 0},
   {&__pyx_kp_s_657, __pyx_k_657, sizeof(__pyx_k_657), 0, 0, 1, 0},
   {&__pyx_kp_u_66, __pyx_k_66, sizeof(__pyx_k_66), 0, 1, 0, 0},
-  {&__pyx_n_s_660, __pyx_k_660, sizeof(__pyx_k_660), 0, 0, 1, 1},
-  {&__pyx_kp_u_661, __pyx_k_661, sizeof(__pyx_k_661), 0, 1, 0, 0},
-  {&__pyx_kp_s_663, __pyx_k_663, sizeof(__pyx_k_663), 0, 0, 1, 0},
-  {&__pyx_kp_s_664, __pyx_k_664, sizeof(__pyx_k_664), 0, 0, 1, 0},
-  {&__pyx_kp_s_665, __pyx_k_665, sizeof(__pyx_k_665), 0, 0, 1, 0},
+  {&__pyx_kp_s_660, __pyx_k_660, sizeof(__pyx_k_660), 0, 0, 1, 0},
+  {&__pyx_n_s_663, __pyx_k_663, sizeof(__pyx_k_663), 0, 0, 1, 1},
+  {&__pyx_kp_u_664, __pyx_k_664, sizeof(__pyx_k_664), 0, 1, 0, 0},
   {&__pyx_kp_s_666, __pyx_k_666, sizeof(__pyx_k_666), 0, 0, 1, 0},
   {&__pyx_kp_s_667, __pyx_k_667, sizeof(__pyx_k_667), 0, 0, 1, 0},
   {&__pyx_kp_s_668, __pyx_k_668, sizeof(__pyx_k_668), 0, 0, 1, 0},
@@ -172909,35 +172839,39 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_kp_s_670, __pyx_k_670, sizeof(__pyx_k_670), 0, 0, 1, 0},
   {&__pyx_kp_s_671, __pyx_k_671, sizeof(__pyx_k_671), 0, 0, 1, 0},
   {&__pyx_kp_s_672, __pyx_k_672, sizeof(__pyx_k_672), 0, 0, 1, 0},
-  {&__pyx_kp_u_673, __pyx_k_673, sizeof(__pyx_k_673), 0, 1, 0, 0},
+  {&__pyx_kp_s_673, __pyx_k_673, sizeof(__pyx_k_673), 0, 0, 1, 0},
+  {&__pyx_kp_s_674, __pyx_k_674, sizeof(__pyx_k_674), 0, 0, 1, 0},
   {&__pyx_kp_s_675, __pyx_k_675, sizeof(__pyx_k_675), 0, 0, 1, 0},
-  {&__pyx_kp_s_676, __pyx_k_676, sizeof(__pyx_k_676), 0, 0, 1, 0},
-  {&__pyx_kp_s_677, __pyx_k_677, sizeof(__pyx_k_677), 0, 0, 1, 0},
-  {&__pyx_kp_u_678, __pyx_k_678, sizeof(__pyx_k_678), 0, 1, 0, 0},
-  {&__pyx_kp_u_679, __pyx_k_679, sizeof(__pyx_k_679), 0, 1, 0, 0},
+  {&__pyx_kp_u_676, __pyx_k_676, sizeof(__pyx_k_676), 0, 1, 0, 0},
+  {&__pyx_kp_s_678, __pyx_k_678, sizeof(__pyx_k_678), 0, 0, 1, 0},
+  {&__pyx_kp_s_679, __pyx_k_679, sizeof(__pyx_k_679), 0, 0, 1, 0},
   {&__pyx_kp_u_68, __pyx_k_68, sizeof(__pyx_k_68), 0, 1, 0, 0},
+  {&__pyx_kp_s_680, __pyx_k_680, sizeof(__pyx_k_680), 0, 0, 1, 0},
+  {&__pyx_kp_u_681, __pyx_k_681, sizeof(__pyx_k_681), 0, 1, 0, 0},
+  {&__pyx_kp_u_682, __pyx_k_682, sizeof(__pyx_k_682), 0, 1, 0, 0},
   {&__pyx_kp_u_69, __pyx_k_69, sizeof(__pyx_k_69), 0, 1, 0, 0},
   {&__pyx_kp_u_70, __pyx_k_70, sizeof(__pyx_k_70), 0, 1, 0, 0},
   {&__pyx_kp_u_71, __pyx_k_71, sizeof(__pyx_k_71), 0, 1, 0, 0},
   {&__pyx_kp_u_72, __pyx_k_72, sizeof(__pyx_k_72), 0, 1, 0, 0},
   {&__pyx_kp_u_73, __pyx_k_73, sizeof(__pyx_k_73), 0, 1, 0, 0},
   {&__pyx_kp_u_74, __pyx_k_74, sizeof(__pyx_k_74), 0, 1, 0, 0},
-  {&__pyx_kp_u_79, __pyx_k_79, sizeof(__pyx_k_79), 0, 1, 0, 0},
-  {&__pyx_kp_u_80, __pyx_k_80, sizeof(__pyx_k_80), 0, 1, 0, 0},
-  {&__pyx_n_s_81, __pyx_k_81, sizeof(__pyx_k_81), 0, 0, 1, 1},
+  {&__pyx_kp_u_75, __pyx_k_75, sizeof(__pyx_k_75), 0, 1, 0, 0},
+  {&__pyx_kp_u_76, __pyx_k_76, sizeof(__pyx_k_76), 0, 1, 0, 0},
+  {&__pyx_kp_u_77, __pyx_k_77, sizeof(__pyx_k_77), 0, 1, 0, 0},
   {&__pyx_kp_u_82, __pyx_k_82, sizeof(__pyx_k_82), 0, 1, 0, 0},
   {&__pyx_kp_u_83, __pyx_k_83, sizeof(__pyx_k_83), 0, 1, 0, 0},
-  {&__pyx_kp_u_84, __pyx_k_84, sizeof(__pyx_k_84), 0, 1, 0, 0},
+  {&__pyx_n_s_84, __pyx_k_84, sizeof(__pyx_k_84), 0, 0, 1, 1},
   {&__pyx_kp_u_85, __pyx_k_85, sizeof(__pyx_k_85), 0, 1, 0, 0},
   {&__pyx_kp_u_86, __pyx_k_86, sizeof(__pyx_k_86), 0, 1, 0, 0},
   {&__pyx_kp_u_87, __pyx_k_87, sizeof(__pyx_k_87), 0, 1, 0, 0},
-  {&__pyx_n_s_88, __pyx_k_88, sizeof(__pyx_k_88), 0, 0, 1, 1},
+  {&__pyx_kp_u_88, __pyx_k_88, sizeof(__pyx_k_88), 0, 1, 0, 0},
   {&__pyx_kp_u_89, __pyx_k_89, sizeof(__pyx_k_89), 0, 1, 0, 0},
   {&__pyx_kp_u_90, __pyx_k_90, sizeof(__pyx_k_90), 0, 1, 0, 0},
-  {&__pyx_kp_u_91, __pyx_k_91, sizeof(__pyx_k_91), 0, 1, 0, 0},
-  {&__pyx_n_s_92, __pyx_k_92, sizeof(__pyx_k_92), 0, 0, 1, 1},
-  {&__pyx_kp_s_97, __pyx_k_97, sizeof(__pyx_k_97), 0, 0, 1, 0},
-  {&__pyx_kp_s_99, __pyx_k_99, sizeof(__pyx_k_99), 0, 0, 1, 0},
+  {&__pyx_n_s_91, __pyx_k_91, sizeof(__pyx_k_91), 0, 0, 1, 1},
+  {&__pyx_kp_u_92, __pyx_k_92, sizeof(__pyx_k_92), 0, 1, 0, 0},
+  {&__pyx_kp_u_93, __pyx_k_93, sizeof(__pyx_k_93), 0, 1, 0, 0},
+  {&__pyx_kp_u_94, __pyx_k_94, sizeof(__pyx_k_94), 0, 1, 0, 0},
+  {&__pyx_n_s_95, __pyx_k_95, sizeof(__pyx_k_95), 0, 0, 1, 1},
   {&__pyx_n_b__A, __pyx_k__A, sizeof(__pyx_k__A), 0, 0, 0, 1},
   {&__pyx_n_b__ASCII, __pyx_k__ASCII, sizeof(__pyx_k__ASCII), 0, 0, 0, 1},
   {&__pyx_n_u__ASCII, __pyx_k__ASCII, sizeof(__pyx_k__ASCII), 0, 1, 0, 1},
@@ -173387,7 +173321,6 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
   {&__pyx_n_s__seq, __pyx_k__seq, sizeof(__pyx_k__seq), 0, 0, 1, 1},
   {&__pyx_n_s__set_default_parser, __pyx_k__set_default_parser, sizeof(__pyx_k__set_default_parser), 0, 0, 1, 1},
   {&__pyx_n_s__smart_strings, __pyx_k__smart_strings, sizeof(__pyx_k__smart_strings), 0, 0, 1, 1},
-  {&__pyx_n_s__sort, __pyx_k__sort, sizeof(__pyx_k__sort), 0, 0, 1, 1},
   {&__pyx_n_s__sorted, __pyx_k__sorted, sizeof(__pyx_k__sorted), 0, 0, 1, 1},
   {&__pyx_n_s__source, __pyx_k__source, sizeof(__pyx_k__source), 0, 0, 1, 1},
   {&__pyx_n_s__split, __pyx_k__split, sizeof(__pyx_k__split), 0, 0, 1, 1},
@@ -173481,12 +173414,12 @@ static __Pyx_StringTabEntry __pyx_string_tab[] = {
 static int __Pyx_InitCachedBuiltins(void) {
   __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s__ImportError); if (!__pyx_builtin_ImportError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_Exception = __Pyx_GetBuiltinName(__pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_SyntaxError = __Pyx_GetBuiltinName(__pyx_n_s__SyntaxError); if (!__pyx_builtin_SyntaxError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_Exception = __Pyx_GetBuiltinName(__pyx_n_s__Exception); if (!__pyx_builtin_Exception) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_SyntaxError = __Pyx_GetBuiltinName(__pyx_n_s__SyntaxError); if (!__pyx_builtin_SyntaxError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s__object); if (!__pyx_builtin_object) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s__staticmethod); if (!__pyx_builtin_staticmethod) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s__super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_staticmethod = __Pyx_GetBuiltinName(__pyx_n_s__staticmethod); if (!__pyx_builtin_staticmethod) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s__ValueError); if (!__pyx_builtin_ValueError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_super = __Pyx_GetBuiltinName(__pyx_n_s__super); if (!__pyx_builtin_super) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s__range); if (!__pyx_builtin_range) {__pyx_filename = __pyx_f[3]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_id = __Pyx_GetBuiltinName(__pyx_n_s__id); if (!__pyx_builtin_id) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -173498,17 +173431,17 @@ static int __Pyx_InitCachedBuiltins(void) {
   #else
   __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s__xrange); if (!__pyx_builtin_xrange) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 934; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #endif
-  __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s__UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1376; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s__UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_FutureWarning = __Pyx_GetBuiltinName(__pyx_n_s__FutureWarning); if (!__pyx_builtin_FutureWarning) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1087; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s__NotImplemented); if (!__pyx_builtin_NotImplemented) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s__StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_UnicodeEncodeError = __Pyx_GetBuiltinName(__pyx_n_s__UnicodeEncodeError); if (!__pyx_builtin_UnicodeEncodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_UnicodeDecodeError = __Pyx_GetBuiltinName(__pyx_n_s__UnicodeDecodeError); if (!__pyx_builtin_UnicodeDecodeError) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1405; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s__IndexError); if (!__pyx_builtin_IndexError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 640; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_FutureWarning = __Pyx_GetBuiltinName(__pyx_n_s__FutureWarning); if (!__pyx_builtin_FutureWarning) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1084; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_NotImplemented = __Pyx_GetBuiltinName(__pyx_n_s__NotImplemented); if (!__pyx_builtin_NotImplemented) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1728; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_StopIteration = __Pyx_GetBuiltinName(__pyx_n_s__StopIteration); if (!__pyx_builtin_StopIteration) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_IOError = __Pyx_GetBuiltinName(__pyx_n_s__IOError); if (!__pyx_builtin_IOError) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 614; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_LookupError = __Pyx_GetBuiltinName(__pyx_n_s__LookupError); if (!__pyx_builtin_LookupError) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s__open); if (!__pyx_builtin_open) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_open = __Pyx_GetBuiltinName(__pyx_n_s__open); if (!__pyx_builtin_open) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 450; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_NotImplementedError = __Pyx_GetBuiltinName(__pyx_n_s__NotImplementedError); if (!__pyx_builtin_NotImplementedError) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s__AssertionError); if (!__pyx_builtin_AssertionError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3275; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_AssertionError = __Pyx_GetBuiltinName(__pyx_n_s__AssertionError); if (!__pyx_builtin_AssertionError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   return 0;
   __pyx_L1_error:;
   return -1;
@@ -173518,135 +173451,157 @@ static int __Pyx_InitCachedConstants(void) {
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":163
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":160
  *     prefix_utf, uri_utf = _utf8(prefix), _utf8(uri)
  *     if _check_internal_prefix(prefix_utf):
  *         raise ValueError("Prefix format reserved for internal use")             # <<<<<<<<<<<<<<
  *     _tagValidOrRaise(prefix_utf)
  *     _uriValidOrRaise(uri_utf)
  */
-  __pyx_k_tuple_2 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_1)); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 163; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_2 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_1)); if (unlikely(!__pyx_k_tuple_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 160; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_2);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_2));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":210
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":207
  * cdef __unpackDottedVersion(version):
  *     cdef list version_list = []
  *     l = (version.decode("ascii").replace(u'-', u'.').split(u'.') + [0]*4)[:4]             # <<<<<<<<<<<<<<
  *     for item in l:
  *         try:
  */
-  __pyx_k_tuple_3 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_3 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__ascii)); if (unlikely(!__pyx_k_tuple_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_3);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_3));
-  __pyx_k_tuple_6 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_4), ((PyObject *)__pyx_kp_u_5)); if (unlikely(!__pyx_k_tuple_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_6 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_4), ((PyObject *)__pyx_kp_u_5)); if (unlikely(!__pyx_k_tuple_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_6);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_6));
-  __pyx_k_tuple_7 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_5)); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_7 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_5)); if (unlikely(!__pyx_k_tuple_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_7);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_7));
-  __pyx_k_slice_8 = PySlice_New(Py_None, __pyx_int_4, Py_None); if (unlikely(!__pyx_k_slice_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_slice_8 = PySlice_New(Py_None, __pyx_int_4, Py_None); if (unlikely(!__pyx_k_slice_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_slice_8);
   __Pyx_GIVEREF(__pyx_k_slice_8);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":215
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":212
  *             item = int(item)
  *         except ValueError:
  *             if item.startswith(u'dev'):             # <<<<<<<<<<<<<<
  *                 count = item[3:]
  *                 item = -300
  */
-  __pyx_k_tuple_9 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__dev)); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_9 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__dev)); if (unlikely(!__pyx_k_tuple_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_9);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_9));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":216
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":213
  *         except ValueError:
  *             if item.startswith(u'dev'):
  *                 count = item[3:]             # <<<<<<<<<<<<<<
  *                 item = -300
  *             elif item.startswith(u'alpha'):
  */
-  __pyx_k_slice_10 = PySlice_New(__pyx_int_3, Py_None, Py_None); if (unlikely(!__pyx_k_slice_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_slice_10 = PySlice_New(__pyx_int_3, Py_None, Py_None); if (unlikely(!__pyx_k_slice_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 213; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_slice_10);
   __Pyx_GIVEREF(__pyx_k_slice_10);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":218
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":215
  *                 count = item[3:]
  *                 item = -300
  *             elif item.startswith(u'alpha'):             # <<<<<<<<<<<<<<
  *                 count = item[5:]
  *                 item = -200
  */
-  __pyx_k_tuple_11 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__alpha)); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_11 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__alpha)); if (unlikely(!__pyx_k_tuple_11)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_11);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_11));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":219
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":216
  *                 item = -300
  *             elif item.startswith(u'alpha'):
  *                 count = item[5:]             # <<<<<<<<<<<<<<
  *                 item = -200
  *             elif item.startswith(u'beta'):
  */
-  __pyx_k_slice_12 = PySlice_New(__pyx_int_5, Py_None, Py_None); if (unlikely(!__pyx_k_slice_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_slice_12 = PySlice_New(__pyx_int_5, Py_None, Py_None); if (unlikely(!__pyx_k_slice_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 216; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_slice_12);
   __Pyx_GIVEREF(__pyx_k_slice_12);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":221
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":218
  *                 count = item[5:]
  *                 item = -200
  *             elif item.startswith(u'beta'):             # <<<<<<<<<<<<<<
  *                 count = item[4:]
  *                 item = -100
  */
-  __pyx_k_tuple_13 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__beta)); if (unlikely(!__pyx_k_tuple_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 221; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_13 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__beta)); if (unlikely(!__pyx_k_tuple_13)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 218; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_13);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_13));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":222
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":219
  *                 item = -200
  *             elif item.startswith(u'beta'):
  *                 count = item[4:]             # <<<<<<<<<<<<<<
  *                 item = -100
  *             else:
  */
-  __pyx_k_slice_14 = PySlice_New(__pyx_int_4, Py_None, Py_None); if (unlikely(!__pyx_k_slice_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 222; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_slice_14 = PySlice_New(__pyx_int_4, Py_None, Py_None); if (unlikely(!__pyx_k_slice_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 219; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_slice_14);
   __Pyx_GIVEREF(__pyx_k_slice_14);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1333
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1202
+ *     while c_parent:
+ *         if c_parent is c_node:
+ *             raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
+ *         c_parent = c_parent.parent
+ *     # store possible text node
+ */
+  __pyx_k_tuple_30 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_29)); if (unlikely(!__pyx_k_tuple_30)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_30);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_30));
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1223
+ *     while c_parent:
+ *         if c_parent is c_node:
+ *             raise ValueError("cannot append parent to itself")             # <<<<<<<<<<<<<<
+ *         c_parent = c_parent.parent
+ *     # store possible text node
+ */
+  __pyx_k_tuple_31 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_29)); if (unlikely(!__pyx_k_tuple_31)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1223; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_31);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_31));
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1344
  *         raise TypeError("Argument must be bytes or unicode, got '%.200s'" % type(s).__name__)
  *     if invalid:
  *         raise ValueError(             # <<<<<<<<<<<<<<
  *             "All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters")
  *     return utf8_string
  */
-  __pyx_k_tuple_31 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_30)); if (unlikely(!__pyx_k_tuple_31)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1333; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_31);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_31));
+  __pyx_k_tuple_34 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_33)); if (unlikely(!__pyx_k_tuple_34)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_34);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_34));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1380
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1391
  *         return filename8
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef object _decodeFilename(const_xmlChar* c_path):
  */
-  __pyx_k_tuple_33 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_32)); if (unlikely(!__pyx_k_tuple_33)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1380; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_33);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_33));
+  __pyx_k_tuple_36 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_35)); if (unlikely(!__pyx_k_tuple_36)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1391; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_36);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_36));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1429
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":1440
  *         return (<unicode>filename).encode('utf8')
  *     else:
  *         raise TypeError("Argument must be string or unicode.")             # <<<<<<<<<<<<<<
  * 
  * cdef tuple _getNsTag(tag):
  */
-  __pyx_k_tuple_34 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_32)); if (unlikely(!__pyx_k_tuple_34)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_34);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_34));
+  __pyx_k_tuple_37 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_35)); if (unlikely(!__pyx_k_tuple_37)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 1440; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_37);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_37));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":509
  *     except KeyError:
@@ -173655,9 +173610,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         return log
  * 
  */
-  __pyx_k_tuple_50 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_50)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_50);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_50));
+  __pyx_k_tuple_53 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_53)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_53);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_53));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":632
  *     u"Called at setup time to parse the constants and build the classes below."
@@ -173666,141 +173621,141 @@ static int __Pyx_InitCachedConstants(void) {
  *     const_defs = ((ErrorLevels,          __ERROR_LEVELS),
  *                   (ErrorDomains,         __ERROR_DOMAINS),
  */
-  __pyx_k_tuple_58 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_57)); if (unlikely(!__pyx_k_tuple_58)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_58);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_58));
+  __pyx_k_tuple_61 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_60)); if (unlikely(!__pyx_k_tuple_61)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 632; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_61);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_61));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1889
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1886
  *         if method == 'c14n':
  *             if encoding is not None:
  *                 raise ValueError("Cannot specify encoding with C14N")             # <<<<<<<<<<<<<<
  *             if xml_declaration:
  *                 raise ValueError("Cannot enable XML declaration in C14N")
  */
-  __pyx_k_tuple_98 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_97)); if (unlikely(!__pyx_k_tuple_98)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_98);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_98));
+  __pyx_k_tuple_101 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_100)); if (unlikely(!__pyx_k_tuple_101)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_101);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_101));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1891
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1888
  *                 raise ValueError("Cannot specify encoding with C14N")
  *             if xml_declaration:
  *                 raise ValueError("Cannot enable XML declaration in C14N")             # <<<<<<<<<<<<<<
  * 
  *             _tofilelikeC14N(file, self._context_node, exclusive, with_comments,
  */
-  __pyx_k_tuple_100 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_99)); if (unlikely(!__pyx_k_tuple_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_100);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_100));
+  __pyx_k_tuple_103 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_102)); if (unlikely(!__pyx_k_tuple_103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_103);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_103));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1897
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1894
  *             return
  *         if not with_comments:
  *             raise ValueError("Can only discard comments in C14N serialisation")             # <<<<<<<<<<<<<<
  *         # suppress decl. in default case (purely for ElementTree compatibility)
  *         if xml_declaration is not None:
  */
-  __pyx_k_tuple_102 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_101)); if (unlikely(!__pyx_k_tuple_102)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_102);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_102));
+  __pyx_k_tuple_105 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_104)); if (unlikely(!__pyx_k_tuple_105)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_105);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_105));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2008
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2005
  *         root = self.getroot()
  *         if _isString(path):
  *             start = path[:1]             # <<<<<<<<<<<<<<
  *             if start == u"/":
  *                 path = u"." + path
  */
-  __pyx_k_slice_106 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_106)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_106);
-  __Pyx_GIVEREF(__pyx_k_slice_106);
+  __pyx_k_slice_109 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_109);
+  __Pyx_GIVEREF(__pyx_k_slice_109);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2028
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2025
  *         root = self.getroot()
  *         if _isString(path):
  *             start = path[:1]             # <<<<<<<<<<<<<<
  *             if start == u"/":
  *                 path = u"." + path
  */
-  __pyx_k_slice_108 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_108)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_108);
-  __Pyx_GIVEREF(__pyx_k_slice_108);
+  __pyx_k_slice_111 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_111);
+  __Pyx_GIVEREF(__pyx_k_slice_111);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2048
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2045
  *         root = self.getroot()
  *         if _isString(path):
  *             start = path[:1]             # <<<<<<<<<<<<<<
  *             if start == u"/":
  *                 path = u"." + path
  */
-  __pyx_k_slice_109 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2048; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_109);
-  __Pyx_GIVEREF(__pyx_k_slice_109);
+  __pyx_k_slice_112 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_112)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_112);
+  __Pyx_GIVEREF(__pyx_k_slice_112);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2068
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2065
  *         root = self.getroot()
  *         if _isString(path):
  *             start = path[:1]             # <<<<<<<<<<<<<<
  *             if start == u"/":
  *                 path = u"." + path
  */
-  __pyx_k_slice_110 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2068; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_110);
-  __Pyx_GIVEREF(__pyx_k_slice_110);
+  __pyx_k_slice_113 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2065; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_113);
+  __Pyx_GIVEREF(__pyx_k_slice_113);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2760
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2757
  *         _assertValidNode(element)
  *         if with_tail:
  *             events = (u"start", u"end")             # <<<<<<<<<<<<<<
  *         else:
  *             events = (u"start",)
  */
-  __pyx_k_tuple_121 = PyTuple_Pack(2, ((PyObject *)__pyx_n_u__start), ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_121)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_121);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_121));
+  __pyx_k_tuple_124 = PyTuple_Pack(2, ((PyObject *)__pyx_n_u__start), ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_124)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_124);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_124));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2762
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2759
  *             events = (u"start", u"end")
  *         else:
  *             events = (u"start",)             # <<<<<<<<<<<<<<
  *         self._start_element = element
  *         self._nextEvent = iterwalk(element, events=events, tag=tag).__next__
  */
-  __pyx_k_tuple_122 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__start)); if (unlikely(!__pyx_k_tuple_122)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_122);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_122));
+  __pyx_k_tuple_125 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__start)); if (unlikely(!__pyx_k_tuple_125)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_125);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_125));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3089
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3086
  *     if method == 'c14n':
  *         if encoding is not None:
  *             raise ValueError("Cannot specify encoding with C14N")             # <<<<<<<<<<<<<<
  *         if xml_declaration:
  *             raise ValueError("Cannot enable XML declaration in C14N")
  */
-  __pyx_k_tuple_126 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_97)); if (unlikely(!__pyx_k_tuple_126)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_126);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_126));
+  __pyx_k_tuple_129 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_100)); if (unlikely(!__pyx_k_tuple_129)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_129);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_129));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3091
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3088
  *             raise ValueError("Cannot specify encoding with C14N")
  *         if xml_declaration:
  *             raise ValueError("Cannot enable XML declaration in C14N")             # <<<<<<<<<<<<<<
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  *     if not with_comments:
  */
-  __pyx_k_tuple_127 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_99)); if (unlikely(!__pyx_k_tuple_127)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_127);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_127));
+  __pyx_k_tuple_130 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_102)); if (unlikely(!__pyx_k_tuple_130)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3088; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_130);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_130));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3094
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3091
  *         return _tostringC14N(element_or_tree, exclusive, with_comments, inclusive_ns_prefixes)
  *     if not with_comments:
  *         raise ValueError("Can only discard comments in C14N serialisation")             # <<<<<<<<<<<<<<
  *     if encoding is _unicode or (encoding is not None and encoding.upper() == 'UNICODE'):
  *         if xml_declaration:
  */
-  __pyx_k_tuple_128 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_101)); if (unlikely(!__pyx_k_tuple_128)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3094; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_128);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_128));
+  __pyx_k_tuple_131 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_104)); if (unlikely(!__pyx_k_tuple_131)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3091; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_131);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_131));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":195
  *             children = [ el for el in children if el.tag == tag ]
@@ -173809,9 +173764,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         return iter(children)
  * 
  */
-  __pyx_k_slice_134 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_k_slice_134)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_134);
-  __Pyx_GIVEREF(__pyx_k_slice_134);
+  __pyx_k_slice_137 = PySlice_New(Py_None, Py_None, __pyx_int_neg_1); if (unlikely(!__pyx_k_slice_137)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_137);
+  __Pyx_GIVEREF(__pyx_k_slice_137);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":61
  *             tag = _utf8(_getattr(_getattr(self, '__class__'), '__name__'))
@@ -173820,9 +173775,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         try:
  *             parser = _getattr(self, 'PARSER')
  */
-  __pyx_k_tuple_141 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_5)); if (unlikely(!__pyx_k_tuple_141)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_141);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_141));
+  __pyx_k_tuple_144 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_5)); if (unlikely(!__pyx_k_tuple_144)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 61; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_144);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_144));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":46
  *             class_dict_iterable = class_dict_iterable.items()
@@ -173831,9 +173786,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 self[name] = item
  * 
  */
-  __pyx_k_slice_152 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_152)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_152);
-  __Pyx_GIVEREF(__pyx_k_slice_152);
+  __pyx_k_slice_155 = PySlice_New(Py_None, __pyx_int_1, Py_None); if (unlikely(!__pyx_k_slice_155)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 46; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_155);
+  __Pyx_GIVEREF(__pyx_k_slice_155);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1607
  *     if isinstance(text, unicode):
@@ -173842,155 +173797,155 @@ static int __Pyx_InitCachedConstants(void) {
  *                 u"Unicode strings with encoding declaration are not supported. "
  *                 u"Please use bytes input or XML fragments without declaration.")
  */
-  __pyx_k_tuple_219 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_218)); if (unlikely(!__pyx_k_tuple_219)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_219);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_219));
+  __pyx_k_tuple_222 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_221)); if (unlikely(!__pyx_k_tuple_222)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1607; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_222);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_222));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":112
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":115
  *     if enchandler is NULL and c_enc is not NULL:
  *         if encoding is not None:
  *             encoding = encoding.decode('UTF-8')             # <<<<<<<<<<<<<<
  *         raise LookupError, u"unknown encoding: '%s'" % encoding
  *     c_buffer = tree.xmlAllocOutputBuffer(enchandler)
  */
-  __pyx_k_tuple_229 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_104)); if (unlikely(!__pyx_k_tuple_229)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 112; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_229);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_229));
+  __pyx_k_tuple_232 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_107)); if (unlikely(!__pyx_k_tuple_232)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_232);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_232));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":562
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":567
  *             writer   = _FilelikeWriter(f, compression=compression)
  *             c_buffer = writer._createOutputBuffer(NULL)
  *             with writer.error_log:             # <<<<<<<<<<<<<<
  *                 bytes_count = c14n.xmlC14NDocSaveTo(
  *                     c_doc, NULL, exclusive, c_inclusive_ns_prefixes,
  */
-  __pyx_k_tuple_249 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_249)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_249);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_249));
+  __pyx_k_tuple_252 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_252)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 567; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_252);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_252));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":673
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":678
  *         cdef int c_standalone
  *         if self._status >= WRITER_DECL_WRITTEN:
  *             raise LxmlSyntaxError("XML declaration already written")             # <<<<<<<<<<<<<<
  *         version = _utf8orNone(version)
  *         c_version = _xcstr(version) if version is not None else NULL
  */
-  __pyx_k_tuple_251 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_250)); if (unlikely(!__pyx_k_tuple_251)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 673; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_251);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_251));
+  __pyx_k_tuple_254 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_253)); if (unlikely(!__pyx_k_tuple_254)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 678; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_254);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_254));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":698
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":703
  *             return
  *         if self._status >= WRITER_DTD_WRITTEN:
  *             raise LxmlSyntaxError("DOCTYPE already written or cannot write it here")             # <<<<<<<<<<<<<<
  *         doctype = _utf8(doctype)
  *         _writeDoctype(self._c_out, _xcstr(doctype))
  */
-  __pyx_k_tuple_253 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_252)); if (unlikely(!__pyx_k_tuple_253)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 698; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_253);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_253));
+  __pyx_k_tuple_256 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_255)); if (unlikely(!__pyx_k_tuple_256)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_256);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_256));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":740
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":745
  *     cdef _write_start_element(self, element_config):
  *         if self._status > WRITER_IN_ELEMENT:
  *             raise LxmlSyntaxError("cannot append trailing element to complete XML document")             # <<<<<<<<<<<<<<
  *         ns, name, attributes, nsmap = element_config
  *         flat_namespace_map, new_namespaces = self._collect_namespaces(nsmap)
  */
-  __pyx_k_tuple_256 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_255)); if (unlikely(!__pyx_k_tuple_256)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_256);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_256));
+  __pyx_k_tuple_259 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_258)); if (unlikely(!__pyx_k_tuple_259)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_259);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_259));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":778
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":783
  *     cdef _write_end_element(self, element_config):
  *         if self._status != WRITER_IN_ELEMENT:
  *             raise LxmlSyntaxError("not in an element")             # <<<<<<<<<<<<<<
  *         if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
  */
-  __pyx_k_tuple_261 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_260)); if (unlikely(!__pyx_k_tuple_261)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_261);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_261));
+  __pyx_k_tuple_264 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_263)); if (unlikely(!__pyx_k_tuple_264)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 783; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_264);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_264));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":779
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":784
  *         if self._status != WRITER_IN_ELEMENT:
  *             raise LxmlSyntaxError("not in an element")
  *         if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:             # <<<<<<<<<<<<<<
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
  * 
  */
-  __pyx_k_slice_262 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_k_slice_262)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_262);
-  __Pyx_GIVEREF(__pyx_k_slice_262);
-  __pyx_k_slice_263 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_k_slice_263)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 779; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_263);
-  __Pyx_GIVEREF(__pyx_k_slice_263);
+  __pyx_k_slice_265 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_k_slice_265)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_265);
+  __Pyx_GIVEREF(__pyx_k_slice_265);
+  __pyx_k_slice_266 = PySlice_New(Py_None, __pyx_int_2, Py_None); if (unlikely(!__pyx_k_slice_266)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 784; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_266);
+  __Pyx_GIVEREF(__pyx_k_slice_266);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":780
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":785
  *             raise LxmlSyntaxError("not in an element")
  *         if not self._element_stack or self._element_stack[-1][:2] != element_config[:2]:
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")             # <<<<<<<<<<<<<<
  * 
  *         name, prefix = self._element_stack.pop()[1:3]
  */
-  __pyx_k_tuple_265 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_264)); if (unlikely(!__pyx_k_tuple_265)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_265);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_265));
+  __pyx_k_tuple_268 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_267)); if (unlikely(!__pyx_k_tuple_268)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 785; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_268);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_268));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":782
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":787
  *             raise LxmlSyntaxError("inconsistent exit action in context manager")
  * 
  *         name, prefix = self._element_stack.pop()[1:3]             # <<<<<<<<<<<<<<
  *         tree.xmlOutputBufferWrite(self._c_out, 2, '</')
  *         self._write_qname(name, prefix)
  */
-  __pyx_k_slice_266 = PySlice_New(__pyx_int_1, __pyx_int_3, Py_None); if (unlikely(!__pyx_k_slice_266)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 782; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_266);
-  __Pyx_GIVEREF(__pyx_k_slice_266);
+  __pyx_k_slice_269 = PySlice_New(__pyx_int_1, __pyx_int_3, Py_None); if (unlikely(!__pyx_k_slice_269)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 787; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_269);
+  __Pyx_GIVEREF(__pyx_k_slice_269);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":834
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":839
  *                 if self._status != WRITER_IN_ELEMENT:
  *                     if self._status > WRITER_IN_ELEMENT or content.strip():
  *                         raise LxmlSyntaxError("not in an element")             # <<<<<<<<<<<<<<
  *                 content = _utf8(content)
  *                 tree.xmlOutputBufferWriteEscape(self._c_out, _xcstr(content), NULL)
  */
-  __pyx_k_tuple_268 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_260)); if (unlikely(!__pyx_k_tuple_268)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_268);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_268));
+  __pyx_k_tuple_271 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_263)); if (unlikely(!__pyx_k_tuple_271)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_271);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_271));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":839
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":844
  *             elif iselement(content):
  *                 if self._status > WRITER_IN_ELEMENT:
  *                     raise LxmlSyntaxError("cannot append trailing element to complete XML document")             # <<<<<<<<<<<<<<
  *                 _writeNodeToBuffer(self._c_out, (<_Element>content)._c_node,
  *                                    self._c_encoding, NULL, OUTPUT_METHOD_XML,
  */
-  __pyx_k_tuple_269 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_255)); if (unlikely(!__pyx_k_tuple_269)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 839; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_269);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_269));
+  __pyx_k_tuple_272 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_258)); if (unlikely(!__pyx_k_tuple_272)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 844; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_272);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_272));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":853
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":858
  *         if raise_on_error:
  *             if self._status < WRITER_IN_ELEMENT:
  *                 raise LxmlSyntaxError("no content written")             # <<<<<<<<<<<<<<
  *             if self._element_stack:
  *                 raise LxmlSyntaxError("pending open tags on close")
  */
-  __pyx_k_tuple_272 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_271)); if (unlikely(!__pyx_k_tuple_272)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_272);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_272));
+  __pyx_k_tuple_275 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_274)); if (unlikely(!__pyx_k_tuple_275)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_275);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_275));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":855
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":860
  *                 raise LxmlSyntaxError("no content written")
  *             if self._element_stack:
  *                 raise LxmlSyntaxError("pending open tags on close")             # <<<<<<<<<<<<<<
  *         error_result = self._c_out.error
  *         if error_result == xmlerror.XML_ERR_OK:
  */
-  __pyx_k_tuple_274 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_273)); if (unlikely(!__pyx_k_tuple_274)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_274);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_274));
+  __pyx_k_tuple_277 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_276)); if (unlikely(!__pyx_k_tuple_277)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 860; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_277);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_277));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":166
  *             ns_count = self._ns_stack.pop()
@@ -173999,9 +173954,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 for i from 0 <= i < ns_count:
  *                     self._events.append(event)
  */
-  __pyx_k_tuple_278 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_276), Py_None); if (unlikely(!__pyx_k_tuple_278)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_278);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_278));
+  __pyx_k_tuple_281 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_279), Py_None); if (unlikely(!__pyx_k_tuple_281)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 166; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_281);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_281));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":368
  *     cdef bint _close_source_after_read
@@ -174010,9 +173965,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                  attribute_defaults=False, dtd_validation=False,
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
  */
-  __pyx_k_tuple_279 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_279)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_279);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_279));
+  __pyx_k_tuple_282 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_282)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 368; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_282);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_282));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":506
  *         while not events:
@@ -174021,9 +173976,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 if not isinstance(data, bytes):
  *                     self._close_source()
  */
-  __pyx_k_tuple_293 = PyTuple_Pack(1, __pyx_int_32768); if (unlikely(!__pyx_k_tuple_293)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_293);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_293));
+  __pyx_k_tuple_296 = PyTuple_Pack(1, __pyx_int_32768); if (unlikely(!__pyx_k_tuple_296)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 506; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_296);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_296));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":509
  *                 if not isinstance(data, bytes):
@@ -174032,9 +173987,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 c_data_len = python.PyBytes_GET_SIZE(data)
  *                 c_data = _cstr(data)
  */
-  __pyx_k_tuple_295 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_294)); if (unlikely(!__pyx_k_tuple_295)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_295);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_295));
+  __pyx_k_tuple_298 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_297)); if (unlikely(!__pyx_k_tuple_298)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 509; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_298);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_298));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":556
  *     cdef int    _event_filter
@@ -174043,9 +173998,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         cdef _Element root
  *         cdef int ns_count
  */
-  __pyx_k_tuple_296 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_296)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_296);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_296));
+  __pyx_k_tuple_299 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__end)); if (unlikely(!__pyx_k_tuple_299)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 556; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_299);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_299));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":585
  *         cdef int ns_count = 0
@@ -174054,9 +174009,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         if self._matcher is not None and self._index >= 0:
  *             node = self._node_stack[self._index][0]
  */
-  __pyx_k_tuple_297 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_297)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_297);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_297));
+  __pyx_k_tuple_300 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_300)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_300);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_300));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":617
  *                 self._index += 1
@@ -174065,9 +174020,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         raise StopIteration
  * 
  */
-  __pyx_k_tuple_298 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_298)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_298);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_298));
+  __pyx_k_tuple_301 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_301)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 617; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_301);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_301));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":641
  *                 self._events.append( (u"end", node) )
@@ -174076,9 +174031,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             for i from 0 <= i < ns_count:
  *                 self._events.append(event)
  */
-  __pyx_k_tuple_299 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_276), Py_None); if (unlikely(!__pyx_k_tuple_299)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_299);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_299));
+  __pyx_k_tuple_302 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_279), Py_None); if (unlikely(!__pyx_k_tuple_302)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_302);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_302));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":15
  *     global _find_id_attributes
@@ -174087,9 +174042,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     # ElementTree compatible implementation: parse and look for 'id' attributes
  */
-  __pyx_k_tuple_301 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_300)); if (unlikely(!__pyx_k_tuple_301)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_301);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_301));
+  __pyx_k_tuple_304 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_303)); if (unlikely(!__pyx_k_tuple_304)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_304);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_304));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":21
  *     dic = {}
@@ -174098,9 +174053,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     return (root, dic)
  * 
  */
-  __pyx_k_tuple_302 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__id)); if (unlikely(!__pyx_k_tuple_302)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_302);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_302));
+  __pyx_k_tuple_305 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__id)); if (unlikely(!__pyx_k_tuple_305)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 21; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_305);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_305));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":114
  *         if self._keys is None:
@@ -174109,9 +174064,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     def __iter__(self):
  */
-  __pyx_k_slice_306 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_306)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_306);
-  __Pyx_GIVEREF(__pyx_k_slice_306);
+  __pyx_k_slice_309 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_309)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_309);
+  __Pyx_GIVEREF(__pyx_k_slice_309);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":132
  *         if self._items is None:
@@ -174120,9 +174075,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *     def iteritems(self):
  */
-  __pyx_k_slice_307 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_307)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_307);
-  __Pyx_GIVEREF(__pyx_k_slice_307);
+  __pyx_k_slice_310 = PySlice_New(Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_slice_310)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_310);
+  __Pyx_GIVEREF(__pyx_k_slice_310);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":445
  *         if function_mapping is None:
@@ -174131,9 +174086,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         for function_name in function_mapping:
  *             functions[(ns, function_name)] = getattr(module, function_name)
  */
-  __pyx_k_tuple_318 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u___)); if (unlikely(!__pyx_k_tuple_318)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_318);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_318));
+  __pyx_k_tuple_321 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u___)); if (unlikely(!__pyx_k_tuple_321)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_321);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_321));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":520
  *                 return ()
@@ -174142,9 +174097,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         result_list = []
  *         root = Element(u'matches')
  */
-  __pyx_k_tuple_319 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_25)); if (unlikely(!__pyx_k_tuple_319)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_319);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_319));
+  __pyx_k_tuple_322 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_25)); if (unlikely(!__pyx_k_tuple_322)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_322);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_322));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":522
  *             results.extend( result.groups(u'') )
@@ -174153,74 +174108,74 @@ static int __Pyx_InitCachedConstants(void) {
  *         join_groups = u''.join
  *         for s_match in results:
  */
-  __pyx_k_tuple_320 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__matches)); if (unlikely(!__pyx_k_tuple_320)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_320);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_320));
+  __pyx_k_tuple_323 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__matches)); if (unlikely(!__pyx_k_tuple_323)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_323);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_323));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":146
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":145
  *             _XPATH_VERSION_WARNING_REQUIRED = 0
  *             import warnings
  *             warnings.warn(u"This version of libxml2 has a known XPath bug. "             # <<<<<<<<<<<<<<
  *                           u"Use it at your own risk.")
  *         self._context = _XPathContext(namespaces, extensions, self._error_log,
  */
-  __pyx_k_tuple_332 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_331)); if (unlikely(!__pyx_k_tuple_332)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_332);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_332));
+  __pyx_k_tuple_335 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_334)); if (unlikely(!__pyx_k_tuple_335)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 145; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_335);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_335));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":514
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":513
  *                 i += 1
  *                 namespace_defs.append(namespace_def)
  *                 namespace = namespace_def[1:-1] # remove '{}'             # <<<<<<<<<<<<<<
  *                 namespace = (<bytes>namespace).decode('utf8')
  *                 namespaces[prefix.decode('utf8')] = namespace
  */
-  __pyx_k_slice_347 = PySlice_New(__pyx_int_1, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_347)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 514; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_slice_347);
-  __Pyx_GIVEREF(__pyx_k_slice_347);
+  __pyx_k_slice_350 = PySlice_New(__pyx_int_1, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_350)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 513; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_slice_350);
+  __Pyx_GIVEREF(__pyx_k_slice_350);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":520
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":519
  *                 # FIXME: this also replaces {namespaces} within strings!
  *                 path_utf = path_utf.replace(namespace_def, prefix_str)
  *         path = path_utf.decode('utf8')             # <<<<<<<<<<<<<<
  *         return path, namespaces
  */
-  __pyx_k_tuple_348 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__utf8)); if (unlikely(!__pyx_k_tuple_348)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_348);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_348));
+  __pyx_k_tuple_351 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__utf8)); if (unlikely(!__pyx_k_tuple_351)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_351);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_351));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":395
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":394
  *         c_doc._private = <python.PyObject*>self._xslt_resolver_context
  * 
  *         with self._error_log:             # <<<<<<<<<<<<<<
  *             c_style = xslt.xsltParseStylesheetDoc(c_doc)
  * 
  */
-  __pyx_k_tuple_357 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_357)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_357);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_357));
+  __pyx_k_tuple_360 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_360)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 394; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_360);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_360));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":462
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":461
  *         """
  *         if max_depth < 0:
  *             raise ValueError("cannot set a maximum stylesheet traversal depth < 0")             # <<<<<<<<<<<<<<
  *         xslt.xsltMaxDepth = max_depth
  * 
  */
-  __pyx_k_tuple_360 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_359)); if (unlikely(!__pyx_k_tuple_360)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 462; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_360);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_360));
+  __pyx_k_tuple_363 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_s_362)); if (unlikely(!__pyx_k_tuple_363)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_363);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_363));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":841
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":840
  *     global __findStylesheetByID
  *     if __findStylesheetByID is None:
  *         __findStylesheetByID = XPath(             # <<<<<<<<<<<<<<
  *             u"//xsl:stylesheet[@xml:id = $id]",
  *             namespaces={u"xsl" : u"http://www.w3.org/1999/XSL/Transform"})
  */
-  __pyx_k_tuple_367 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_366)); if (unlikely(!__pyx_k_tuple_367)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 841; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_367);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_367));
+  __pyx_k_tuple_370 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_369)); if (unlikely(!__pyx_k_tuple_370)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_370);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_370));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":225
  *                 e = unicode(e).encode(u"UTF-8")
@@ -174229,9 +174184,9 @@ static int __Pyx_InitCachedConstants(void) {
  *             message = python.PyBytes_FromFormat(
  *                 "Error executing extension element '%s': %s",
  */
-  __pyx_k_tuple_384 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_104)); if (unlikely(!__pyx_k_tuple_384)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_384);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_384));
+  __pyx_k_tuple_387 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_107)); if (unlikely(!__pyx_k_tuple_387)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_387);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_387));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":284
  *             if _isString(file):
@@ -174240,9 +174195,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                     self._c_dtd = xmlparser.xmlParseDTD(NULL, _xcstr(file))
  *             elif hasattr(file, 'read'):
  */
-  __pyx_k_tuple_394 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_394)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_394);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_394));
+  __pyx_k_tuple_397 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_397)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_397);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_397));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":291
  *                 raise DTDParseError, u"file must be a filename or file-like object"
@@ -174251,9 +174206,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 self._c_dtd = xmlparser.xmlParseDTD(<const_xmlChar*>external_id, NULL)
  *         else:
  */
-  __pyx_k_tuple_396 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_396)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_396);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_396));
+  __pyx_k_tuple_399 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_399)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_399);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_399));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":361
  *         valid_ctxt = dtdvalid.xmlNewValidCtxt()
@@ -174262,9 +174217,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  *         try:
  */
-  __pyx_k_tuple_401 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_400)); if (unlikely(!__pyx_k_tuple_401)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_401);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_401));
+  __pyx_k_tuple_404 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_403)); if (unlikely(!__pyx_k_tuple_404)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 361; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_404);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_404));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":364
  * 
@@ -174273,9 +174228,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
  *                 ret = dtdvalid.xmlValidateDtd(valid_ctxt, c_doc, self._c_dtd)
  */
-  __pyx_k_tuple_402 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_402)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_402);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_402));
+  __pyx_k_tuple_405 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_405)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_405);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_405));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/dtd.pxi":389
  *     error_log = _ErrorLog()
@@ -174284,9 +174239,9 @@ static int __Pyx_InitCachedConstants(void) {
  *         c_dtd = dtd_parser._readDtd()
  * 
  */
-  __pyx_k_tuple_404 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_404)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_404);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_404));
+  __pyx_k_tuple_407 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_407)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_407);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_407));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/relaxng.pxi":58
  *                 doc = None
@@ -174295,9 +174250,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                     parser_ctxt = relaxng.xmlRelaxNGNewParserCtxt(_cstr(filename))
  *             else:
  */
-  __pyx_k_tuple_407 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_407)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_407);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_407));
+  __pyx_k_tuple_410 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_410)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 58; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_410);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_410));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":98
  *                 filename = file
@@ -174306,9 +174261,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 parser_ctxt = schematron.xmlSchematronNewParserCtxt(_cstr(filename))
  *         else:
  */
-  __pyx_k_tuple_423 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_423)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_423);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_423));
+  __pyx_k_tuple_426 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_426)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_426);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_426));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":110
  * 
@@ -174317,9 +174272,9 @@ static int __Pyx_InitCachedConstants(void) {
  *                 self._c_schema = schematron.xmlSchematronParse(parser_ctxt)
  *         finally:
  */
-  __pyx_k_tuple_425 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_425)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_425);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_425));
+  __pyx_k_tuple_428 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_428)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_428);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_428));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/schematron.pxi":167
  *         else:
@@ -174328,69 +174283,69 @@ static int __Pyx_InitCachedConstants(void) {
  *                 c_doc = _fakeRootDoc(doc._c_doc, root_node._c_node)
  *                 with nogil:
  */
-  __pyx_k_tuple_428 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_428)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_428);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_428));
+  __pyx_k_tuple_431 = PyTuple_Pack(3, Py_None, Py_None, Py_None); if (unlikely(!__pyx_k_tuple_431)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_431);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_431));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":134
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":131
  * 
  * # filename encoding
  * cdef bytes _FILENAME_ENCODING = (sys.getfilesystemencoding() or sys.getdefaultencoding() or 'ascii').encode(u"UTF-8")             # <<<<<<<<<<<<<<
  * cdef char* _C_FILENAME_ENCODING = _cstr(_FILENAME_ENCODING)
  * 
  */
-  __pyx_k_tuple_485 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_104)); if (unlikely(!__pyx_k_tuple_485)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_485);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_485));
+  __pyx_k_tuple_488 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_107)); if (unlikely(!__pyx_k_tuple_488)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_488);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_488));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":153
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":150
  * }
  * 
  * cdef object _check_internal_prefix = re.compile(b"ns\d+$").match             # <<<<<<<<<<<<<<
  * 
  * def register_namespace(prefix, uri):
  */
-  __pyx_k_tuple_494 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_493)); if (unlikely(!__pyx_k_tuple_494)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_494);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_494));
+  __pyx_k_tuple_497 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_496)); if (unlikely(!__pyx_k_tuple_497)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_497);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_497));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":155
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":152
  * cdef object _check_internal_prefix = re.compile(b"ns\d+$").match
  * 
  * def register_namespace(prefix, uri):             # <<<<<<<<<<<<<<
  *     u"""Registers a namespace prefix that newly created Elements in that
  *     namespace will use.  The registry is global, and any existing
  */
-  __pyx_k_tuple_495 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__prefix), ((PyObject *)__pyx_n_s__uri), ((PyObject *)__pyx_n_s__prefix_utf), ((PyObject *)__pyx_n_s__uri_utf), ((PyObject *)__pyx_n_s__k), ((PyObject *)__pyx_n_s__v)); if (unlikely(!__pyx_k_tuple_495)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_495);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_495));
-  __pyx_k_codeobj_496 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_495, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__register_namespace, 155, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_496)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_498 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__prefix), ((PyObject *)__pyx_n_s__uri), ((PyObject *)__pyx_n_s__prefix_utf), ((PyObject *)__pyx_n_s__uri_utf), ((PyObject *)__pyx_n_s__k), ((PyObject *)__pyx_n_s__v)); if (unlikely(!__pyx_k_tuple_498)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_498);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_498));
+  __pyx_k_codeobj_499 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_498, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__register_namespace, 152, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_499)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":181
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":178
  *     this one.
  *     """
  *     def __init__(self, message, error_log=None):             # <<<<<<<<<<<<<<
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __pyx_k_tuple_499 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__error_log)); if (unlikely(!__pyx_k_tuple_499)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_499);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_499));
-  __pyx_k_codeobj_500 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_499, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s____init__, 181, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_500)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_k_tuple_501 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_k_tuple_501)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_501);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_501));
+  __pyx_k_tuple_502 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__error_log)); if (unlikely(!__pyx_k_tuple_502)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_502);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_502));
+  __pyx_k_codeobj_503 = (PyObject*)__Pyx_PyCode_New(3, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_502, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s____init__, 178, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_503)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_504 = PyTuple_Pack(1, ((PyObject *)Py_None)); if (unlikely(!__pyx_k_tuple_504)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_504);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_504));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":241
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":238
  * try:
  *     _LIBXML_VERSION_INT = int(
  *         re.match(u'[0-9]+', (<unsigned char*>tree.xmlParserVersion).decode("ascii")).group(0))             # <<<<<<<<<<<<<<
  * except Exception:
  *     print u"Unknown libxml2 version: %s" % (<unsigned char*>tree.xmlParserVersion).decode("ascii")
  */
-  __pyx_k_tuple_507 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_507)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_507);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_507));
+  __pyx_k_tuple_510 = PyTuple_Pack(1, __pyx_int_0); if (unlikely(!__pyx_k_tuple_510)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_510);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_510));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":8
  * # module level API functions
@@ -174399,7 +174354,7 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""clear_error_log()
  * 
  */
-  __pyx_k_codeobj_510 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_511, __pyx_n_s__clear_error_log, 8, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_510)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_513 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_514, __pyx_n_s__clear_error_log, 8, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_513)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":497
  * 
@@ -174408,9 +174363,9 @@ static int __Pyx_InitCachedConstants(void) {
  * 
  * cdef _BaseErrorLog _getGlobalErrorLog():
  */
-  __pyx_k_tuple_512 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_512)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_512);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_512));
+  __pyx_k_tuple_515 = PyTuple_Pack(1, __pyx_int_100); if (unlikely(!__pyx_k_tuple_515)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_515);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_515));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":526
  *     return _getGlobalErrorLog().copy()
@@ -174419,10 +174374,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""use_global_python_log(log)
  * 
  */
-  __pyx_k_tuple_513 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__log)); if (unlikely(!__pyx_k_tuple_513)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_513);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_513));
-  __pyx_k_codeobj_514 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_513, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_511, __pyx_n_s_483, 526, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_514)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_516 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__log)); if (unlikely(!__pyx_k_tuple_516)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_516);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_516));
+  __pyx_k_codeobj_517 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_516, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_514, __pyx_n_s_486, 526, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_517)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":674
  * # cannot handle strings that are a few thousand bytes in length.
@@ -174431,9 +174386,9 @@ static int __Pyx_InitCachedConstants(void) {
  * NONE=0
  * WARNING=1
  */
-  __pyx_k_tuple_520 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_519)); if (unlikely(!__pyx_k_tuple_520)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_520);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_520));
+  __pyx_k_tuple_523 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_522)); if (unlikely(!__pyx_k_tuple_523)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 674; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_523);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_523));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":681
  * """,)
@@ -174442,223 +174397,223 @@ static int __Pyx_InitCachedConstants(void) {
  * NONE=0
  * PARSER=1
  */
-  __pyx_k_tuple_522 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_521)); if (unlikely(!__pyx_k_tuple_522)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_522);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_522));
+  __pyx_k_tuple_525 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_524)); if (unlikely(!__pyx_k_tuple_525)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 681; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_525);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_525));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":713
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":715
  * """,)
  * 
  * cdef object __PARSER_ERROR_TYPES = (u"""\             # <<<<<<<<<<<<<<
  * ERR_OK=0
  * ERR_INTERNAL_ERROR=1
  */
-  __pyx_k_tuple_534 = PyTuple_Pack(11, ((PyObject *)__pyx_kp_u_523), ((PyObject *)__pyx_kp_u_524), ((PyObject *)__pyx_kp_u_525), ((PyObject *)__pyx_kp_u_526), ((PyObject *)__pyx_kp_u_527), ((PyObject *)__pyx_kp_u_528), ((PyObject *)__pyx_kp_u_529), ((PyObject *)__pyx_kp_u_530), ((PyObject *)__pyx_kp_u_531), ((PyObject *)__pyx_kp_u_532), ((PyObject *)__pyx_kp_u_533)); if (unlikely(!__pyx_k_tuple_534)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 713; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_534);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_534));
+  __pyx_k_tuple_537 = PyTuple_Pack(11, ((PyObject *)__pyx_kp_u_526), ((PyObject *)__pyx_kp_u_527), ((PyObject *)__pyx_kp_u_528), ((PyObject *)__pyx_kp_u_529), ((PyObject *)__pyx_kp_u_530), ((PyObject *)__pyx_kp_u_531), ((PyObject *)__pyx_kp_u_532), ((PyObject *)__pyx_kp_u_533), ((PyObject *)__pyx_kp_u_534), ((PyObject *)__pyx_kp_u_535), ((PyObject *)__pyx_kp_u_536)); if (unlikely(!__pyx_k_tuple_537)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_537);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_537));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1469
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1472
  * """,)
  * 
  * cdef object __RELAXNG_ERROR_TYPES = (u"""\             # <<<<<<<<<<<<<<
  * RELAXNG_OK=0
  * RELAXNG_ERR_MEMORY=1
  */
-  __pyx_k_tuple_536 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_535)); if (unlikely(!__pyx_k_tuple_536)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_536);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_536));
+  __pyx_k_tuple_539 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_538)); if (unlikely(!__pyx_k_tuple_539)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 1472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_539);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_539));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2802
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2799
  * # module-level API for ElementTree
  * 
  * def Element(_tag, attrib=None, nsmap=None, **_extra):             # <<<<<<<<<<<<<<
  *     u"""Element(_tag, attrib=None, nsmap=None, **_extra)
  * 
  */
-  __pyx_k_tuple_538 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___extra), ((PyObject *)__pyx_n_s___extra)); if (unlikely(!__pyx_k_tuple_538)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_538);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_538));
-  __pyx_k_codeobj_539 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_538, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__Element, 2802, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_539)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_541 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___extra), ((PyObject *)__pyx_n_s___extra)); if (unlikely(!__pyx_k_tuple_541)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_541);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_541));
+  __pyx_k_codeobj_542 = (PyObject*)__Pyx_PyCode_New(3, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_541, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__Element, 2799, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_542)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2815
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2812
  *                         attrib, nsmap, _extra)
  * 
  * def Comment(text=None):             # <<<<<<<<<<<<<<
  *     u"""Comment(text=None)
  * 
  */
-  __pyx_k_tuple_540 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc)); if (unlikely(!__pyx_k_tuple_540)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_540);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_540));
-  __pyx_k_codeobj_541 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_540, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__Comment, 2815, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_541)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_543 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc)); if (unlikely(!__pyx_k_tuple_543)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_543);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_543));
+  __pyx_k_codeobj_544 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_543, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__Comment, 2812, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_544)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2834
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2831
  *     return _elementFactory(doc, c_node)
  * 
  * def ProcessingInstruction(target, text=None):             # <<<<<<<<<<<<<<
  *     u"""ProcessingInstruction(target, text=None)
  * 
  */
-  __pyx_k_tuple_542 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__target), ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc)); if (unlikely(!__pyx_k_tuple_542)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_542);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_542));
-  __pyx_k_codeobj_543 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_542, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s_81, 2834, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_543)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_545 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__target), ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc)); if (unlikely(!__pyx_k_tuple_545)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_545);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_545));
+  __pyx_k_codeobj_546 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_545, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s_84, 2831, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_546)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2870
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2867
  *         self._utf8_data = _utf8(data)
  * 
  * def Entity(name):             # <<<<<<<<<<<<<<
  *     u"""Entity(name)
  * 
  */
-  __pyx_k_tuple_544 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc), ((PyObject *)__pyx_n_s__name_utf), ((PyObject *)__pyx_n_s__c_name)); if (unlikely(!__pyx_k_tuple_544)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_544);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_544));
-  __pyx_k_codeobj_545 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_544, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__Entity, 2870, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_545)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_547 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_doc), ((PyObject *)__pyx_n_s__name_utf), ((PyObject *)__pyx_n_s__c_name)); if (unlikely(!__pyx_k_tuple_547)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_547);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_547));
+  __pyx_k_codeobj_548 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_547, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__Entity, 2867, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_548)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2895
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2892
  *     return _elementFactory(doc, c_node)
  * 
  * def SubElement(_Element _parent not None, _tag,             # <<<<<<<<<<<<<<
  *                attrib=None, nsmap=None, **_extra):
  *     u"""SubElement(_parent, _tag, attrib=None, nsmap=None, **_extra)
  */
-  __pyx_k_tuple_546 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s___parent), ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___extra), ((PyObject *)__pyx_n_s___extra)); if (unlikely(!__pyx_k_tuple_546)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_546);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_546));
-  __pyx_k_codeobj_547 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_546, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__SubElement, 2895, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_547)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_549 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s___parent), ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___extra), ((PyObject *)__pyx_n_s___extra)); if (unlikely(!__pyx_k_tuple_549)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_549);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_549));
+  __pyx_k_codeobj_550 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_549, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__SubElement, 2892, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_550)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2904
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2901
  *     return _makeSubElement(_parent, _tag, None, None, attrib, nsmap, _extra)
  * 
  * def ElementTree(_Element element=None, *, file=None, _BaseParser parser=None):             # <<<<<<<<<<<<<<
  *     u"""ElementTree(element=None, file=None, parser=None)
  * 
  */
-  __pyx_k_tuple_548 = PyTuple_Pack(10, ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__file), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__c_next), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_node_copy), ((PyObject *)__pyx_n_s__c_doc), ((PyObject *)__pyx_n_s__etree), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_548)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_548);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_548));
-  __pyx_k_codeobj_549 = (PyObject*)__Pyx_PyCode_New(3, 2, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_548, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__ElementTree, 2904, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_549)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_551 = PyTuple_Pack(10, ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__file), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__c_next), ((PyObject *)__pyx_n_s__c_node), ((PyObject *)__pyx_n_s__c_node_copy), ((PyObject *)__pyx_n_s__c_doc), ((PyObject *)__pyx_n_s__etree), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_551)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_551);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_551));
+  __pyx_k_codeobj_552 = (PyObject*)__Pyx_PyCode_New(3, 2, 10, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_551, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__ElementTree, 2901, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_552)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2929
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2926
  *     return _elementTreeFactory(doc, element)
  * 
  * def HTML(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""HTML(text, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_550 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_550)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_550);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_550));
-  __pyx_k_codeobj_551 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_550, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__HTML, 2929, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_551)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_553 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_553)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_553);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_553));
+  __pyx_k_codeobj_554 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_553, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__HTML, 2926, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_554)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2954
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2951
  *         return result_container.result
  * 
  * def XML(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""XML(text, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_552 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_552)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_552);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_552));
-  __pyx_k_codeobj_553 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_552, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__XML, 2954, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_553)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_555 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_555)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_555);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_555));
+  __pyx_k_codeobj_556 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_555, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__XML, 2951, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_556)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2982
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2979
  *         return result_container.result
  * 
  * def fromstring(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""fromstring(text, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_554 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_554)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_554);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_554));
-  __pyx_k_codeobj_555 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_554, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__fromstring, 2982, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_555)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_557 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_557)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_557);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_557));
+  __pyx_k_codeobj_558 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_557, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__fromstring, 2979, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_558)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3002
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2999
  *         return result_container.result
  * 
  * def fromstringlist(strings, _BaseParser parser=None):             # <<<<<<<<<<<<<<
  *     u"""fromstringlist(strings, parser=None)
  * 
  */
-  __pyx_k_tuple_556 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__strings), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__feed), ((PyObject *)__pyx_n_s__data)); if (unlikely(!__pyx_k_tuple_556)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_556);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_556));
-  __pyx_k_codeobj_557 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_556, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__fromstringlist, 3002, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_557)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_559 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__strings), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__feed), ((PyObject *)__pyx_n_s__data)); if (unlikely(!__pyx_k_tuple_559)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_559);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_559));
+  __pyx_k_codeobj_560 = (PyObject*)__Pyx_PyCode_New(2, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_559, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__fromstringlist, 2999, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_560)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3019
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3016
  *     return parser.close()
  * 
  * def iselement(element):             # <<<<<<<<<<<<<<
  *     u"""iselement(element)
  * 
  */
-  __pyx_k_tuple_558 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_558)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_558);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_558));
-  __pyx_k_codeobj_559 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_558, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__iselement, 3019, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_559)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_561 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_561)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_561);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_561));
+  __pyx_k_codeobj_562 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_561, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__iselement, 3016, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_562)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3026
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3023
  *     return isinstance(element, _Element) and (<_Element>element)._c_node is not NULL
  * 
  * def dump(_Element elem not None, *, bint pretty_print=True, with_tail=True):             # <<<<<<<<<<<<<<
  *     u"""dump(elem, pretty_print=True, with_tail=True)
  * 
  */
-  __pyx_k_tuple_560 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__elem), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__xml)); if (unlikely(!__pyx_k_tuple_560)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_560);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_560));
-  __pyx_k_codeobj_561 = (PyObject*)__Pyx_PyCode_New(3, 2, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_560, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__dump, 3026, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_561)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_563 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__elem), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__xml)); if (unlikely(!__pyx_k_tuple_563)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_563);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_563));
+  __pyx_k_codeobj_564 = (PyObject*)__Pyx_PyCode_New(3, 2, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_563, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__dump, 3023, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_564)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3038
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3035
  *     sys.stdout.write(xml)
  * 
  * def tostring(element_or_tree, *, encoding=None, method=u"xml",             # <<<<<<<<<<<<<<
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,
  *              standalone=None, doctype=None,
  */
-  __pyx_k_tuple_562 = PyTuple_Pack(13, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__method), ((PyObject *)__pyx_n_s__xml_declaration), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__standalone), ((PyObject *)__pyx_n_s__doctype), ((PyObject *)__pyx_n_s__exclusive), ((PyObject *)__pyx_n_s__with_comments), ((PyObject *)__pyx_n_s_92), ((PyObject *)__pyx_n_s__write_declaration), ((PyObject *)__pyx_n_s__is_standalone)); if (unlikely(!__pyx_k_tuple_562)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_562);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_562));
-  __pyx_k_codeobj_563 = (PyObject*)__Pyx_PyCode_New(11, 10, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_562, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__tostring, 3038, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_563)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_565 = PyTuple_Pack(13, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__encoding), ((PyObject *)__pyx_n_s__method), ((PyObject *)__pyx_n_s__xml_declaration), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__standalone), ((PyObject *)__pyx_n_s__doctype), ((PyObject *)__pyx_n_s__exclusive), ((PyObject *)__pyx_n_s__with_comments), ((PyObject *)__pyx_n_s_95), ((PyObject *)__pyx_n_s__write_declaration), ((PyObject *)__pyx_n_s__is_standalone)); if (unlikely(!__pyx_k_tuple_565)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_565);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_565));
+  __pyx_k_codeobj_566 = (PyObject*)__Pyx_PyCode_New(11, 10, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_565, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__tostring, 3035, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_566)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3130
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3127
  *             python._fqtypename(element_or_tree)
  * 
  * def tostringlist(element_or_tree, *args, **kwargs):             # <<<<<<<<<<<<<<
  *     u"""tostringlist(element_or_tree, *args, **kwargs)
  * 
  */
-  __pyx_k_tuple_564 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__args), ((PyObject *)__pyx_n_s__kwargs), ((PyObject *)__pyx_n_s__args), ((PyObject *)__pyx_n_s__kwargs)); if (unlikely(!__pyx_k_tuple_564)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_564);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_564));
-  __pyx_k_codeobj_565 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_564, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__tostringlist, 3130, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_565)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_567 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__args), ((PyObject *)__pyx_n_s__kwargs), ((PyObject *)__pyx_n_s__args), ((PyObject *)__pyx_n_s__kwargs)); if (unlikely(!__pyx_k_tuple_567)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_567);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_567));
+  __pyx_k_codeobj_568 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_567, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__tostringlist, 3127, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_568)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3141
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3138
  *     return [tostring(element_or_tree, *args, **kwargs)]
  * 
  * def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,             # <<<<<<<<<<<<<<
  *               bint with_tail=True, doctype=None):
  *     u"""tounicode(element_or_tree, method="xml", pretty_print=False,
  */
-  __pyx_k_tuple_566 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__method), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__doctype)); if (unlikely(!__pyx_k_tuple_566)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_566);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_566));
-  __pyx_k_codeobj_567 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_566, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__tounicode, 3141, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_567)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_569 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__method), ((PyObject *)__pyx_n_s__pretty_print), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__doctype)); if (unlikely(!__pyx_k_tuple_569)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_569);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_569));
+  __pyx_k_codeobj_570 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_569, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__tounicode, 3138, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_570)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3175
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3172
  *             type(element_or_tree)
  * 
  * def parse(source, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""parse(source, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_568 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__source), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_568)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_568);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_568));
-  __pyx_k_codeobj_569 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_568, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_497, __pyx_n_s__parse, 3175, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_569)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_571 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__source), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__result_container)); if (unlikely(!__pyx_k_tuple_571)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_571);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_571));
+  __pyx_k_codeobj_572 = (PyObject*)__Pyx_PyCode_New(3, 1, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_571, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_500, __pyx_n_s__parse, 3172, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_572)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":551
  *     LOOKUP_ELEMENT_CLASS = function
@@ -174667,10 +174622,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""set_element_class_lookup(lookup = None)
  * 
  */
-  __pyx_k_tuple_570 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__lookup)); if (unlikely(!__pyx_k_tuple_570)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_570);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_570));
-  __pyx_k_codeobj_571 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_570, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_572, __pyx_n_s_179, 551, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_571)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_573 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__lookup)); if (unlikely(!__pyx_k_tuple_573)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_573);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_573));
+  __pyx_k_codeobj_574 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_573, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_575, __pyx_n_s_182, 551, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_574)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":175
  * __FUNCTION_NAMESPACE_REGISTRIES = {}
@@ -174679,10 +174634,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""FunctionNamespace(ns_uri)
  * 
  */
-  __pyx_k_tuple_575 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__ns_uri), ((PyObject *)__pyx_n_s__ns_utf), ((PyObject *)__pyx_n_s__registry)); if (unlikely(!__pyx_k_tuple_575)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_575);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_575));
-  __pyx_k_codeobj_576 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_575, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_577, __pyx_n_s__FunctionNamespace, 175, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_576)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_578 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__ns_uri), ((PyObject *)__pyx_n_s__ns_utf), ((PyObject *)__pyx_n_s__registry)); if (unlikely(!__pyx_k_tuple_578)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_578);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_578));
+  __pyx_k_codeobj_579 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_578, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_580, __pyx_n_s__FunctionNamespace, 175, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_579)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":18
  *     For compatibility with ElementTree 1.3 and later.
@@ -174691,10 +174646,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __pyx_k_tuple_578 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__code), ((PyObject *)__pyx_n_s__line), ((PyObject *)__pyx_n_s__column)); if (unlikely(!__pyx_k_tuple_578)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_578);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_578));
-  __pyx_k_codeobj_579 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_578, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_580, __pyx_n_s____init__, 18, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_579)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_581 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__message), ((PyObject *)__pyx_n_s__code), ((PyObject *)__pyx_n_s__line), ((PyObject *)__pyx_n_s__column)); if (unlikely(!__pyx_k_tuple_581)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_581);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_581));
+  __pyx_k_codeobj_582 = (PyObject*)__Pyx_PyCode_New(5, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_581, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_583, __pyx_n_s____init__, 18, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_582)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1383
  * __GLOBAL_PARSER_CONTEXT.setDefaultParser(__DEFAULT_XML_PARSER)
@@ -174703,10 +174658,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""set_default_parser(parser=None)
  * 
  */
-  __pyx_k_tuple_585 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_585)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_585);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_585));
-  __pyx_k_codeobj_586 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_585, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_580, __pyx_n_s__set_default_parser, 1383, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_586)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_588 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_588)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_588);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_588));
+  __pyx_k_codeobj_589 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_588, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_583, __pyx_n_s__set_default_parser, 1383, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_589)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1399
  *     __GLOBAL_PARSER_CONTEXT.setDefaultParser(parser)
@@ -174715,7 +174670,7 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"get_default_parser()"
  *     return __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  */
-  __pyx_k_codeobj_587 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_580, __pyx_n_s__get_default_parser, 1399, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_587)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_590 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_583, __pyx_n_s__get_default_parser, 1399, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_590)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":10
  *     # to push the Python level parser result through the parser
@@ -174724,10 +174679,10 @@ static int __Pyx_InitCachedConstants(void) {
  *         self.result = result
  * 
  */
-  __pyx_k_tuple_588 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__result)); if (unlikely(!__pyx_k_tuple_588)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_588);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_588));
-  __pyx_k_codeobj_589 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_588, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_590, __pyx_n_s____init__, 10, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_589)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_591 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__self), ((PyObject *)__pyx_n_s__result)); if (unlikely(!__pyx_k_tuple_591)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_591);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_591));
+  __pyx_k_codeobj_592 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_591, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_593, __pyx_n_s____init__, 10, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_592)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":3
  * cdef object _find_id_attributes
@@ -174736,10 +174691,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""XMLID(text, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_593 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__dic), ((PyObject *)__pyx_n_s__root), ((PyObject *)__pyx_n_s__elem)); if (unlikely(!__pyx_k_tuple_593)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_593);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_593));
-  __pyx_k_codeobj_594 = (PyObject*)__Pyx_PyCode_New(3, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_593, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_595, __pyx_n_s__XMLID, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_594)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_596 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__dic), ((PyObject *)__pyx_n_s__root), ((PyObject *)__pyx_n_s__elem)); if (unlikely(!__pyx_k_tuple_596)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_596);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_596));
+  __pyx_k_codeobj_597 = (PyObject*)__Pyx_PyCode_New(3, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_596, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_598, __pyx_n_s__XMLID, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_597)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":24
  *     return (root, dic)
@@ -174748,10 +174703,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""XMLDTDID(text, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_596 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__root)); if (unlikely(!__pyx_k_tuple_596)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_596);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_596));
-  __pyx_k_codeobj_597 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_596, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_595, __pyx_n_s__XMLDTDID, 24, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_597)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_599 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__text), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__root)); if (unlikely(!__pyx_k_tuple_599)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_599);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_599));
+  __pyx_k_codeobj_600 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_599, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_598, __pyx_n_s__XMLDTDID, 24, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_600)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":44
  *         return (root, _IDDict(root))
@@ -174760,10 +174715,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""parseid(source, parser=None)
  * 
  */
-  __pyx_k_tuple_598 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__source), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc)); if (unlikely(!__pyx_k_tuple_598)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_598);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_598));
-  __pyx_k_codeobj_599 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_598, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_595, __pyx_n_s__parseid, 44, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_599)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_601 = PyTuple_Pack(4, ((PyObject *)__pyx_n_s__source), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url), ((PyObject *)__pyx_n_s__doc)); if (unlikely(!__pyx_k_tuple_601)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_601);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_601));
+  __pyx_k_codeobj_602 = (PyObject*)__Pyx_PyCode_New(3, 1, 4, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_601, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_598, __pyx_n_s__parseid, 44, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_602)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":3
  * # functions for tree cleanup and removing elements from subtrees
@@ -174772,10 +174727,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""cleanup_namespaces(tree_or_element)
  * 
  */
-  __pyx_k_tuple_601 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_601)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_601);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_601));
-  __pyx_k_codeobj_602 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_601, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_603, __pyx_n_s__cleanup_namespaces, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_602)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_604 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_604)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_604);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_604));
+  __pyx_k_codeobj_605 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_604, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_606, __pyx_n_s__cleanup_namespaces, 3, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_605)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":13
  *     _removeUnusedNamespaceDeclarations(element._c_node)
@@ -174784,10 +174739,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_attributes(tree_or_element, *attribute_names)
  * 
  */
-  __pyx_k_tuple_604 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__attribute_names), ((PyObject *)__pyx_n_s__attribute_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_604)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_604);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_604));
-  __pyx_k_codeobj_605 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_604, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_603, __pyx_n_s__strip_attributes, 13, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_605)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_607 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__attribute_names), ((PyObject *)__pyx_n_s__attribute_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_607)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_607);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_607));
+  __pyx_k_codeobj_608 = (PyObject*)__Pyx_PyCode_New(1, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_607, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_606, __pyx_n_s__strip_attributes, 13, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_608)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":54
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)
@@ -174796,10 +174751,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_elements(tree_or_element, *tag_names, with_tail=True)
  * 
  */
-  __pyx_k_tuple_606 = PyTuple_Pack(13, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__ns_tags), ((PyObject *)__pyx_n_s__c_ns_tags), ((PyObject *)__pyx_n_s__c_tag_count), ((PyObject *)__pyx_n_s__strip_comments), ((PyObject *)__pyx_n_s__strip_pis), ((PyObject *)__pyx_n_s__strip_entities)); if (unlikely(!__pyx_k_tuple_606)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_606);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_606));
-  __pyx_k_codeobj_607 = (PyObject*)__Pyx_PyCode_New(2, 1, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_606, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_603, __pyx_n_s__strip_elements, 54, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_607)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_609 = PyTuple_Pack(13, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__with_tail), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__ns_tags), ((PyObject *)__pyx_n_s__c_ns_tags), ((PyObject *)__pyx_n_s__c_tag_count), ((PyObject *)__pyx_n_s__strip_comments), ((PyObject *)__pyx_n_s__strip_pis), ((PyObject *)__pyx_n_s__strip_entities)); if (unlikely(!__pyx_k_tuple_609)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_609);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_609));
+  __pyx_k_codeobj_610 = (PyObject*)__Pyx_PyCode_New(2, 1, 13, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_609, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_606, __pyx_n_s__strip_elements, 54, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_610)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":132
  * 
@@ -174808,10 +174763,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""strip_tags(tree_or_element, *tag_names)
  * 
  */
-  __pyx_k_tuple_608 = PyTuple_Pack(12, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__ns_tags), ((PyObject *)__pyx_n_s__strip_comments), ((PyObject *)__pyx_n_s__strip_pis), ((PyObject *)__pyx_n_s__strip_entities), ((PyObject *)__pyx_n_s__c_ns_tags), ((PyObject *)__pyx_n_s__c_tag_count)); if (unlikely(!__pyx_k_tuple_608)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_608);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_608));
-  __pyx_k_codeobj_609 = (PyObject*)__Pyx_PyCode_New(1, 0, 12, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_608, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_603, __pyx_n_s__strip_tags, 132, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_609)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_611 = PyTuple_Pack(12, ((PyObject *)__pyx_n_s__tree_or_element), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__tag_names), ((PyObject *)__pyx_n_s__matcher), ((PyObject *)__pyx_n_s__element), ((PyObject *)__pyx_n_s__doc), ((PyObject *)__pyx_n_s__ns_tags), ((PyObject *)__pyx_n_s__strip_comments), ((PyObject *)__pyx_n_s__strip_pis), ((PyObject *)__pyx_n_s__strip_entities), ((PyObject *)__pyx_n_s__c_ns_tags), ((PyObject *)__pyx_n_s__c_tag_count)); if (unlikely(!__pyx_k_tuple_611)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_611);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_611));
+  __pyx_k_codeobj_612 = (PyObject*)__Pyx_PyCode_New(1, 0, 12, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_611, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_606, __pyx_n_s__strip_tags, 132, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_612)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":425
  * 
@@ -174820,10 +174775,10 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"""Extension(module, function_mapping=None, ns=None)
  * 
  */
-  __pyx_k_tuple_637 = PyTuple_Pack(7, ((PyObject *)__pyx_n_s__module), ((PyObject *)__pyx_n_s__function_mapping), ((PyObject *)__pyx_n_s__ns), ((PyObject *)__pyx_n_s__functions), ((PyObject *)__pyx_n_s__function_name), ((PyObject *)__pyx_n_s__xpath_name), ((PyObject *)__pyx_n_s__name)); if (unlikely(!__pyx_k_tuple_637)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_637);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_637));
-  __pyx_k_codeobj_638 = (PyObject*)__Pyx_PyCode_New(3, 1, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_637, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_639, __pyx_n_s__Extension, 425, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_638)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_640 = PyTuple_Pack(7, ((PyObject *)__pyx_n_s__module), ((PyObject *)__pyx_n_s__function_mapping), ((PyObject *)__pyx_n_s__ns), ((PyObject *)__pyx_n_s__functions), ((PyObject *)__pyx_n_s__function_name), ((PyObject *)__pyx_n_s__xpath_name), ((PyObject *)__pyx_n_s__name)); if (unlikely(!__pyx_k_tuple_640)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_640);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_640));
+  __pyx_k_codeobj_641 = (PyObject*)__Pyx_PyCode_New(3, 1, 7, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_640, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_642, __pyx_n_s__Extension, 425, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_641)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":734
  *     # we need to use a Python class here, bytes cannot be C-subclassed
@@ -174832,79 +174787,79 @@ static int __Pyx_InitCachedConstants(void) {
  *         return self._parent
  * 
  */
-  __pyx_k_tuple_640 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__self)); if (unlikely(!__pyx_k_tuple_640)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_640);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_640));
-  __pyx_k_codeobj_641 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_640, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_639, __pyx_n_s__getparent, 734, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_641)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_643 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__self)); if (unlikely(!__pyx_k_tuple_643)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_643);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_643));
+  __pyx_k_codeobj_644 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_643, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_642, __pyx_n_s__getparent, 734, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_644)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":384
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":383
  * 
  * 
  * def XPathEvaluator(etree_or_element, *, namespaces=None, extensions=None,             # <<<<<<<<<<<<<<
  *                    regexp=True, smart_strings=True):
  *     u"""XPathEvaluator(etree_or_element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
  */
-  __pyx_k_tuple_643 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__etree_or_element), ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_n_s__extensions), ((PyObject *)__pyx_n_s__regexp), ((PyObject *)__pyx_n_s__smart_strings)); if (unlikely(!__pyx_k_tuple_643)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_643);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_643));
-  __pyx_k_codeobj_644 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_643, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_645, __pyx_n_s__XPathEvaluator, 384, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_644)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_646 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__etree_or_element), ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_n_s__extensions), ((PyObject *)__pyx_n_s__regexp), ((PyObject *)__pyx_n_s__smart_strings)); if (unlikely(!__pyx_k_tuple_646)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_646);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_646));
+  __pyx_k_codeobj_647 = (PyObject*)__Pyx_PyCode_New(5, 4, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_646, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_648, __pyx_n_s__XPathEvaluator, 383, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_647)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":482
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":481
  * cdef object _replace_strings
  * cdef object _find_namespaces
  * _replace_strings = re.compile(b'("[^"]*")|(\'[^\']*\')').sub             # <<<<<<<<<<<<<<
  * _find_namespaces = re.compile(b'({[^}]+})').findall
  * 
  */
-  __pyx_k_tuple_647 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_646)); if (unlikely(!__pyx_k_tuple_647)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_647);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_647));
+  __pyx_k_tuple_650 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_649)); if (unlikely(!__pyx_k_tuple_650)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_650);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_650));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":483
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":482
  * cdef object _find_namespaces
  * _replace_strings = re.compile(b'("[^"]*")|(\'[^\']*\')').sub
  * _find_namespaces = re.compile(b'({[^}]+})').findall             # <<<<<<<<<<<<<<
  * 
  * cdef class ETXPath(XPath):
  */
-  __pyx_k_tuple_649 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_648)); if (unlikely(!__pyx_k_tuple_649)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_649);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_649));
+  __pyx_k_tuple_652 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_b_651)); if (unlikely(!__pyx_k_tuple_652)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_652);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_652));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":432
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":431
  * 
  *     @staticmethod
  *     def strparam(strval):             # <<<<<<<<<<<<<<
  *         u"""strparam(strval)
  * 
  */
-  __pyx_k_tuple_655 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__strval)); if (unlikely(!__pyx_k_tuple_655)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_655);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_655));
-  __pyx_k_codeobj_656 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_655, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_657, __pyx_n_s__strparam, 432, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_656)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_658 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__strval)); if (unlikely(!__pyx_k_tuple_658)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_658);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_658));
+  __pyx_k_codeobj_659 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_658, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_660, __pyx_n_s__strparam, 431, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_659)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":446
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":445
  * 
  *     @staticmethod
  *     def set_global_max_depth(int max_depth):             # <<<<<<<<<<<<<<
  *         u"""set_global_max_depth(max_depth)
  * 
  */
-  __pyx_k_tuple_658 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__max_depth)); if (unlikely(!__pyx_k_tuple_658)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_658);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_658));
-  __pyx_k_codeobj_659 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_658, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_657, __pyx_n_s_660, 446, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_659)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_661 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__max_depth)); if (unlikely(!__pyx_k_tuple_661)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_661);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_661));
+  __pyx_k_codeobj_662 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_661, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_660, __pyx_n_s_663, 445, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_662)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":833
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":832
  * # XSLT PI support
  * 
  * cdef object _RE_PI_HREF = re.compile(ur'\s+href\s*=\s*(?:\'([^\']*)\'|"([^"]*)")')             # <<<<<<<<<<<<<<
  * cdef object _FIND_PI_HREF = _RE_PI_HREF.findall
  * cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
  */
-  __pyx_k_tuple_662 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_661)); if (unlikely(!__pyx_k_tuple_662)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_662);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_662));
+  __pyx_k_tuple_665 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_664)); if (unlikely(!__pyx_k_tuple_665)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_665);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_665));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":22
  * # XMLSchema
@@ -174913,9 +174868,9 @@ static int __Pyx_InitCachedConstants(void) {
  *     u"boolean(//xs:attribute[@default or @fixed][1])",
  *     namespaces={u'xs': u'http://www.w3.org/2001/XMLSchema'})
  */
-  __pyx_k_tuple_674 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_673)); if (unlikely(!__pyx_k_tuple_674)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_k_tuple_674);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_674));
+  __pyx_k_tuple_677 = PyTuple_Pack(1, ((PyObject *)__pyx_kp_u_676)); if (unlikely(!__pyx_k_tuple_677)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_k_tuple_677);
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_677));
   __Pyx_RefNannyFinishContext();
   return 0;
   __pyx_L1_error:;
@@ -175000,7 +174955,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   /*--- Module creation code ---*/
   #if PY_MAJOR_VERSION < 3
-  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("etree"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_471), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
+  __pyx_m = Py_InitModule4(__Pyx_NAMESTR("etree"), __pyx_methods, __Pyx_DOCSTR(__pyx_k_474), 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m);
   #else
   __pyx_m = PyModule_Create(&__pyx_moduledef);
   #endif
@@ -175040,7 +174995,6 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_v_4lxml_5etree__elementpath = Py_None; Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree_sys = Py_None; Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree_re = Py_None; Py_INCREF(Py_None);
-  __pyx_v_4lxml_5etree_gzip = Py_None; Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree_ITER_EMPTY = Py_None; Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT = Py_None; Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree__FILENAME_ENCODING = ((PyObject*)Py_None); Py_INCREF(Py_None);
@@ -175067,6 +175021,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_v_4lxml_5etree___DEFAULT_XML_PARSER = ((struct __pyx_obj_4lxml_5etree_XMLParser *)Py_None); Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER = ((struct __pyx_obj_4lxml_5etree_HTMLParser *)Py_None); Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree_inspect_getargspec = Py_None; Py_INCREF(Py_None);
+  __pyx_v_4lxml_5etree_GzipFile = Py_None; Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree__find_id_attributes = Py_None; Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES = ((PyObject*)Py_None); Py_INCREF(Py_None);
   __pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS = Py_None; Py_INCREF(Py_None);
@@ -175161,10 +175116,10 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ETCompatXMLParser.tp_dict, __pyx_vtabptr_4lxml_5etree_ETCompatXMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "ETCompatXMLParser", (PyObject *)&__pyx_type_4lxml_5etree_ETCompatXMLParser) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_ETCompatXMLParser = &__pyx_type_4lxml_5etree_ETCompatXMLParser;
-  if (PyType_Ready(&LxmlElementType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&LxmlElementType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__setitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__setitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_8_Element_4__setitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_8_Element_4__setitem__.doc = __pyx_doc_4lxml_5etree_8_Element_4__setitem__;
@@ -175174,7 +175129,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__delitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__delitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_8_Element_6__delitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_8_Element_6__delitem__.doc = __pyx_doc_4lxml_5etree_8_Element_6__delitem__;
@@ -175184,7 +175139,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__repr__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__repr__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_8_Element_30__repr__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_8_Element_30__repr__.doc = __pyx_doc_4lxml_5etree_8_Element_30__repr__;
@@ -175194,7 +175149,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__getitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__getitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_8_Element_32__getitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_8_Element_32__getitem__.doc = __pyx_doc_4lxml_5etree_8_Element_32__getitem__;
@@ -175204,7 +175159,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__len__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__len__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_8_Element_34__len__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_8_Element_34__len__.doc = __pyx_doc_4lxml_5etree_8_Element_34__len__;
@@ -175214,7 +175169,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__contains__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__contains__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_8_Element_38__contains__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_8_Element_38__contains__.doc = __pyx_doc_4lxml_5etree_8_Element_38__contains__;
@@ -175224,7 +175179,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__iter__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&LxmlElementType, "__iter__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_8_Element_40__iter__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_8_Element_40__iter__.doc = __pyx_doc_4lxml_5etree_8_Element_40__iter__;
@@ -175232,15 +175187,15 @@ PyMODINIT_FUNC PyInit_etree(void)
     }
   }
   #endif
-  if (__Pyx_SetAttrString(__pyx_m, "_Element", (PyObject *)&LxmlElementType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Element", (PyObject *)&LxmlElementType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__Element = &LxmlElementType;
   __pyx_vtabptr_4lxml_5etree___ContentOnlyElement = &__pyx_vtable_4lxml_5etree___ContentOnlyElement;
   __pyx_vtable_4lxml_5etree___ContentOnlyElement._raiseImmutable = (int (*)(struct __pyx_obj_4lxml_5etree___ContentOnlyElement *))__pyx_f_4lxml_5etree_20__ContentOnlyElement__raiseImmutable;
   __pyx_type_4lxml_5etree___ContentOnlyElement.tp_base = __pyx_ptype_4lxml_5etree__Element;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree___ContentOnlyElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree___ContentOnlyElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__setitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__setitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_6__setitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_6__setitem__.doc = __pyx_doc_4lxml_5etree_20__ContentOnlyElement_6__setitem__;
@@ -175250,7 +175205,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__getitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__getitem__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_8__getitem__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_8__getitem__.doc = __pyx_doc_4lxml_5etree_20__ContentOnlyElement_8__getitem__;
@@ -175260,7 +175215,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   #endif
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__len__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree___ContentOnlyElement, "__len__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_10__len__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_20__ContentOnlyElement_10__len__.doc = __pyx_doc_4lxml_5etree_20__ContentOnlyElement_10__len__;
@@ -175268,14 +175223,14 @@ PyMODINIT_FUNC PyInit_etree(void)
     }
   }
   #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree___ContentOnlyElement.tp_dict, __pyx_vtabptr_4lxml_5etree___ContentOnlyElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1510; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree___ContentOnlyElement.tp_dict, __pyx_vtabptr_4lxml_5etree___ContentOnlyElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1507; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree___ContentOnlyElement = &__pyx_type_4lxml_5etree___ContentOnlyElement;
   __pyx_vtabptr_4lxml_5etree__ProcessingInstruction = &__pyx_vtable_4lxml_5etree__ProcessingInstruction;
   __pyx_vtable_4lxml_5etree__ProcessingInstruction.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
   __pyx_type_4lxml_5etree__ProcessingInstruction.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__ProcessingInstruction) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ProcessingInstruction", (PyObject *)&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1588; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__ProcessingInstruction) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ProcessingInstruction", (PyObject *)&__pyx_type_4lxml_5etree__ProcessingInstruction) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1585; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ProcessingInstruction = &__pyx_type_4lxml_5etree__ProcessingInstruction;
   __pyx_vtabptr_4lxml_5etree_PIBase = &__pyx_vtable_4lxml_5etree_PIBase;
   __pyx_vtable_4lxml_5etree_PIBase.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ProcessingInstruction;
@@ -175287,9 +175242,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction = &__pyx_vtable_4lxml_5etree__XSLTProcessingInstruction;
   __pyx_vtable_4lxml_5etree__XSLTProcessingInstruction.__pyx_base = *__pyx_vtabptr_4lxml_5etree_PIBase;
   __pyx_type_4lxml_5etree__XSLTProcessingInstruction.tp_base = __pyx_ptype_4lxml_5etree_PIBase;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_XSLTProcessingInstruction", (PyObject *)&__pyx_type_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTProcessingInstruction.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_XSLTProcessingInstruction", (PyObject *)&__pyx_type_4lxml_5etree__XSLTProcessingInstruction) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__XSLTProcessingInstruction = &__pyx_type_4lxml_5etree__XSLTProcessingInstruction;
   if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct__itervalues) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree___pyx_scope_struct__itervalues = &__pyx_type_4lxml_5etree___pyx_scope_struct__itervalues;
@@ -175334,16 +175289,16 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_ptype_4lxml_5etree__BaseErrorLog = &__pyx_type_4lxml_5etree__BaseErrorLog;
   __pyx_vtabptr_4lxml_5etree__ElementTagMatcher = &__pyx_vtable_4lxml_5etree__ElementTagMatcher;
   __pyx_vtable_4lxml_5etree__ElementTagMatcher._initTagMatch = (PyObject *(*)(struct LxmlElementTagMatcher *, PyObject *))__pyx_f_4lxml_5etree_18_ElementTagMatcher__initTagMatch;
-  if (PyType_Ready(&LxmlElementTagMatcherType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlElementTagMatcherType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementTagMatcher", (PyObject *)&LxmlElementTagMatcherType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2396; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&LxmlElementTagMatcherType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlElementTagMatcherType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementTagMatcher", (PyObject *)&LxmlElementTagMatcherType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2393; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ElementTagMatcher = &LxmlElementTagMatcherType;
   __pyx_vtabptr_4lxml_5etree_XSLT = &__pyx_vtable_4lxml_5etree_XSLT;
   __pyx_vtable_4lxml_5etree_XSLT._run_transform = (xmlDoc *(*)(struct __pyx_obj_4lxml_5etree_XSLT *, xmlDoc *, const char **, struct __pyx_obj_4lxml_5etree__XSLTContext *, xsltTransformContext *))__pyx_f_4lxml_5etree_4XSLT__run_transform;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XSLT, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XSLT, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_4XSLT_18__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_4XSLT_18__call__.doc = __pyx_doc_4lxml_5etree_4XSLT_18__call__;
@@ -175351,15 +175306,15 @@ PyMODINIT_FUNC PyInit_etree(void)
     }
   }
   #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XSLT.tp_dict, __pyx_vtabptr_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XSLT", (PyObject *)&__pyx_type_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XSLT.tp_dict, __pyx_vtabptr_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XSLT", (PyObject *)&__pyx_type_4lxml_5etree_XSLT) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_XSLT = &__pyx_type_4lxml_5etree_XSLT;
   __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator = &__pyx_vtable_4lxml_5etree_ElementDepthFirstIterator;
   __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator._nextNodeAnyTag = (xmlNode *(*)(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *))__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeAnyTag;
   __pyx_vtable_4lxml_5etree_ElementDepthFirstIterator._nextNodeMatchTag = (xmlNode *(*)(struct __pyx_obj_4lxml_5etree_ElementDepthFirstIterator *, xmlNode *))__pyx_f_4lxml_5etree_25ElementDepthFirstIterator__nextNodeMatchTag;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementDepthFirstIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2669; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementDepthFirstIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementDepthFirstIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementDepthFirstIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_ElementDepthFirstIterator = &__pyx_type_4lxml_5etree_ElementDepthFirstIterator;
   if (PyType_Ready(&LxmlElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "ElementClassLookup", (PyObject *)&LxmlElementClassLookupType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 214; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -175389,9 +175344,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree_TreeBuilder.__pyx_base._handleSaxComment = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__SaxParserTarget *, PyObject *))__pyx_f_4lxml_5etree_11TreeBuilder__handleSaxComment;
   __pyx_vtable_4lxml_5etree_TreeBuilder._flush = (int (*)(struct __pyx_obj_4lxml_5etree_TreeBuilder *))__pyx_f_4lxml_5etree_11TreeBuilder__flush;
   __pyx_type_4lxml_5etree_TreeBuilder.tp_base = __pyx_ptype_4lxml_5etree__SaxParserTarget;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_TreeBuilder) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_TreeBuilder.tp_dict, __pyx_vtabptr_4lxml_5etree_TreeBuilder) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "TreeBuilder", (PyObject *)&__pyx_type_4lxml_5etree_TreeBuilder) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_TreeBuilder) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_TreeBuilder.tp_dict, __pyx_vtabptr_4lxml_5etree_TreeBuilder) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "TreeBuilder", (PyObject *)&__pyx_type_4lxml_5etree_TreeBuilder) < 0) {__pyx_filename = __pyx_f[12]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_TreeBuilder = &__pyx_type_4lxml_5etree_TreeBuilder;
   __pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase = &__pyx_vtable_4lxml_5etree__XPathEvaluatorBase;
   __pyx_vtable_4lxml_5etree__XPathEvaluatorBase.set_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *, xmlXPathContext *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase_set_context;
@@ -175401,17 +175356,17 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._raise_parse_error = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_parse_error;
   __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._raise_eval_error = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__raise_eval_error;
   __pyx_vtable_4lxml_5etree__XPathEvaluatorBase._handle_result = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathEvaluatorBase *, xmlXPathObject *, struct LxmlDocument *))__pyx_f_4lxml_5etree_19_XPathEvaluatorBase__handle_result;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XPathEvaluatorBase.tp_dict, __pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_XPathEvaluatorBase", (PyObject *)&__pyx_type_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XPathEvaluatorBase.tp_dict, __pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_XPathEvaluatorBase", (PyObject *)&__pyx_type_4lxml_5etree__XPathEvaluatorBase) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__XPathEvaluatorBase = &__pyx_type_4lxml_5etree__XPathEvaluatorBase;
   __pyx_vtabptr_4lxml_5etree_XPathElementEvaluator = &__pyx_vtable_4lxml_5etree_XPathElementEvaluator;
   __pyx_vtable_4lxml_5etree_XPathElementEvaluator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase;
   __pyx_type_4lxml_5etree_XPathElementEvaluator.tp_base = __pyx_ptype_4lxml_5etree__XPathEvaluatorBase;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPathElementEvaluator, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPathElementEvaluator, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_21XPathElementEvaluator_6__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_21XPathElementEvaluator_6__call__.doc = __pyx_doc_4lxml_5etree_21XPathElementEvaluator_6__call__;
@@ -175419,16 +175374,16 @@ PyMODINIT_FUNC PyInit_etree(void)
     }
   }
   #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPathElementEvaluator.tp_dict, __pyx_vtabptr_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XPathElementEvaluator", (PyObject *)&__pyx_type_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPathElementEvaluator.tp_dict, __pyx_vtabptr_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XPathElementEvaluator", (PyObject *)&__pyx_type_4lxml_5etree_XPathElementEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_XPathElementEvaluator = &__pyx_type_4lxml_5etree_XPathElementEvaluator;
   __pyx_vtabptr_4lxml_5etree_XPathDocumentEvaluator = &__pyx_vtable_4lxml_5etree_XPathDocumentEvaluator;
   __pyx_vtable_4lxml_5etree_XPathDocumentEvaluator.__pyx_base = *__pyx_vtabptr_4lxml_5etree_XPathElementEvaluator;
   __pyx_type_4lxml_5etree_XPathDocumentEvaluator.tp_base = __pyx_ptype_4lxml_5etree_XPathElementEvaluator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPathDocumentEvaluator, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPathDocumentEvaluator, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_22XPathDocumentEvaluator_2__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_22XPathDocumentEvaluator_2__call__.doc = __pyx_doc_4lxml_5etree_22XPathDocumentEvaluator_2__call__;
@@ -175436,17 +175391,17 @@ PyMODINIT_FUNC PyInit_etree(void)
     }
   }
   #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPathDocumentEvaluator.tp_dict, __pyx_vtabptr_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XPathDocumentEvaluator", (PyObject *)&__pyx_type_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPathDocumentEvaluator.tp_dict, __pyx_vtabptr_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XPathDocumentEvaluator", (PyObject *)&__pyx_type_4lxml_5etree_XPathDocumentEvaluator) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 329; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_XPathDocumentEvaluator = &__pyx_type_4lxml_5etree_XPathDocumentEvaluator;
   if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree___pyx_scope_struct_1_iterattributes = &__pyx_type_4lxml_5etree___pyx_scope_struct_1_iterattributes;
   __pyx_vtabptr_4lxml_5etree__Comment = &__pyx_vtable_4lxml_5etree__Comment;
   __pyx_vtable_4lxml_5etree__Comment.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
   __pyx_type_4lxml_5etree__Comment.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Comment.tp_dict, __pyx_vtabptr_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Comment", (PyObject *)&__pyx_type_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Comment.tp_dict, __pyx_vtabptr_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Comment", (PyObject *)&__pyx_type_4lxml_5etree__Comment) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1577; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__Comment = &__pyx_type_4lxml_5etree__Comment;
   __pyx_vtabptr_4lxml_5etree__MultiTagMatcher = &__pyx_vtable_4lxml_5etree__MultiTagMatcher;
   __pyx_vtable_4lxml_5etree__MultiTagMatcher.rejectsAll = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_rejectsAll;
@@ -175458,16 +175413,16 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__MultiTagMatcher.cacheTags = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, struct LxmlDocument *, struct __pyx_opt_args_4lxml_5etree_16_MultiTagMatcher_cacheTags *__pyx_optional_args))__pyx_f_4lxml_5etree_16_MultiTagMatcher_cacheTags;
   __pyx_vtable_4lxml_5etree__MultiTagMatcher.matches = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlNode *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matches;
   __pyx_vtable_4lxml_5etree__MultiTagMatcher.matchesAttribute = (int (*)(struct __pyx_obj_4lxml_5etree__MultiTagMatcher *, xmlAttr *))__pyx_f_4lxml_5etree_16_MultiTagMatcher_matchesAttribute;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__MultiTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__MultiTagMatcher.tp_dict, __pyx_vtabptr_4lxml_5etree__MultiTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__MultiTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__MultiTagMatcher.tp_dict, __pyx_vtabptr_4lxml_5etree__MultiTagMatcher) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2461; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__MultiTagMatcher = &__pyx_type_4lxml_5etree__MultiTagMatcher;
   __pyx_vtabptr_4lxml_5etree_XPath = &__pyx_vtable_4lxml_5etree_XPath;
   __pyx_vtable_4lxml_5etree_XPath.__pyx_base = *__pyx_vtabptr_4lxml_5etree__XPathEvaluatorBase;
   __pyx_type_4lxml_5etree_XPath.tp_base = __pyx_ptype_4lxml_5etree__XPathEvaluatorBase;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPath, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_5etree_XPath, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_5etree_5XPath_4__call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_5etree_5XPath_4__call__.doc = __pyx_doc_4lxml_5etree_5XPath_4__call__;
@@ -175475,16 +175430,16 @@ PyMODINIT_FUNC PyInit_etree(void)
     }
   }
   #endif
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPath.tp_dict, __pyx_vtabptr_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "XPath", (PyObject *)&__pyx_type_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 409; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_XPath.tp_dict, __pyx_vtabptr_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "XPath", (PyObject *)&__pyx_type_4lxml_5etree_XPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 408; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_XPath = &__pyx_type_4lxml_5etree_XPath;
   __pyx_vtabptr_4lxml_5etree_ETXPath = &__pyx_vtable_4lxml_5etree_ETXPath;
   __pyx_vtable_4lxml_5etree_ETXPath.__pyx_base = *__pyx_vtabptr_4lxml_5etree_XPath;
   __pyx_vtable_4lxml_5etree_ETXPath._nsextract_path = (PyObject *(*)(struct __pyx_obj_4lxml_5etree_ETXPath *, PyObject *))__pyx_f_4lxml_5etree_7ETXPath__nsextract_path;
   __pyx_type_4lxml_5etree_ETXPath.tp_base = __pyx_ptype_4lxml_5etree_XPath;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ETXPath.tp_dict, __pyx_vtabptr_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ETXPath", (PyObject *)&__pyx_type_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ETXPath.tp_dict, __pyx_vtabptr_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ETXPath", (PyObject *)&__pyx_type_4lxml_5etree_ETXPath) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_ETXPath = &__pyx_type_4lxml_5etree_ETXPath;
   __pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup = &__pyx_vtable_4lxml_5etree_FallbackElementClassLookup;
   __pyx_vtable_4lxml_5etree_FallbackElementClassLookup._setFallback = (void (*)(struct LxmlFallbackElementClassLookup *, struct LxmlElementClassLookup *))__pyx_f_4lxml_5etree_26FallbackElementClassLookup__setFallback;
@@ -175510,8 +175465,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__IncrementalFileWriter._collect_namespaces = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *, PyObject *))__pyx_f_4lxml_5etree_22_IncrementalFileWriter__collect_namespaces;
   __pyx_vtable_4lxml_5etree__IncrementalFileWriter._close = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *, int))__pyx_f_4lxml_5etree_22_IncrementalFileWriter__close;
   __pyx_vtable_4lxml_5etree__IncrementalFileWriter._handle_error = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IncrementalFileWriter *, int))__pyx_f_4lxml_5etree_22_IncrementalFileWriter__handle_error;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__IncrementalFileWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__IncrementalFileWriter.tp_dict, __pyx_vtabptr_4lxml_5etree__IncrementalFileWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 643; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__IncrementalFileWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__IncrementalFileWriter.tp_dict, __pyx_vtabptr_4lxml_5etree__IncrementalFileWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__IncrementalFileWriter = &__pyx_type_4lxml_5etree__IncrementalFileWriter;
   __pyx_vtabptr_4lxml_5etree__ReadOnlyProxy = &__pyx_vtable_4lxml_5etree__ReadOnlyProxy;
   __pyx_vtable_4lxml_5etree__ReadOnlyProxy._assertNode = (int (*)(struct __pyx_obj_4lxml_5etree__ReadOnlyProxy *))__pyx_f_4lxml_5etree_14_ReadOnlyProxy__assertNode;
@@ -175555,7 +175510,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_CommentBase.tp_dict, __pyx_vtabptr_4lxml_5etree_CommentBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "CommentBase", (PyObject *)&__pyx_type_4lxml_5etree_CommentBase) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_CommentBase = &__pyx_type_4lxml_5etree_CommentBase;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTQuotedStringParam) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTQuotedStringParam) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 321; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__XSLTQuotedStringParam = &__pyx_type_4lxml_5etree__XSLTQuotedStringParam;
   __pyx_vtabptr_4lxml_5etree__BaseContext = &__pyx_vtable_4lxml_5etree__BaseContext;
   __pyx_vtable_4lxml_5etree__BaseContext._copy = (struct __pyx_obj_4lxml_5etree__BaseContext *(*)(struct __pyx_obj_4lxml_5etree__BaseContext *))__pyx_f_4lxml_5etree_12_BaseContext__copy;
@@ -175588,8 +175543,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__XSLTContext.register_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XSLTContext *, xsltTransformContext *, struct LxmlDocument *))__pyx_f_4lxml_5etree_12_XSLTContext_register_context;
   __pyx_vtable_4lxml_5etree__XSLTContext.free_context = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XSLTContext *))__pyx_f_4lxml_5etree_12_XSLTContext_free_context;
   __pyx_type_4lxml_5etree__XSLTContext.tp_base = __pyx_ptype_4lxml_5etree__BaseContext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTContext.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTContext.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTContext) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__XSLTContext = &__pyx_type_4lxml_5etree__XSLTContext;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDElementDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__DTDElementDecl = &__pyx_type_4lxml_5etree__DTDElementDecl;
@@ -175605,8 +175560,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__ExceptionContext._store_exception = (void (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *, PyObject *))__pyx_f_4lxml_5etree_17_ExceptionContext__store_exception;
   __pyx_vtable_4lxml_5etree__ExceptionContext._has_raised = (int (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext__has_raised;
   __pyx_vtable_4lxml_5etree__ExceptionContext._raise_if_stored = (int (*)(struct __pyx_obj_4lxml_5etree__ExceptionContext *))__pyx_f_4lxml_5etree_17_ExceptionContext__raise_if_stored;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ExceptionContext) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ExceptionContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ExceptionContext) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 272; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ExceptionContext) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ExceptionContext.tp_dict, __pyx_vtabptr_4lxml_5etree__ExceptionContext) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ExceptionContext = &__pyx_type_4lxml_5etree__ExceptionContext;
   __pyx_vtabptr_4lxml_5etree__ResolverContext = &__pyx_vtable_4lxml_5etree__ResolverContext;
   __pyx_vtable_4lxml_5etree__ResolverContext.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ExceptionContext;
@@ -175660,7 +175615,6 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__XPathContext.registerVariables = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *))__pyx_f_4lxml_5etree_13_XPathContext_registerVariables;
   __pyx_vtable_4lxml_5etree__XPathContext.registerVariable = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_13_XPathContext_registerVariable;
   __pyx_vtable_4lxml_5etree__XPathContext._registerVariable = (void (*)(struct __pyx_obj_4lxml_5etree__XPathContext *, PyObject *, PyObject *))__pyx_f_4lxml_5etree_13_XPathContext__registerVariable;
-  __pyx_vtable_4lxml_5etree__XPathContext._setupDict = (void (*)(struct __pyx_obj_4lxml_5etree__XPathContext *, xmlXPathContext *))__pyx_f_4lxml_5etree_13_XPathContext__setupDict;
   __pyx_type_4lxml_5etree__XPathContext.tp_base = __pyx_ptype_4lxml_5etree__BaseContext;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__XPathContext) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XPathContext.tp_dict, __pyx_vtabptr_4lxml_5etree__XPathContext) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 52; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -175668,9 +175622,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtabptr_4lxml_5etree__Entity = &__pyx_vtable_4lxml_5etree__Entity;
   __pyx_vtable_4lxml_5etree__Entity.__pyx_base = *__pyx_vtabptr_4lxml_5etree___ContentOnlyElement;
   __pyx_type_4lxml_5etree__Entity.tp_base = __pyx_ptype_4lxml_5etree___ContentOnlyElement;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Entity.tp_dict, __pyx_vtabptr_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Entity", (PyObject *)&__pyx_type_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Entity.tp_dict, __pyx_vtabptr_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Entity", (PyObject *)&__pyx_type_4lxml_5etree__Entity) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1635; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__Entity = &__pyx_type_4lxml_5etree__Entity;
   __pyx_vtabptr_4lxml_5etree_EntityBase = &__pyx_vtable_4lxml_5etree_EntityBase;
   __pyx_vtable_4lxml_5etree_EntityBase.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Entity;
@@ -175701,17 +175655,17 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__Document.buildNewPrefix = (PyObject *(*)(struct LxmlDocument *))__pyx_f_4lxml_5etree_9_Document_buildNewPrefix;
   __pyx_vtable_4lxml_5etree__Document._findOrBuildNodeNs = (xmlNs *(*)(struct LxmlDocument *, xmlNode *, const xmlChar *, const xmlChar *, int))__pyx_f_4lxml_5etree_9_Document__findOrBuildNodeNs;
   __pyx_vtable_4lxml_5etree__Document._setNodeNs = (int (*)(struct LxmlDocument *, xmlNode *, const xmlChar *))__pyx_f_4lxml_5etree_9_Document__setNodeNs;
-  if (PyType_Ready(&LxmlDocumentType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlDocumentType.tp_dict, __pyx_vtabptr_4lxml_5etree__Document) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Document", (PyObject *)&LxmlDocumentType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&LxmlDocumentType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlDocumentType.tp_dict, __pyx_vtabptr_4lxml_5etree__Document) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Document", (PyObject *)&LxmlDocumentType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__Document = &LxmlDocumentType;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__InputDocument) < 0) {__pyx_filename = __pyx_f[11]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__InputDocument = &__pyx_type_4lxml_5etree__InputDocument;
   __pyx_vtabptr_4lxml_5etree__ElementTree = &__pyx_vtable_4lxml_5etree__ElementTree;
   __pyx_vtable_4lxml_5etree__ElementTree._assertHasRoot = (PyObject *(*)(struct LxmlElementTree *))__pyx_f_4lxml_5etree_12_ElementTree__assertHasRoot;
-  if (PyType_Ready(&LxmlElementTreeType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlElementTreeType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementTree", (PyObject *)&LxmlElementTreeType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&LxmlElementTreeType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlElementTreeType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementTree) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementTree", (PyObject *)&LxmlElementTreeType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ElementTree = &LxmlElementTreeType;
   __pyx_vtabptr_4lxml_5etree__ModifyContentOnlyProxy = &__pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy;
   __pyx_vtable_4lxml_5etree__ModifyContentOnlyProxy.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ReadOnlyProxy;
@@ -175729,9 +175683,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtabptr_4lxml_5etree__Validator = &__pyx_vtable_4lxml_5etree__Validator;
   __pyx_vtable_4lxml_5etree__Validator._append_log_message = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__Validator *, int, int, int, int, PyObject *, PyObject *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10_Validator__append_log_message;
   __pyx_vtable_4lxml_5etree__Validator._clear_error_log = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__Validator *, int __pyx_skip_dispatch))__pyx_f_4lxml_5etree_10_Validator__clear_error_log;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Validator.tp_dict, __pyx_vtabptr_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Validator", (PyObject *)&__pyx_type_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__Validator.tp_dict, __pyx_vtabptr_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Validator", (PyObject *)&__pyx_type_4lxml_5etree__Validator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3241; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__Validator = &__pyx_type_4lxml_5etree__Validator;
   __pyx_vtabptr_4lxml_5etree_RelaxNG = &__pyx_vtable_4lxml_5etree_RelaxNG;
   __pyx_vtable_4lxml_5etree_RelaxNG.__pyx_base = *__pyx_vtabptr_4lxml_5etree__Validator;
@@ -175769,11 +175723,11 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyType_Ready(&__pyx_type_4lxml_5etree__PythonSaxParserTarget) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__PythonSaxParserTarget.tp_dict, __pyx_vtabptr_4lxml_5etree__PythonSaxParserTarget) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__PythonSaxParserTarget = &__pyx_type_4lxml_5etree__PythonSaxParserTarget;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_CDATA) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "CDATA", (PyObject *)&__pyx_type_4lxml_5etree_CDATA) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_CDATA) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "CDATA", (PyObject *)&__pyx_type_4lxml_5etree_CDATA) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_CDATA = &__pyx_type_4lxml_5etree_CDATA;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_xmlfile) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "xmlfile", (PyObject *)&__pyx_type_4lxml_5etree_xmlfile) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 590; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_xmlfile) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "xmlfile", (PyObject *)&__pyx_type_4lxml_5etree_xmlfile) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_xmlfile = &__pyx_type_4lxml_5etree_xmlfile;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDElementContentDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__DTDElementContentDecl = &__pyx_type_4lxml_5etree__DTDElementContentDecl;
@@ -175821,20 +175775,20 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__XSLTResultTree.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementTree;
   __pyx_vtable_4lxml_5etree__XSLTResultTree._saveToStringAndSize = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__XSLTResultTree *, xmlChar **, int *))__pyx_f_4lxml_5etree_15_XSLTResultTree__saveToStringAndSize;
   __pyx_type_4lxml_5etree__XSLTResultTree.tp_base = __pyx_ptype_4lxml_5etree__ElementTree;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTResultTree) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTResultTree.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTResultTree) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_XSLTResultTree", (PyObject *)&__pyx_type_4lxml_5etree__XSLTResultTree) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__XSLTResultTree) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__XSLTResultTree.tp_dict, __pyx_vtabptr_4lxml_5etree__XSLTResultTree) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_XSLTResultTree", (PyObject *)&__pyx_type_4lxml_5etree__XSLTResultTree) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__XSLTResultTree = &__pyx_type_4lxml_5etree__XSLTResultTree;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementTextIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementTextIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementTextIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2742; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_ElementTextIterator = &__pyx_type_4lxml_5etree_ElementTextIterator;
   __pyx_vtabptr_4lxml_5etree__ElementIterator = &__pyx_vtable_4lxml_5etree__ElementIterator;
   __pyx_vtable_4lxml_5etree__ElementIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementTagMatcher;
   __pyx_vtable_4lxml_5etree__ElementIterator._storeNext = (void (*)(struct LxmlElementIterator *, struct LxmlElement *))__pyx_f_4lxml_5etree_16_ElementIterator__storeNext;
   LxmlElementIteratorType.tp_base = __pyx_ptype_4lxml_5etree__ElementTagMatcher;
-  if (PyType_Ready(&LxmlElementIteratorType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(LxmlElementIteratorType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementIterator", (PyObject *)&LxmlElementIteratorType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&LxmlElementIteratorType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(LxmlElementIteratorType.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementIterator", (PyObject *)&LxmlElementIteratorType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ElementIterator = &LxmlElementIteratorType;
   LxmlElementBaseType.tp_base = __pyx_ptype_4lxml_5etree__Element;
   if (PyType_Ready(&LxmlElementBaseType) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -175934,8 +175888,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup.tp_dict, __pyx_vtabptr_4lxml_5etree_AttributeBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetAttrString(__pyx_m, "AttributeBasedElementClassLookup", (PyObject *)&__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_AttributeBasedElementClassLookup = &__pyx_type_4lxml_5etree_AttributeBasedElementClassLookup;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_DocInfo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "DocInfo", (PyObject *)&__pyx_type_4lxml_5etree_DocInfo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_DocInfo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "DocInfo", (PyObject *)&__pyx_type_4lxml_5etree_DocInfo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_DocInfo = &__pyx_type_4lxml_5etree_DocInfo;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDAttributeDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__DTDAttributeDecl = &__pyx_type_4lxml_5etree__DTDAttributeDecl;
@@ -175960,16 +175914,16 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtabptr_4lxml_5etree__ElementMatchIterator = &__pyx_vtable_4lxml_5etree__ElementMatchIterator;
   __pyx_vtable_4lxml_5etree__ElementMatchIterator._initTagMatcher = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, PyObject *))__pyx_f_4lxml_5etree_21_ElementMatchIterator__initTagMatcher;
   __pyx_vtable_4lxml_5etree__ElementMatchIterator._storeNext = (int (*)(struct __pyx_obj_4lxml_5etree__ElementMatchIterator *, struct LxmlElement *))__pyx_f_4lxml_5etree_21_ElementMatchIterator__storeNext;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ElementMatchIterator.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_ElementMatchIterator", (PyObject *)&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2595; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ElementMatchIterator.tp_dict, __pyx_vtabptr_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_ElementMatchIterator", (PyObject *)&__pyx_type_4lxml_5etree__ElementMatchIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2592; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ElementMatchIterator = &__pyx_type_4lxml_5etree__ElementMatchIterator;
   __pyx_vtabptr_4lxml_5etree_AncestorsIterator = &__pyx_vtable_4lxml_5etree_AncestorsIterator;
   __pyx_vtable_4lxml_5etree_AncestorsIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
   __pyx_type_4lxml_5etree_AncestorsIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AncestorsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "AncestorsIterator", (PyObject *)&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_AncestorsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "AncestorsIterator", (PyObject *)&__pyx_type_4lxml_5etree_AncestorsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2656; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_AncestorsIterator = &__pyx_type_4lxml_5etree_AncestorsIterator;
   __pyx_vtabptr_4lxml_5etree__IDDict = &__pyx_vtable_4lxml_5etree__IDDict;
   __pyx_vtable_4lxml_5etree__IDDict._build_keys = (PyObject *(*)(struct __pyx_obj_4lxml_5etree__IDDict *))__pyx_f_4lxml_5etree_7_IDDict__build_keys;
@@ -176004,12 +175958,12 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyType_Ready(&__pyx_type_4lxml_5etree__ReadOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ReadOnlyEntityProxy.tp_dict, __pyx_vtabptr_4lxml_5etree__ReadOnlyEntityProxy) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ReadOnlyEntityProxy = &__pyx_type_4lxml_5etree__ReadOnlyEntityProxy;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__FileWriterElement) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__FileWriterElement) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__FileWriterElement = &__pyx_type_4lxml_5etree__FileWriterElement;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__MemDebug) < 0) {__pyx_filename = __pyx_f[25]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__MemDebug = &__pyx_type_4lxml_5etree__MemDebug;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__Attrib) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "_Attrib", (PyObject *)&__pyx_type_4lxml_5etree__Attrib) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2215; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__Attrib) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "_Attrib", (PyObject *)&__pyx_type_4lxml_5etree__Attrib) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2212; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__Attrib = &__pyx_type_4lxml_5etree__Attrib;
   __pyx_type_4lxml_5etree_ElementDefaultClassLookup.tp_base = __pyx_ptype_4lxml_5etree_ElementClassLookup;
   if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementDefaultClassLookup) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -176026,16 +175980,16 @@ PyMODINIT_FUNC PyInit_etree(void)
   if (PyType_Ready(&__pyx_type_4lxml_5etree__ExsltRegExp) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__ExsltRegExp.tp_dict, __pyx_vtabptr_4lxml_5etree__ExsltRegExp) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 455; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__ExsltRegExp = &__pyx_type_4lxml_5etree__ExsltRegExp;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_QName) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "QName", (PyObject *)&__pyx_type_4lxml_5etree_QName) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1667; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_QName) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "QName", (PyObject *)&__pyx_type_4lxml_5etree_QName) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1664; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_QName = &__pyx_type_4lxml_5etree_QName;
   if (PyType_Ready(&__pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 326; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree___pyx_scope_struct_3_iterentities = &__pyx_type_4lxml_5etree___pyx_scope_struct_3_iterentities;
   __pyx_vtabptr_4lxml_5etree__TempStore = &__pyx_vtable_4lxml_5etree__TempStore;
   __pyx_vtable_4lxml_5etree__TempStore.add = (int (*)(struct __pyx_obj_4lxml_5etree__TempStore *, PyObject *))__pyx_f_4lxml_5etree_10_TempStore_add;
   __pyx_vtable_4lxml_5etree__TempStore.clear = (int (*)(struct __pyx_obj_4lxml_5etree__TempStore *))__pyx_f_4lxml_5etree_10_TempStore_clear;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__TempStore) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__TempStore.tp_dict, __pyx_vtabptr_4lxml_5etree__TempStore) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__TempStore) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__TempStore.tp_dict, __pyx_vtabptr_4lxml_5etree__TempStore) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__TempStore = &__pyx_type_4lxml_5etree__TempStore;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__OpaqueNodeWrapper) < 0) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__OpaqueNodeWrapper = &__pyx_type_4lxml_5etree__OpaqueNodeWrapper;
@@ -176043,8 +175997,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtable_4lxml_5etree__FilelikeWriter._createOutputBuffer = (xmlOutputBuffer *(*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *, xmlCharEncodingHandler *))__pyx_f_4lxml_5etree_15_FilelikeWriter__createOutputBuffer;
   __pyx_vtable_4lxml_5etree__FilelikeWriter.write = (int (*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *, char *, int))__pyx_f_4lxml_5etree_15_FilelikeWriter_write;
   __pyx_vtable_4lxml_5etree__FilelikeWriter.close = (int (*)(struct __pyx_obj_4lxml_5etree__FilelikeWriter *))__pyx_f_4lxml_5etree_15_FilelikeWriter_close;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__FilelikeWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__FilelikeWriter.tp_dict, __pyx_vtabptr_4lxml_5etree__FilelikeWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__FilelikeWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree__FilelikeWriter.tp_dict, __pyx_vtabptr_4lxml_5etree__FilelikeWriter) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__FilelikeWriter = &__pyx_type_4lxml_5etree__FilelikeWriter;
   __pyx_vtabptr_4lxml_5etree__OpaqueDocumentWrapper = &__pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper;
   __pyx_vtable_4lxml_5etree__OpaqueDocumentWrapper._assertNode = (int (*)(struct __pyx_obj_4lxml_5etree__OpaqueDocumentWrapper *))__pyx_f_4lxml_5etree_22_OpaqueDocumentWrapper__assertNode;
@@ -176083,9 +176037,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtabptr_4lxml_5etree_SiblingsIterator = &__pyx_vtable_4lxml_5etree_SiblingsIterator;
   __pyx_vtable_4lxml_5etree_SiblingsIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
   __pyx_type_4lxml_5etree_SiblingsIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_SiblingsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "SiblingsIterator", (PyObject *)&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_SiblingsIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "SiblingsIterator", (PyObject *)&__pyx_type_4lxml_5etree_SiblingsIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_SiblingsIterator = &__pyx_type_4lxml_5etree_SiblingsIterator;
   __pyx_vtabptr_4lxml_5etree_HTMLParser = &__pyx_vtable_4lxml_5etree_HTMLParser;
   __pyx_vtable_4lxml_5etree_HTMLParser.__pyx_base = *__pyx_vtabptr_4lxml_5etree__FeedParser;
@@ -176117,7 +176071,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_ptype_4lxml_5etree__ParserSchemaValidationContext = &__pyx_type_4lxml_5etree__ParserSchemaValidationContext;
   if (PyType_Ready(&__pyx_type_4lxml_5etree__DTDEntityDecl) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__DTDEntityDecl = &__pyx_type_4lxml_5etree__DTDEntityDecl;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree__AttribIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree__AttribIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree__AttribIterator = &__pyx_type_4lxml_5etree__AttribIterator;
   __pyx_vtabptr_4lxml_5etree_PythonElementClassLookup = &__pyx_vtable_4lxml_5etree_PythonElementClassLookup;
   __pyx_vtable_4lxml_5etree_PythonElementClassLookup.__pyx_base = *__pyx_vtabptr_4lxml_5etree_FallbackElementClassLookup;
@@ -176129,9 +176083,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_vtabptr_4lxml_5etree_ElementChildIterator = &__pyx_vtable_4lxml_5etree_ElementChildIterator;
   __pyx_vtable_4lxml_5etree_ElementChildIterator.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ElementMatchIterator;
   __pyx_type_4lxml_5etree_ElementChildIterator.tp_base = __pyx_ptype_4lxml_5etree__ElementMatchIterator;
-  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementChildIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementChildIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2624; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_5etree_ElementChildIterator.tp_dict, __pyx_vtabptr_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementChildIterator", (PyObject *)&__pyx_type_4lxml_5etree_ElementChildIterator) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2621; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_5etree_ElementChildIterator = &__pyx_type_4lxml_5etree_ElementChildIterator;
   __pyx_vtabptr_4lxml_5etree__RotatingErrorLog = &__pyx_vtable_4lxml_5etree__RotatingErrorLog;
   __pyx_vtable_4lxml_5etree__RotatingErrorLog.__pyx_base = *__pyx_vtabptr_4lxml_5etree__ErrorLog;
@@ -176153,7 +176107,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  * __all__ = [
  */
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s____docformat__, ((PyObject *)__pyx_kp_u_472)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s____docformat__, ((PyObject *)__pyx_kp_u_475)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 7; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":9
  * __docformat__ = u"restructuredtext en"
@@ -176164,9 +176118,9 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = PyList_New(111); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_473));
-  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s_473));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_473));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_476));
+  PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s_476));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_476));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__C14NError));
   PyList_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_n_s__C14NError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__C14NError));
@@ -176179,9 +176133,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__CommentBase));
   PyList_SET_ITEM(__pyx_t_1, 4, ((PyObject *)__pyx_n_s__CommentBase));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__CommentBase));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_474));
-  PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_n_s_474));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_474));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_477));
+  PyList_SET_ITEM(__pyx_t_1, 5, ((PyObject *)__pyx_n_s_477));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_477));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__DEBUG));
   PyList_SET_ITEM(__pyx_t_1, 6, ((PyObject *)__pyx_n_s__DEBUG));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__DEBUG));
@@ -176215,12 +176169,12 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__ElementClassLookup));
   PyList_SET_ITEM(__pyx_t_1, 16, ((PyObject *)__pyx_n_s__ElementClassLookup));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ElementClassLookup));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_475));
-  PyList_SET_ITEM(__pyx_t_1, 17, ((PyObject *)__pyx_n_s_475));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_475));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_476));
-  PyList_SET_ITEM(__pyx_t_1, 18, ((PyObject *)__pyx_n_s_476));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_476));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_478));
+  PyList_SET_ITEM(__pyx_t_1, 17, ((PyObject *)__pyx_n_s_478));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_478));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_479));
+  PyList_SET_ITEM(__pyx_t_1, 18, ((PyObject *)__pyx_n_s_479));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_479));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__ElementTree));
   PyList_SET_ITEM(__pyx_t_1, 19, ((PyObject *)__pyx_n_s__ElementTree));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ElementTree));
@@ -176245,9 +176199,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__Extension));
   PyList_SET_ITEM(__pyx_t_1, 26, ((PyObject *)__pyx_n_s__Extension));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__Extension));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_477));
-  PyList_SET_ITEM(__pyx_t_1, 27, ((PyObject *)__pyx_n_s_477));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_477));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_480));
+  PyList_SET_ITEM(__pyx_t_1, 27, ((PyObject *)__pyx_n_s_480));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_480));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__FunctionNamespace));
   PyList_SET_ITEM(__pyx_t_1, 28, ((PyObject *)__pyx_n_s__FunctionNamespace));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__FunctionNamespace));
@@ -176257,15 +176211,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__HTMLParser));
   PyList_SET_ITEM(__pyx_t_1, 30, ((PyObject *)__pyx_n_s__HTMLParser));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__HTMLParser));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_478));
-  PyList_SET_ITEM(__pyx_t_1, 31, ((PyObject *)__pyx_n_s_478));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_478));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_481));
+  PyList_SET_ITEM(__pyx_t_1, 31, ((PyObject *)__pyx_n_s_481));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_481));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__LIBXML_VERSION));
   PyList_SET_ITEM(__pyx_t_1, 32, ((PyObject *)__pyx_n_s__LIBXML_VERSION));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__LIBXML_VERSION));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_479));
-  PyList_SET_ITEM(__pyx_t_1, 33, ((PyObject *)__pyx_n_s_479));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_479));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_482));
+  PyList_SET_ITEM(__pyx_t_1, 33, ((PyObject *)__pyx_n_s_482));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_482));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__LIBXSLT_VERSION));
   PyList_SET_ITEM(__pyx_t_1, 34, ((PyObject *)__pyx_n_s__LIBXSLT_VERSION));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__LIBXSLT_VERSION));
@@ -176281,9 +176235,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__LxmlSyntaxError));
   PyList_SET_ITEM(__pyx_t_1, 38, ((PyObject *)__pyx_n_s__LxmlSyntaxError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__LxmlSyntaxError));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_154));
-  PyList_SET_ITEM(__pyx_t_1, 39, ((PyObject *)__pyx_n_s_154));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_154));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_157));
+  PyList_SET_ITEM(__pyx_t_1, 39, ((PyObject *)__pyx_n_s_157));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_157));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__PI));
   PyList_SET_ITEM(__pyx_t_1, 40, ((PyObject *)__pyx_n_s__PI));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__PI));
@@ -176293,21 +176247,21 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__ParseError));
   PyList_SET_ITEM(__pyx_t_1, 42, ((PyObject *)__pyx_n_s__ParseError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ParseError));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_480));
-  PyList_SET_ITEM(__pyx_t_1, 43, ((PyObject *)__pyx_n_s_480));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_480));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_483));
+  PyList_SET_ITEM(__pyx_t_1, 43, ((PyObject *)__pyx_n_s_483));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_483));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__ParserError));
   PyList_SET_ITEM(__pyx_t_1, 44, ((PyObject *)__pyx_n_s__ParserError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__ParserError));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_81));
-  PyList_SET_ITEM(__pyx_t_1, 45, ((PyObject *)__pyx_n_s_81));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_81));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_84));
+  PyList_SET_ITEM(__pyx_t_1, 45, ((PyObject *)__pyx_n_s_84));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_84));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__PyErrorLog));
   PyList_SET_ITEM(__pyx_t_1, 46, ((PyObject *)__pyx_n_s__PyErrorLog));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__PyErrorLog));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_481));
-  PyList_SET_ITEM(__pyx_t_1, 47, ((PyObject *)__pyx_n_s_481));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_481));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_484));
+  PyList_SET_ITEM(__pyx_t_1, 47, ((PyObject *)__pyx_n_s_484));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_484));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__QName));
   PyList_SET_ITEM(__pyx_t_1, 48, ((PyObject *)__pyx_n_s__QName));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__QName));
@@ -176323,9 +176277,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__RelaxNGParseError));
   PyList_SET_ITEM(__pyx_t_1, 52, ((PyObject *)__pyx_n_s__RelaxNGParseError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__RelaxNGParseError));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_412));
-  PyList_SET_ITEM(__pyx_t_1, 53, ((PyObject *)__pyx_n_s_412));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_412));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_415));
+  PyList_SET_ITEM(__pyx_t_1, 53, ((PyObject *)__pyx_n_s_415));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_415));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__Resolver));
   PyList_SET_ITEM(__pyx_t_1, 54, ((PyObject *)__pyx_n_s__Resolver));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__Resolver));
@@ -176335,12 +176289,12 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__SchematronError));
   PyList_SET_ITEM(__pyx_t_1, 56, ((PyObject *)__pyx_n_s__SchematronError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__SchematronError));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_424));
-  PyList_SET_ITEM(__pyx_t_1, 57, ((PyObject *)__pyx_n_s_424));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_424));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_429));
-  PyList_SET_ITEM(__pyx_t_1, 58, ((PyObject *)__pyx_n_s_429));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_429));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_427));
+  PyList_SET_ITEM(__pyx_t_1, 57, ((PyObject *)__pyx_n_s_427));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_427));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_432));
+  PyList_SET_ITEM(__pyx_t_1, 58, ((PyObject *)__pyx_n_s_432));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_432));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__SerialisationError));
   PyList_SET_ITEM(__pyx_t_1, 59, ((PyObject *)__pyx_n_s__SerialisationError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__SerialisationError));
@@ -176377,9 +176331,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__XMLSchemaParseError));
   PyList_SET_ITEM(__pyx_t_1, 70, ((PyObject *)__pyx_n_s__XMLSchemaParseError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__XMLSchemaParseError));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_419));
-  PyList_SET_ITEM(__pyx_t_1, 71, ((PyObject *)__pyx_n_s_419));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_419));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_422));
+  PyList_SET_ITEM(__pyx_t_1, 71, ((PyObject *)__pyx_n_s_422));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_422));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__XMLSyntaxError));
   PyList_SET_ITEM(__pyx_t_1, 72, ((PyObject *)__pyx_n_s__XMLSyntaxError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__XMLSyntaxError));
@@ -176389,9 +176343,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__XPath));
   PyList_SET_ITEM(__pyx_t_1, 74, ((PyObject *)__pyx_n_s__XPath));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__XPath));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_482));
-  PyList_SET_ITEM(__pyx_t_1, 75, ((PyObject *)__pyx_n_s_482));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_482));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_485));
+  PyList_SET_ITEM(__pyx_t_1, 75, ((PyObject *)__pyx_n_s_485));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_485));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__XPathError));
   PyList_SET_ITEM(__pyx_t_1, 76, ((PyObject *)__pyx_n_s__XPathError));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__XPathError));
@@ -176473,9 +176427,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__set_default_parser));
   PyList_SET_ITEM(__pyx_t_1, 102, ((PyObject *)__pyx_n_s__set_default_parser));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__set_default_parser));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_179));
-  PyList_SET_ITEM(__pyx_t_1, 103, ((PyObject *)__pyx_n_s_179));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_179));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_182));
+  PyList_SET_ITEM(__pyx_t_1, 103, ((PyObject *)__pyx_n_s_182));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_182));
   __Pyx_INCREF(((PyObject *)__pyx_n_s__strip_attributes));
   PyList_SET_ITEM(__pyx_t_1, 104, ((PyObject *)__pyx_n_s__strip_attributes));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__strip_attributes));
@@ -176494,9 +176448,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__tounicode));
   PyList_SET_ITEM(__pyx_t_1, 109, ((PyObject *)__pyx_n_s__tounicode));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__tounicode));
-  __Pyx_INCREF(((PyObject *)__pyx_n_s_483));
-  PyList_SET_ITEM(__pyx_t_1, 110, ((PyObject *)__pyx_n_s_483));
-  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_483));
+  __Pyx_INCREF(((PyObject *)__pyx_n_s_486));
+  PyList_SET_ITEM(__pyx_t_1, 110, ((PyObject *)__pyx_n_s_486));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s_486));
   if (PyDict_SetItem(__pyx_d, __pyx_n_s____all__, ((PyObject *)__pyx_t_1)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
@@ -176605,9 +176559,8 @@ PyMODINIT_FUNC PyInit_etree(void)
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_XGOTREF(__pyx_v_4lxml_5etree__unicode);
-      __Pyx_DECREF(__pyx_v_4lxml_5etree__unicode);
+      __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__unicode, __pyx_t_6);
       __Pyx_GIVEREF(__pyx_t_6);
-      __pyx_v_4lxml_5etree__unicode = __pyx_t_6;
       __pyx_t_6 = 0;
     }
     __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -176648,9 +176601,8 @@ PyMODINIT_FUNC PyInit_etree(void)
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_XGOTREF(__pyx_v_4lxml_5etree__unicode);
-      __Pyx_DECREF(__pyx_v_4lxml_5etree__unicode);
+      __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__unicode, __pyx_t_9);
       __Pyx_GIVEREF(__pyx_t_9);
-      __pyx_v_4lxml_5etree__unicode = __pyx_t_9;
       __pyx_t_9 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
@@ -176692,16 +176644,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(((PyObject *)__pyx_n_s__abspath));
   PyList_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_s__abspath));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_s__abspath));
-  __pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s_484), ((PyObject *)__pyx_t_1), 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s_487), ((PyObject *)__pyx_t_1), 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_7, __pyx_n_s__abspath); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_os_path_abspath);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_os_path_abspath);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_os_path_abspath, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree_os_path_abspath = __pyx_t_1;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
@@ -176741,17 +176692,15 @@ PyMODINIT_FUNC PyInit_etree(void)
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_INCREF(__pyx_t_7);
       __Pyx_XGOTREF(__pyx_v_4lxml_5etree_BytesIO);
-      __Pyx_DECREF(__pyx_v_4lxml_5etree_BytesIO);
+      __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_BytesIO, __pyx_t_7);
       __Pyx_GIVEREF(__pyx_t_7);
-      __pyx_v_4lxml_5etree_BytesIO = __pyx_t_7;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s__StringIO); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 79; __pyx_clineno = __LINE__; goto __pyx_L22_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_INCREF(__pyx_t_7);
       __Pyx_XGOTREF(__pyx_v_4lxml_5etree_StringIO);
-      __Pyx_DECREF(__pyx_v_4lxml_5etree_StringIO);
+      __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_StringIO, __pyx_t_7);
       __Pyx_GIVEREF(__pyx_t_7);
-      __pyx_v_4lxml_5etree_StringIO = __pyx_t_7;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     }
@@ -176803,17 +176752,15 @@ PyMODINIT_FUNC PyInit_etree(void)
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_9);
       __Pyx_XGOTREF(__pyx_v_4lxml_5etree_StringIO);
-      __Pyx_DECREF(__pyx_v_4lxml_5etree_StringIO);
+      __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_StringIO, __pyx_t_9);
       __Pyx_GIVEREF(__pyx_t_9);
-      __pyx_v_4lxml_5etree_StringIO = __pyx_t_9;
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       __pyx_t_9 = __Pyx_ImportFrom(__pyx_t_8, __pyx_n_s__StringIO); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L24_except_error;}
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_INCREF(__pyx_t_9);
       __Pyx_XGOTREF(__pyx_v_4lxml_5etree_BytesIO);
-      __Pyx_DECREF(__pyx_v_4lxml_5etree_BytesIO);
+      __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_BytesIO, __pyx_t_9);
       __Pyx_GIVEREF(__pyx_t_9);
-      __pyx_v_4lxml_5etree_BytesIO = __pyx_t_9;
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -176854,9 +176801,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_INCREF(__pyx_t_6);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__elementpath);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__elementpath);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__elementpath, __pyx_t_6);
   __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_v_4lxml_5etree__elementpath = __pyx_t_6;
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
@@ -176870,9 +176816,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s__sys), 0, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_sys);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_sys);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_sys, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_v_4lxml_5etree_sys = __pyx_t_7;
   __pyx_t_7 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":90
@@ -176880,74 +176825,56 @@ PyMODINIT_FUNC PyInit_etree(void)
  * cdef object re
  * import re             # <<<<<<<<<<<<<<
  * 
- * cdef object gzip
+ * cdef object ITER_EMPTY = iter(())
  */
   __pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s__re), 0, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 90; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_re);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_re);
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_v_4lxml_5etree_re = __pyx_t_7;
-  __pyx_t_7 = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":93
- * 
- * cdef object gzip
- * import gzip             # <<<<<<<<<<<<<<
- * 
- * cdef object ITER_EMPTY = iter(())
- */
-  __pyx_t_7 = __Pyx_Import(((PyObject *)__pyx_n_s__gzip), 0, 0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __Pyx_XGOTREF(__pyx_v_4lxml_5etree_gzip);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_gzip);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_re, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_v_4lxml_5etree_gzip = __pyx_t_7;
   __pyx_t_7 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":95
- * import gzip
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":92
+ * import re
  * 
  * cdef object ITER_EMPTY = iter(())             # <<<<<<<<<<<<<<
  * 
  * cdef object EMPTY_READ_ONLY_DICT = python.PyDictProxy_New({})
  */
-  __pyx_t_7 = PyObject_GetIter(((PyObject *)__pyx_empty_tuple)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyObject_GetIter(((PyObject *)__pyx_empty_tuple)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_ITER_EMPTY);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_ITER_EMPTY);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_ITER_EMPTY, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_v_4lxml_5etree_ITER_EMPTY = __pyx_t_7;
   __pyx_t_7 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":97
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":94
  * cdef object ITER_EMPTY = iter(())
  * 
  * cdef object EMPTY_READ_ONLY_DICT = python.PyDictProxy_New({})             # <<<<<<<<<<<<<<
  * 
  * # the rules
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-  __pyx_t_6 = PyDictProxy_New(((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyDictProxy_New(((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT, __pyx_t_6);
   __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT = __pyx_t_6;
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":114
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":111
  * 
  * # make the compiled-in debug state publicly available
  * DEBUG = __DEBUG             # <<<<<<<<<<<<<<
  * 
  * # A struct to store a cached qualified tag name+href pair.
  */
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__DEBUG, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__DEBUG, __pyx_int_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":125
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":122
  * 
  * # global per-thread setup
  * tree.xmlThrDefIndentTreeOutput(1)             # <<<<<<<<<<<<<<
@@ -176956,7 +176883,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   xmlThrDefIndentTreeOutput(1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":126
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":123
  * # global per-thread setup
  * tree.xmlThrDefIndentTreeOutput(1)
  * tree.xmlThrDefLineNumbersDefaultValue(1)             # <<<<<<<<<<<<<<
@@ -176965,7 +176892,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   xmlThrDefLineNumbersDefaultValue(1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":128
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":125
  * tree.xmlThrDefLineNumbersDefaultValue(1)
  * 
  * _initThreadLogging()             # <<<<<<<<<<<<<<
@@ -176974,7 +176901,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_f_4lxml_5etree__initThreadLogging();
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":131
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":128
  * 
  * # initialize parser (and threading)
  * xmlparser.xmlInitParser()             # <<<<<<<<<<<<<<
@@ -176983,27 +176910,27 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   xmlInitParser();
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":134
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":131
  * 
  * # filename encoding
  * cdef bytes _FILENAME_ENCODING = (sys.getfilesystemencoding() or sys.getdefaultencoding() or 'ascii').encode(u"UTF-8")             # <<<<<<<<<<<<<<
  * cdef char* _C_FILENAME_ENCODING = _cstr(_FILENAME_ENCODING)
  * 
  */
-  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_432); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s_435); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!__pyx_t_10) {
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__getdefaultencoding); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_sys, __pyx_n_s__getdefaultencoding); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_10 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_10 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!__pyx_t_10) {
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_INCREF(((PyObject *)__pyx_n_s__ascii));
@@ -177018,20 +176945,19 @@ PyMODINIT_FUNC PyInit_etree(void)
     __pyx_t_1 = __pyx_t_7;
     __pyx_t_7 = 0;
   }
-  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__encode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s__encode); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_k_tuple_485), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_k_tuple_488), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(PyBytes_CheckExact(__pyx_t_1))||((__pyx_t_1) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_1)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree__FILENAME_ENCODING));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree__FILENAME_ENCODING));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__FILENAME_ENCODING, ((PyObject*)__pyx_t_1));
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree__FILENAME_ENCODING = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":135
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":132
  * # filename encoding
  * cdef bytes _FILENAME_ENCODING = (sys.getfilesystemencoding() or sys.getdefaultencoding() or 'ascii').encode(u"UTF-8")
  * cdef char* _C_FILENAME_ENCODING = _cstr(_FILENAME_ENCODING)             # <<<<<<<<<<<<<<
@@ -177043,130 +176969,128 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_v_4lxml_5etree__C_FILENAME_ENCODING = PyBytes_AS_STRING(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":138
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":135
  * 
  * # set up some default namespace prefixes
  * cdef dict _DEFAULT_NAMESPACE_PREFIXES = {             # <<<<<<<<<<<<<<
  *     b"http://www.w3.org/XML/1998/namespace": b'xml',
  *     b"http://www.w3.org/1999/xhtml": b"html",
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_486), ((PyObject *)__pyx_n_b__xml)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_487), ((PyObject *)__pyx_n_b__html)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_368), ((PyObject *)__pyx_n_b__xsl)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_488), ((PyObject *)__pyx_n_b__rdf)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_489), ((PyObject *)__pyx_n_b__wsdl)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_415), ((PyObject *)__pyx_n_b__xs)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_490), ((PyObject *)__pyx_n_b__xsi)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_491), ((PyObject *)__pyx_n_b__dc)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_492), ((PyObject *)__pyx_n_b__py)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_489), ((PyObject *)__pyx_n_b__xml)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_490), ((PyObject *)__pyx_n_b__html)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_371), ((PyObject *)__pyx_n_b__xsl)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_491), ((PyObject *)__pyx_n_b__rdf)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_492), ((PyObject *)__pyx_n_b__wsdl)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_418), ((PyObject *)__pyx_n_b__xs)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_493), ((PyObject *)__pyx_n_b__xsi)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_494), ((PyObject *)__pyx_n_b__dc)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_1, ((PyObject *)__pyx_kp_b_495), ((PyObject *)__pyx_n_b__py)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES, ((PyObject*)__pyx_t_1));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
-  __pyx_v_4lxml_5etree__DEFAULT_NAMESPACE_PREFIXES = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":153
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":150
  * }
  * 
  * cdef object _check_internal_prefix = re.compile(b"ns\d+$").match             # <<<<<<<<<<<<<<
  * 
  * def register_namespace(prefix, uri):
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_494), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_k_tuple_497), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 153; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__check_internal_prefix);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__check_internal_prefix);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__check_internal_prefix, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree__check_internal_prefix = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":155
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":152
  * cdef object _check_internal_prefix = re.compile(b"ns\d+$").match
  * 
  * def register_namespace(prefix, uri):             # <<<<<<<<<<<<<<
  *     u"""Registers a namespace prefix that newly created Elements in that
  *     namespace will use.  The registry is global, and any existing
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_1register_namespace, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_1register_namespace, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__register_namespace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__register_namespace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":173
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":170
  * 
  * # Error superclass for ElementTree compatibility
  * class Error(Exception):             # <<<<<<<<<<<<<<
  *     pass
  * 
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_INCREF(__pyx_builtin_Exception);
   PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_Exception);
   __Pyx_GIVEREF(__pyx_builtin_Exception);
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__Error, __pyx_n_s__Error, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__Error, __pyx_n_s__Error, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Error, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Error, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":177
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":174
  * 
  * # module level superclass for all exceptions
  * class LxmlError(Error):             # <<<<<<<<<<<<<<
  *     u"""Main exception base class for lxml.  All other exceptions inherit from
  *     this one.
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":181
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":178
  *     this one.
  *     """
  *     def __init__(self, message, error_log=None):             # <<<<<<<<<<<<<<
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9LxmlError_1__init__, 0, __pyx_n_s_502, NULL, __pyx_n_s_498, ((PyObject *)__pyx_k_codeobj_500)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_9LxmlError_1__init__, 0, __pyx_n_s_505, NULL, __pyx_n_s_501, ((PyObject *)__pyx_k_codeobj_503)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, ((PyObject *)__pyx_k_tuple_501));
-  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 181; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, ((PyObject *)__pyx_k_tuple_504));
+  if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":177
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":174
  * 
  * # module level superclass for all exceptions
  * class LxmlError(Error):             # <<<<<<<<<<<<<<
  *     u"""Main exception base class for lxml.  All other exceptions inherit from
  *     this one.
  */
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_503)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlError, __pyx_n_s__LxmlError, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_506)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlError, __pyx_n_s__LxmlError, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__LxmlError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__LxmlError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":192
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":189
  *             self.error_log = error_log.copy()
  * 
  * cdef object _Error = Error if python.PY_VERSION_HEX >= 0x02050000 else None             # <<<<<<<<<<<<<<
@@ -177174,7 +177098,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  */
   if (((PY_VERSION_HEX >= 0x02050000) != 0)) {
-    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 189; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __pyx_t_1 = __pyx_t_6;
     __pyx_t_6 = 0;
@@ -177183,12 +177107,11 @@ PyMODINIT_FUNC PyInit_etree(void)
     __pyx_t_1 = Py_None;
   }
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__Error);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__Error);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__Error, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree__Error = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":193
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":190
  * 
  * cdef object _Error = Error if python.PY_VERSION_HEX >= 0x02050000 else None
  * cdef object error_super_init = Error.__init__ if python.PY_VERSION_HEX < 0x02050000 else None             # <<<<<<<<<<<<<<
@@ -177196,9 +177119,9 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  */
   if (((PY_VERSION_HEX < 0x02050000) != 0)) {
-    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__Error); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s____init__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s____init__); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_t_1 = __pyx_t_7;
@@ -177208,23 +177131,22 @@ PyMODINIT_FUNC PyInit_etree(void)
     __pyx_t_1 = Py_None;
   }
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_error_super_init);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_error_super_init);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_error_super_init, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree_error_super_init = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":197
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":194
  * 
  * # superclass for all syntax errors
  * class LxmlSyntaxError(LxmlError, SyntaxError):             # <<<<<<<<<<<<<<
  *     u"""Base class for all syntax errors.
  *     """
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
-  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
@@ -177232,39 +177154,39 @@ PyMODINIT_FUNC PyInit_etree(void)
   PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_builtin_SyntaxError);
   __Pyx_GIVEREF(__pyx_builtin_SyntaxError);
   __pyx_t_7 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_504)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlSyntaxError, __pyx_n_s__LxmlSyntaxError, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_507)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlSyntaxError, __pyx_n_s__LxmlSyntaxError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__LxmlSyntaxError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 197; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__LxmlSyntaxError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 194; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":202
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":199
  *     pass
  * 
  * class C14NError(LxmlError):             # <<<<<<<<<<<<<<
  *     u"""Error during C14N serialisation.
  *     """
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
-  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_505)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__C14NError, __pyx_n_s__C14NError, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_508)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__C14NError, __pyx_n_s__C14NError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__C14NError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 202; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__C14NError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 199; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":239
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":236
  * 
  * cdef int _LIBXML_VERSION_INT
  * try:             # <<<<<<<<<<<<<<
@@ -177278,46 +177200,46 @@ PyMODINIT_FUNC PyInit_etree(void)
     __Pyx_XGOTREF(__pyx_t_2);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":241
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":238
  * try:
  *     _LIBXML_VERSION_INT = int(
  *         re.match(u'[0-9]+', (<unsigned char*>tree.xmlParserVersion).decode("ascii")).group(0))             # <<<<<<<<<<<<<<
  * except Exception:
  *     print u"Unknown libxml2 version: %s" % (<unsigned char*>tree.xmlParserVersion).decode("ascii")
  */
-      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __pyx_t_11 = ((unsigned char *)xmlParserVersion);
-      __pyx_t_7 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_11), 0, strlen(((char *)__pyx_t_11)), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_7 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_11), 0, strlen(((char *)__pyx_t_11)), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_INCREF(((PyObject *)__pyx_kp_u_506));
-      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_506));
-      __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_506));
+      __Pyx_INCREF(((PyObject *)__pyx_kp_u_509));
+      PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_509));
+      __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_509));
       __Pyx_INCREF(((PyObject *)__pyx_t_7));
       PyTuple_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_t_7));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-      __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__group); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__group); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_507), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 241; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_7 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_510), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_GOTREF(__pyx_t_6);
       PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
       __Pyx_GIVEREF(__pyx_t_7);
       __pyx_t_7 = 0;
-      __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-      __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_7); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
+      __pyx_t_5 = __Pyx_PyInt_AsInt(__pyx_t_7); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; __pyx_clineno = __LINE__; goto __pyx_L32_error;}
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __pyx_v_4lxml_5etree__LIBXML_VERSION_INT = __pyx_t_5;
     }
@@ -177332,7 +177254,7 @@ PyMODINIT_FUNC PyInit_etree(void)
     __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":242
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":239
  *     _LIBXML_VERSION_INT = int(
  *         re.match(u'[0-9]+', (<unsigned char*>tree.xmlParserVersion).decode("ascii")).group(0))
  * except Exception:             # <<<<<<<<<<<<<<
@@ -177342,12 +177264,12 @@ PyMODINIT_FUNC PyInit_etree(void)
     __pyx_t_5 = PyErr_ExceptionMatches(__pyx_builtin_Exception);
     if (__pyx_t_5) {
       __Pyx_AddTraceback("lxml.etree", __pyx_clineno, __pyx_lineno, __pyx_filename);
-      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 242; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
+      if (__Pyx_GetException(&__pyx_t_7, &__pyx_t_6, &__pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 239; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_GOTREF(__pyx_t_1);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":243
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":240
  *         re.match(u'[0-9]+', (<unsigned char*>tree.xmlParserVersion).decode("ascii")).group(0))
  * except Exception:
  *     print u"Unknown libxml2 version: %s" % (<unsigned char*>tree.xmlParserVersion).decode("ascii")             # <<<<<<<<<<<<<<
@@ -177355,15 +177277,15 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  */
       __pyx_t_11 = ((unsigned char *)xmlParserVersion);
-      __pyx_t_8 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_11), 0, strlen(((char *)__pyx_t_11)), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
+      __pyx_t_8 = ((PyObject *)__Pyx_decode_c_string(((char *)__pyx_t_11), 0, strlen(((char *)__pyx_t_11)), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_8));
-      __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_508), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
+      __pyx_t_9 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_511), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_9));
       __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
-      if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_9)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
+      if (__Pyx_PrintOne(0, ((PyObject *)__pyx_t_9)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L34_except_error;}
       __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":244
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":241
  * except Exception:
  *     print u"Unknown libxml2 version: %s" % (<unsigned char*>tree.xmlParserVersion).decode("ascii")
  *     _LIBXML_VERSION_INT = 0             # <<<<<<<<<<<<<<
@@ -177390,55 +177312,55 @@ PyMODINIT_FUNC PyInit_etree(void)
     __pyx_L39_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":246
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":243
  *     _LIBXML_VERSION_INT = 0
  * 
  * LIBXML_VERSION = __unpackIntVersion(_LIBXML_VERSION_INT)             # <<<<<<<<<<<<<<
  * LIBXML_COMPILED_VERSION = __unpackIntVersion(tree.LIBXML_VERSION)
  * LXML_VERSION = __unpackDottedVersion(tree.LXML_VERSION_STRING)
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree___unpackIntVersion(__pyx_v_4lxml_5etree__LIBXML_VERSION_INT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree___unpackIntVersion(__pyx_v_4lxml_5etree__LIBXML_VERSION_INT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__LIBXML_VERSION, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__LIBXML_VERSION, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":247
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":244
  * 
  * LIBXML_VERSION = __unpackIntVersion(_LIBXML_VERSION_INT)
  * LIBXML_COMPILED_VERSION = __unpackIntVersion(tree.LIBXML_VERSION)             # <<<<<<<<<<<<<<
  * LXML_VERSION = __unpackDottedVersion(tree.LXML_VERSION_STRING)
  * 
  */
-  __pyx_t_1 = __pyx_f_4lxml_5etree___unpackIntVersion(LIBXML_VERSION); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_5etree___unpackIntVersion(LIBXML_VERSION); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_478, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_481, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":248
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":245
  * LIBXML_VERSION = __unpackIntVersion(_LIBXML_VERSION_INT)
  * LIBXML_COMPILED_VERSION = __unpackIntVersion(tree.LIBXML_VERSION)
  * LXML_VERSION = __unpackDottedVersion(tree.LXML_VERSION_STRING)             # <<<<<<<<<<<<<<
  * 
  * __version__ = tree.LXML_VERSION_STRING.decode("ascii")
  */
-  __pyx_t_1 = __Pyx_PyBytes_FromString(LXML_VERSION_STRING); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBytes_FromString(LXML_VERSION_STRING); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-  __pyx_t_6 = __pyx_f_4lxml_5etree___unpackDottedVersion(((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __pyx_f_4lxml_5etree___unpackDottedVersion(((PyObject *)__pyx_t_1)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__LXML_VERSION, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__LXML_VERSION, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":250
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":247
  * LXML_VERSION = __unpackDottedVersion(tree.LXML_VERSION_STRING)
  * 
  * __version__ = tree.LXML_VERSION_STRING.decode("ascii")             # <<<<<<<<<<<<<<
  * 
  * 
  */
-  __pyx_t_6 = ((PyObject *)__Pyx_decode_c_string(LXML_VERSION_STRING, 0, strlen(LXML_VERSION_STRING), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = ((PyObject *)__Pyx_decode_c_string(LXML_VERSION_STRING, 0, strlen(LXML_VERSION_STRING), NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_6));
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s____version__, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s____version__, ((PyObject *)__pyx_t_6)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":576
@@ -177462,9 +177384,9 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_509));
-  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_u_509));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_509));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_u_512));
+  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_kp_u_512));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_512));
   PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
@@ -177473,9 +177395,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___RE_XML_ENCODING);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___RE_XML_ENCODING);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree___RE_XML_ENCODING = __pyx_t_1;
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":579
@@ -177488,9 +177409,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s__sub); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___REPLACE_XML_ENCODING, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree___REPLACE_XML_ENCODING = __pyx_t_1;
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/apihelpers.pxi":580
@@ -177503,9 +177423,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree___RE_XML_ENCODING, __pyx_n_s__match); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[4]; __pyx_lineno = 580; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___HAS_XML_ENCODING);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___HAS_XML_ENCODING);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___HAS_XML_ENCODING, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree___HAS_XML_ENCODING = __pyx_t_1;
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":8
@@ -177515,7 +177434,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""clear_error_log()
  * 
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_3clear_error_log, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_3clear_error_log, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__clear_error_log, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -177527,12 +177446,11 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  * cdef _BaseErrorLog _getGlobalErrorLog():
  */
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_512), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__RotatingErrorLog)), ((PyObject *)__pyx_k_tuple_515), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG, ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1));
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree___GLOBAL_ERROR_LOG = ((struct __pyx_obj_4lxml_5etree__BaseErrorLog *)__pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":526
@@ -177542,9 +177460,9 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""use_global_python_log(log)
  * 
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_5use_global_python_log, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_5use_global_python_log, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_483, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_486, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 526; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":652
@@ -177561,8 +177479,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(__pyx_builtin_object);
   PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_object);
   __Pyx_GIVEREF(__pyx_builtin_object);
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_515)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorLevels, __pyx_n_s__ErrorLevels, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_518)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorLevels, __pyx_n_s__ErrorLevels, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__ErrorLevels, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 652; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -177583,8 +177501,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(__pyx_builtin_object);
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_builtin_object);
   __Pyx_GIVEREF(__pyx_builtin_object);
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_516)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorDomains, __pyx_n_s__ErrorDomains, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_519)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorDomains, __pyx_n_s__ErrorDomains, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__ErrorDomains, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 655; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -177605,8 +177523,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(__pyx_builtin_object);
   PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_builtin_object);
   __Pyx_GIVEREF(__pyx_builtin_object);
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_517)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorTypes, __pyx_n_s__ErrorTypes, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_520)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_1), __pyx_n_s__ErrorTypes, __pyx_n_s__ErrorTypes, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__ErrorTypes, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -177627,8 +177545,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(__pyx_builtin_object);
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_builtin_object);
   __Pyx_GIVEREF(__pyx_builtin_object);
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_518)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__RelaxNGErrorTypes, __pyx_n_s__RelaxNGErrorTypes, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_521)) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__RelaxNGErrorTypes, __pyx_n_s__RelaxNGErrorTypes, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__RelaxNGErrorTypes, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -177642,11 +177560,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  * NONE=0
  * WARNING=1
  */
-  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_520));
+  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_523));
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___ERROR_LEVELS);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_520));
-  __pyx_v_4lxml_5etree___ERROR_LEVELS = ((PyObject *)__pyx_k_tuple_520);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_LEVELS, ((PyObject *)__pyx_k_tuple_523));
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_523));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":681
  * """,)
@@ -177655,470 +177572,465 @@ PyMODINIT_FUNC PyInit_etree(void)
  * NONE=0
  * PARSER=1
  */
-  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_522));
+  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_525));
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___ERROR_DOMAINS);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_522));
-  __pyx_v_4lxml_5etree___ERROR_DOMAINS = ((PyObject *)__pyx_k_tuple_522);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___ERROR_DOMAINS, ((PyObject *)__pyx_k_tuple_525));
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_525));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":713
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":715
  * """,)
  * 
  * cdef object __PARSER_ERROR_TYPES = (u"""\             # <<<<<<<<<<<<<<
  * ERR_OK=0
  * ERR_INTERNAL_ERROR=1
  */
-  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_534));
+  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_537));
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_534));
-  __pyx_v_4lxml_5etree___PARSER_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_534);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___PARSER_ERROR_TYPES, ((PyObject *)__pyx_k_tuple_537));
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_537));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1469
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1472
  * """,)
  * 
  * cdef object __RELAXNG_ERROR_TYPES = (u"""\             # <<<<<<<<<<<<<<
  * RELAXNG_OK=0
  * RELAXNG_ERR_MEMORY=1
  */
-  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_536));
+  __Pyx_INCREF(((PyObject *)__pyx_k_tuple_539));
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES);
-  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_536));
-  __pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES = ((PyObject *)__pyx_k_tuple_536);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___RELAXNG_ERROR_TYPES, ((PyObject *)__pyx_k_tuple_539));
+  __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_539));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1513
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlerror.pxi":1516
  * # --- END: GENERATED CONSTANTS ---
  * 
  * __initErrorConstants()             # <<<<<<<<<<<<<<
  */
   __pyx_f_4lxml_5etree___initErrorConstants();
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":472
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":469
  * 
  * cdef tuple _PREFIX_CACHE
  * _PREFIX_CACHE = __initPrefixCache()             # <<<<<<<<<<<<<<
  * 
  * cdef _Document _documentFactory(xmlDoc* c_doc, _BaseParser parser):
  */
-  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___initPrefixCache()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 472; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_5etree___initPrefixCache()); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree__PREFIX_CACHE));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree__PREFIX_CACHE));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__PREFIX_CACHE, ((PyObject*)__pyx_t_1));
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree__PREFIX_CACHE = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1280
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1277
  *         return _elementFactory(self._doc, c_node)
  * 
  *     def itersiblings(self, tag=None, *tags, preceding=False):             # <<<<<<<<<<<<<<
  *         u"""itersiblings(self, tag=None, *tags, preceding=False)
  * 
  */
-  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1280; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_75 = __pyx_t_1;
+  __pyx_k_78 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1323
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1320
  *         return ElementDepthFirstIterator(self, tags, inclusive=False)
  * 
  *     def iterchildren(self, tag=None, *tags, reversed=False):             # <<<<<<<<<<<<<<
  *         u"""iterchildren(self, tag=None, *tags, reversed=False)
  * 
  */
-  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1323; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_76 = __pyx_t_1;
+  __pyx_k_79 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1392
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1389
  *         return ElementDepthFirstIterator(self, tags)
  * 
  *     def itertext(self, tag=None, *tags, with_tail=True):             # <<<<<<<<<<<<<<
  *         u"""itertext(self, tag=None, *tags, with_tail=True)
  * 
  */
-  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1392; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1389; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_77 = __pyx_t_1;
+  __pyx_k_80 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1469
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1466
  * 
  *     def xpath(self, _path, *, namespaces=None, extensions=None,
  *               smart_strings=True, **_variables):             # <<<<<<<<<<<<<<
  *         u"""xpath(self, _path, namespaces=None, extensions=None, smart_strings=True, **_variables)
  * 
  */
-  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1469; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_78 = __pyx_t_1;
+  __pyx_k_81 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1636
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1633
  *                      for attr, value1, value2 in _FIND_PI_ATTRIBUTES(u' ' + self.text) }
  * 
  * cdef object _FIND_PI_ATTRIBUTES = re.compile(ur'\s+(\w+)\s*=\s*(?:\'([^\']*)\'|"([^"]*)")', re.U).findall             # <<<<<<<<<<<<<<
  * 
  * cdef class _Entity(__ContentOnlyElement):
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__U); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__U); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
-  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __Pyx_INCREF(((PyObject *)__pyx_kp_u_537));
-  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_537));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_537));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_u_540));
+  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_kp_u_540));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_540));
   PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
-  __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__findall); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1636; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s__findall); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1633; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES, __pyx_t_6);
   __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_v_4lxml_5etree__FIND_PI_ATTRIBUTES = __pyx_t_6;
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1843
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1840
  * 
  *     def write(self, file, *, encoding=None, method=u"xml",
  *               pretty_print=False, xml_declaration=None, with_tail=True,             # <<<<<<<<<<<<<<
  *               standalone=None, docstring=None, compression=0,
  *               exclusive=False, with_comments=True, inclusive_ns_prefixes=None):
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_93 = __pyx_t_6;
+  __pyx_k_96 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
-  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_94 = __pyx_t_6;
+  __pyx_k_97 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1845
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1842
  *               pretty_print=False, xml_declaration=None, with_tail=True,
  *               standalone=None, docstring=None, compression=0,
  *               exclusive=False, with_comments=True, inclusive_ns_prefixes=None):             # <<<<<<<<<<<<<<
  *         u"""write(self, file, encoding=None, method="xml",
  *                   pretty_print=False, xml_declaration=None, with_tail=True,
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_95 = __pyx_t_6;
+  __pyx_k_98 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
-  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1842; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_96 = __pyx_t_6;
+  __pyx_k_99 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2076
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2073
  * 
  *     def xpath(self, _path, *, namespaces=None, extensions=None,
  *               smart_strings=True, **_variables):             # <<<<<<<<<<<<<<
  *         u"""xpath(self, _path, namespaces=None, extensions=None, smart_strings=True, **_variables)
  * 
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_111 = __pyx_t_6;
+  __pyx_k_114 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2170
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2167
  *         XInclude()(self._context_node)
  * 
  *     def write_c14n(self, file, *, exclusive=False, with_comments=True,             # <<<<<<<<<<<<<<
  *                    compression=0, inclusive_ns_prefixes=None):
  *         u"""write_c14n(self, file, exclusive=False, with_comments=True,
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_112 = __pyx_t_6;
+  __pyx_k_115 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
-  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_113 = __pyx_t_6;
+  __pyx_k_116 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2628
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2625
  *     Iterates over the children of an element.
  *     """
  *     def __cinit__(self, _Element node not None, tag=None, *, reversed=False):             # <<<<<<<<<<<<<<
  *         cdef xmlNode* c_node
  *         _assertValidNode(node)
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_117 = __pyx_t_6;
+  __pyx_k_120 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2650
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2647
  *     You can pass the boolean keyword ``preceding`` to specify the direction.
  *     """
  *     def __cinit__(self, _Element node not None, tag=None, *, preceding=False):             # <<<<<<<<<<<<<<
  *         _assertValidNode(node)
  *         self._initTagMatcher(tag)
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2650; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_118 = __pyx_t_6;
+  __pyx_k_121 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2694
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2691
  *     cdef _Element _top_node
  *     cdef _MultiTagMatcher _matcher
  *     def __cinit__(self, _Element node not None, tag=None, *, inclusive=True):             # <<<<<<<<<<<<<<
  *         _assertValidNode(node)
  *         self._top_node  = node
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2694; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2691; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_119 = __pyx_t_6;
+  __pyx_k_122 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2757
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2754
  *     cdef object _nextEvent
  *     cdef _Element _start_element
  *     def __cinit__(self, _Element element not None, tag=None, *, with_tail=True):             # <<<<<<<<<<<<<<
  *         _assertValidNode(element)
  *         if with_tail:
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2757; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2754; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_120 = __pyx_t_6;
+  __pyx_k_123 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2802
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2799
  * # module-level API for ElementTree
  * 
  * def Element(_tag, attrib=None, nsmap=None, **_extra):             # <<<<<<<<<<<<<<
  *     u"""Element(_tag, attrib=None, nsmap=None, **_extra)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_7Element, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_7Element, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Element, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Element, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2815
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2812
  *                         attrib, nsmap, _extra)
  * 
  * def Comment(text=None):             # <<<<<<<<<<<<<<
  *     u"""Comment(text=None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_9Comment, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_9Comment, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Comment, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Comment, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2834
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2831
  *     return _elementFactory(doc, c_node)
  * 
  * def ProcessingInstruction(target, text=None):             # <<<<<<<<<<<<<<
  *     u"""ProcessingInstruction(target, text=None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_11ProcessingInstruction, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_11ProcessingInstruction, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_81, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_84, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2854
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2851
  *     return _elementFactory(doc, c_node)
  * 
  * PI = ProcessingInstruction             # <<<<<<<<<<<<<<
  * 
  * cdef class CDATA:
  */
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_81); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_84); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__PI, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__PI, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2870
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2867
  *         self._utf8_data = _utf8(data)
  * 
  * def Entity(name):             # <<<<<<<<<<<<<<
  *     u"""Entity(name)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_13Entity, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_13Entity, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Entity, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Entity, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2895
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2892
  *     return _elementFactory(doc, c_node)
  * 
  * def SubElement(_Element _parent not None, _tag,             # <<<<<<<<<<<<<<
  *                attrib=None, nsmap=None, **_extra):
  *     u"""SubElement(_parent, _tag, attrib=None, nsmap=None, **_extra)
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_15SubElement, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_15SubElement, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__SubElement, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__SubElement, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2904
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2901
  *     return _makeSubElement(_parent, _tag, None, None, attrib, nsmap, _extra)
  * 
  * def ElementTree(_Element element=None, *, file=None, _BaseParser parser=None):             # <<<<<<<<<<<<<<
  *     u"""ElementTree(element=None, file=None, parser=None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_17ElementTree, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_17ElementTree, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__ElementTree, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2904; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__ElementTree, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2901; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2929
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2926
  *     return _elementTreeFactory(doc, element)
  * 
  * def HTML(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""HTML(text, parser=None, base_url=None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_19HTML, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_19HTML, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__HTML, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2929; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__HTML, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2926; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2954
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2951
  *         return result_container.result
  * 
  * def XML(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""XML(text, parser=None, base_url=None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_21XML, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_21XML, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XML, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2954; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XML, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2951; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2982
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2979
  *         return result_container.result
  * 
  * def fromstring(text, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""fromstring(text, parser=None, base_url=None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_23fromstring, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_23fromstring, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstring, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstring, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3002
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2999
  *         return result_container.result
  * 
  * def fromstringlist(strings, _BaseParser parser=None):             # <<<<<<<<<<<<<<
  *     u"""fromstringlist(strings, parser=None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_25fromstringlist, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_25fromstringlist, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstringlist, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstringlist, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 2999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3019
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3016
  *     return parser.close()
  * 
  * def iselement(element):             # <<<<<<<<<<<<<<
  *     u"""iselement(element)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_27iselement, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_27iselement, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__iselement, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__iselement, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3026
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3023
  *     return isinstance(element, _Element) and (<_Element>element)._c_node is not NULL
  * 
  * def dump(_Element elem not None, *, bint pretty_print=True, with_tail=True):             # <<<<<<<<<<<<<<
  *     u"""dump(elem, pretty_print=True, with_tail=True)
  * 
  */
-  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_125 = __pyx_t_6;
+  __pyx_k_128 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_29dump, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_29dump, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__dump, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3026; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__dump, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3023; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3038
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3035
  *     sys.stdout.write(xml)
  * 
  * def tostring(element_or_tree, *, encoding=None, method=u"xml",             # <<<<<<<<<<<<<<
  *              xml_declaration=None, bint pretty_print=False, bint with_tail=True,
  *              standalone=None, doctype=None,
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_31tostring, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_31tostring, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__tostring, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__tostring, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3130
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3127
  *             python._fqtypename(element_or_tree)
  * 
  * def tostringlist(element_or_tree, *args, **kwargs):             # <<<<<<<<<<<<<<
  *     u"""tostringlist(element_or_tree, *args, **kwargs)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_33tostringlist, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_33tostringlist, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__tostringlist, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__tostringlist, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3127; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3141
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3138
  *     return [tostring(element_or_tree, *args, **kwargs)]
  * 
  * def tounicode(element_or_tree, *, method=u"xml", bint pretty_print=False,             # <<<<<<<<<<<<<<
  *               bint with_tail=True, doctype=None):
  *     u"""tounicode(element_or_tree, method="xml", pretty_print=False,
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_35tounicode, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_35tounicode, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__tounicode, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3141; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__tounicode, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3138; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3175
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3172
  *             type(element_or_tree)
  * 
  * def parse(source, _BaseParser parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""parse(source, parser=None, base_url=None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_37parse, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_37parse, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__parse, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__parse, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/readonlytree.pxi":186
@@ -178130,7 +178042,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[8]; __pyx_lineno = 186; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  __pyx_k_133 = __pyx_t_6;
+  __pyx_k_136 = __pyx_t_6;
   __Pyx_GIVEREF(__pyx_t_6);
   __pyx_t_6 = 0;
 
@@ -178141,9 +178053,9 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""set_element_class_lookup(lookup = None)
  * 
  */
-  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_39set_element_class_lookup, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_39set_element_class_lookup, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_179, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_182, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":563
@@ -178156,9 +178068,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_ParserBasedElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 563; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP, ((struct __pyx_obj_4lxml_5etree_ParserBasedElementClassLookup *)__pyx_t_6));
   __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_v_4lxml_5etree_DEFAULT_ELEMENT_CLASS_LOOKUP = ((struct __pyx_obj_4lxml_5etree_ParserBasedElementClassLookup *)__pyx_t_6);
   __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/classlookup.pxi":565
@@ -178166,7 +178077,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  * 
  * set_element_class_lookup(DEFAULT_ELEMENT_CLASS_LOOKUP)             # <<<<<<<<<<<<<<
  */
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_179); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s_182); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[9]; __pyx_lineno = 565; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
@@ -178195,8 +178106,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_573)) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlRegistryError, __pyx_n_s__LxmlRegistryError, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_576)) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__LxmlRegistryError, __pyx_n_s__LxmlRegistryError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__LxmlRegistryError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -178219,11 +178130,11 @@ PyMODINIT_FUNC PyInit_etree(void)
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_574)) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s_154, __pyx_n_s_154, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_577)) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s_157, __pyx_n_s_157, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_154, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_157, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
 
@@ -178237,9 +178148,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___FUNCTION_NAMESPACE_REGISTRIES));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___FUNCTION_NAMESPACE_REGISTRIES));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___FUNCTION_NAMESPACE_REGISTRIES, ((PyObject*)__pyx_t_1));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
-  __pyx_v_4lxml_5etree___FUNCTION_NAMESPACE_REGISTRIES = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/nsclasses.pxi":175
@@ -178249,7 +178159,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""FunctionNamespace(ns_uri)
  * 
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_41FunctionNamespace, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_41FunctionNamespace, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__FunctionNamespace, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[10]; __pyx_lineno = 175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -178271,7 +178181,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         if python.PY_VERSION_HEX >= 0x02050000:
  *             # Python >= 2.5 uses new style class exceptions
  */
-  __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10ParseError_1__init__, 0, __pyx_n_s_581, NULL, __pyx_n_s_498, ((PyObject *)__pyx_k_codeobj_579)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_10ParseError_1__init__, 0, __pyx_n_s_584, NULL, __pyx_n_s_501, ((PyObject *)__pyx_k_codeobj_582)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   if (PyObject_SetItem(__pyx_t_1, __pyx_n_s____init__, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
@@ -178290,8 +178200,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_582)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ParseError, __pyx_n_s__ParseError, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_585)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ParseError, __pyx_n_s__ParseError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__ParseError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -178308,9 +178218,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__LxmlSyntaxError);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__LxmlSyntaxError);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__LxmlSyntaxError, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree__LxmlSyntaxError = __pyx_t_1;
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":28
@@ -178323,9 +178232,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__ParseError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 28; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__ParseError);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__ParseError);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__ParseError, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree__ParseError = __pyx_t_1;
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":30
@@ -178344,8 +178252,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_583)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__XMLSyntaxError, __pyx_n_s__XMLSyntaxError, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_586)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__XMLSyntaxError, __pyx_n_s__XMLSyntaxError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLSyntaxError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 30; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -178368,8 +178276,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_7 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_584)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ParserError, __pyx_n_s__ParserError, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_1), "__doc__", ((PyObject *)__pyx_kp_s_587)) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_1), __pyx_n_s__ParserError, __pyx_n_s__ParserError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__ParserError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 35; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -178386,9 +178294,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree__ParserDictionaryContext)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT, ((struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)__pyx_t_1));
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree___GLOBAL_PARSER_CONTEXT = ((struct __pyx_obj_4lxml_5etree__ParserDictionaryContext *)__pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":186
@@ -178454,7 +178361,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_184 = __pyx_t_1;
+  __pyx_k_187 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178467,17 +178374,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_185 = __pyx_t_1;
+  __pyx_k_188 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_186 = __pyx_t_1;
+  __pyx_k_189 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_187 = __pyx_t_1;
+  __pyx_k_190 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178490,12 +178397,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_188 = __pyx_t_1;
+  __pyx_k_191 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1299; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_189 = __pyx_t_1;
+  __pyx_k_192 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178508,17 +178415,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_190 = __pyx_t_1;
+  __pyx_k_193 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_191 = __pyx_t_1;
+  __pyx_k_194 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_192 = __pyx_t_1;
+  __pyx_k_195 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178531,17 +178438,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_193 = __pyx_t_1;
+  __pyx_k_196 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_194 = __pyx_t_1;
+  __pyx_k_197 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_195 = __pyx_t_1;
+  __pyx_k_198 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178554,7 +178461,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_196 = __pyx_t_1;
+  __pyx_k_199 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178567,7 +178474,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_197 = __pyx_t_1;
+  __pyx_k_200 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178580,17 +178487,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_198 = __pyx_t_1;
+  __pyx_k_201 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_199 = __pyx_t_1;
+  __pyx_k_202 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1351; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_200 = __pyx_t_1;
+  __pyx_k_203 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178603,12 +178510,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_201 = __pyx_t_1;
+  __pyx_k_204 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1352; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_202 = __pyx_t_1;
+  __pyx_k_205 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178621,17 +178528,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_203 = __pyx_t_1;
+  __pyx_k_206 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_204 = __pyx_t_1;
+  __pyx_k_207 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_205 = __pyx_t_1;
+  __pyx_k_208 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178644,17 +178551,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_206 = __pyx_t_1;
+  __pyx_k_209 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_207 = __pyx_t_1;
+  __pyx_k_210 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1354; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_208 = __pyx_t_1;
+  __pyx_k_211 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178667,7 +178574,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1355; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_209 = __pyx_t_1;
+  __pyx_k_212 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178690,9 +178597,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XMLParser)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER, ((struct __pyx_obj_4lxml_5etree_XMLParser *)__pyx_t_1));
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree___DEFAULT_XML_PARSER = ((struct __pyx_obj_4lxml_5etree_XMLParser *)__pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parser.pxi":1381
@@ -178714,7 +178620,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""set_default_parser(parser=None)
  * 
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_43set_default_parser, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_43set_default_parser, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__set_default_parser, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -178726,7 +178632,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"get_default_parser()"
  *     return __GLOBAL_PARSER_CONTEXT.getDefaultParser()
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_45get_default_parser, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_45get_default_parser, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__get_default_parser, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1399; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -178749,7 +178655,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_210 = __pyx_t_1;
+  __pyx_k_213 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178762,17 +178668,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_211 = __pyx_t_1;
+  __pyx_k_214 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_212 = __pyx_t_1;
+  __pyx_k_215 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1447; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_213 = __pyx_t_1;
+  __pyx_k_216 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178785,7 +178691,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1448; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_214 = __pyx_t_1;
+  __pyx_k_217 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178798,12 +178704,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_215 = __pyx_t_1;
+  __pyx_k_218 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
   __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1449; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_k_216 = __pyx_t_1;
+  __pyx_k_219 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
 
@@ -178817,9 +178723,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_HTMLParser)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[5]; __pyx_lineno = 1466; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER, ((struct __pyx_obj_4lxml_5etree_HTMLParser *)__pyx_t_1));
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER = ((struct __pyx_obj_4lxml_5etree_HTMLParser *)__pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/parsertarget.pxi":4
@@ -178841,9 +178746,8 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree_inspect_getargspec);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree_inspect_getargspec);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_inspect_getargspec, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_5etree_inspect_getargspec = __pyx_t_1;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
@@ -178864,7 +178768,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         self.result = result
  * 
  */
-  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19_TargetParserResult_1__init__, 0, __pyx_n_s_591, NULL, __pyx_n_s_498, ((PyObject *)__pyx_k_codeobj_589)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_19_TargetParserResult_1__init__, 0, __pyx_n_s_594, NULL, __pyx_n_s_501, ((PyObject *)__pyx_k_codeobj_592)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (PyObject_SetItem(__pyx_t_7, __pyx_n_s____init__, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -178881,36 +178785,60 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_INCREF(__pyx_builtin_Exception);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_builtin_Exception);
   __Pyx_GIVEREF(__pyx_builtin_Exception);
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s___TargetParserResult, __pyx_n_s___TargetParserResult, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s___TargetParserResult, __pyx_n_s___TargetParserResult, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s___TargetParserResult, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[13]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":3
- * # XML serialization and output functions
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":4
+ * 
+ * cdef object GzipFile
+ * from gzip import GzipFile             # <<<<<<<<<<<<<<
+ * 
+ * class SerialisationError(LxmlError):
+ */
+  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
+  __Pyx_INCREF(((PyObject *)__pyx_n_s__GzipFile));
+  PyList_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_n_s__GzipFile));
+  __Pyx_GIVEREF(((PyObject *)__pyx_n_s__GzipFile));
+  __pyx_t_6 = __Pyx_Import(((PyObject *)__pyx_n_s__gzip), ((PyObject *)__pyx_t_7), 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __pyx_t_7 = __Pyx_ImportFrom(__pyx_t_6, __pyx_n_s__GzipFile); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
+  __Pyx_INCREF(__pyx_t_7);
+  __Pyx_XGOTREF(__pyx_v_4lxml_5etree_GzipFile);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_GzipFile, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/serializer.pxi":6
+ * from gzip import GzipFile
  * 
  * class SerialisationError(LxmlError):             # <<<<<<<<<<<<<<
  *     u"""A libxml2 error that occurred during serialisation.
  *     """
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_t_6 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_592)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__SerialisationError, __pyx_n_s__SerialisationError, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
+  __pyx_t_7 = 0;
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_6), "__doc__", ((PyObject *)__pyx_kp_s_595)) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_6), __pyx_n_s__SerialisationError, __pyx_n_s__SerialisationError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__SerialisationError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__SerialisationError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[6]; __pyx_lineno = 6; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":369
  * 
@@ -178919,16 +178847,16 @@ PyMODINIT_FUNC PyInit_etree(void)
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
  *                  compact=True, resolve_entities=True, remove_comments=False,
  */
-  __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_280 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_281 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_283 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_284 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":370
  *     def __init__(self, source, events=(u"end",), *, tag=None,
@@ -178937,21 +178865,21 @@ PyMODINIT_FUNC PyInit_etree(void)
  *                  compact=True, resolve_entities=True, remove_comments=False,
  *                  remove_pis=False, strip_cdata=True, encoding=None,
  */
-  __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_282 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_283 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_284 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_285 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_286 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 370; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_287 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":371
  *                  attribute_defaults=False, dtd_validation=False,
@@ -178960,21 +178888,21 @@ PyMODINIT_FUNC PyInit_etree(void)
  *                  remove_pis=False, strip_cdata=True, encoding=None,
  *                  html=False, huge_tree=False, XMLSchema schema=None):
  */
-  __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_285 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_286 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_287 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_288 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_289 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 371; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_290 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":372
  *                  load_dtd=False, no_network=True, remove_blank_text=False,
@@ -178983,16 +178911,16 @@ PyMODINIT_FUNC PyInit_etree(void)
  *                  html=False, huge_tree=False, XMLSchema schema=None):
  *         cdef _IterparseContext context
  */
-  __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_288 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_289 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_291 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 372; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_292 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/iterparse.pxi":373
  *                  compact=True, resolve_entities=True, remove_comments=False,
@@ -179001,16 +178929,16 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         cdef _IterparseContext context
  *         cdef char* c_encoding
  */
-  __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_290 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
-  __pyx_t_7 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  __pyx_k_291 = __pyx_t_7;
-  __Pyx_GIVEREF(__pyx_t_7);
-  __pyx_t_7 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_293 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
+  __pyx_t_6 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[14]; __pyx_lineno = 373; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_k_294 = __pyx_t_6;
+  __Pyx_GIVEREF(__pyx_t_6);
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":3
  * cdef object _find_id_attributes
@@ -179019,10 +178947,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""XMLID(text, parser=None, base_url=None)
  * 
  */
-  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_47XMLID, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLID, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_47XMLID, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLID, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":24
  *     return (root, dic)
@@ -179031,10 +178959,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""XMLDTDID(text, parser=None, base_url=None)
  * 
  */
-  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_49XMLDTDID, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLDTDID, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_49XMLDTDID, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLDTDID, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlid.pxi":44
  *         return (root, _IDDict(root))
@@ -179043,10 +178971,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""parseid(source, parser=None)
  * 
  */
-  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_51parseid, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__parseid, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_51parseid, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__parseid, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[15]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xinclude.pxi":5
  * from lxml.includes cimport xinclude
@@ -179055,22 +178983,22 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Error during XInclude processing.
  *     """
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_t_6 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_600)) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XIncludeError, __pyx_n_s__XIncludeError, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
+  __pyx_t_7 = 0;
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_6), "__doc__", ((PyObject *)__pyx_kp_s_603)) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_6), __pyx_n_s__XIncludeError, __pyx_n_s__XIncludeError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XIncludeError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XIncludeError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[16]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":3
  * # functions for tree cleanup and removing elements from subtrees
@@ -179079,10 +179007,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""cleanup_namespaces(tree_or_element)
  * 
  */
-  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_53cleanup_namespaces, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__cleanup_namespaces, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_53cleanup_namespaces, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__cleanup_namespaces, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":13
  *     _removeUnusedNamespaceDeclarations(element._c_node)
@@ -179091,10 +179019,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""strip_attributes(tree_or_element, *attribute_names)
  * 
  */
-  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_55strip_attributes, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_attributes, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_55strip_attributes, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_attributes, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":54
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)
@@ -179103,10 +179031,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""strip_elements(tree_or_element, *tag_names, with_tail=True)
  * 
  */
-  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_57strip_elements, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_elements, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_57strip_elements, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_elements, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 54; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/cleanup.pxi":132
  * 
@@ -179115,10 +179043,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""strip_tags(tree_or_element, *tag_names)
  * 
  */
-  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_59strip_tags, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_tags, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_59strip_tags, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__strip_tags, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[17]; __pyx_lineno = 132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":3
  * # support for extension functions in XPath and XSLT
@@ -179127,22 +179055,22 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Base class of all XPath errors.
  *     """
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_t_6 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_610)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathError, __pyx_n_s__XPathError, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
+  __pyx_t_7 = 0;
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_6), "__doc__", ((PyObject *)__pyx_kp_s_613)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_6), __pyx_n_s__XPathError, __pyx_n_s__XPathError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":8
  *     pass
@@ -179151,22 +179079,22 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Error during XPath evaluation.
  *     """
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_t_6 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_611)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathEvalError, __pyx_n_s__XPathEvalError, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
+  __pyx_t_7 = 0;
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_6), "__doc__", ((PyObject *)__pyx_kp_s_614)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_6), __pyx_n_s__XPathEvalError, __pyx_n_s__XPathEvalError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathEvalError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathEvalError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":13
  *     pass
@@ -179175,22 +179103,22 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Internal error looking up an XPath extension function.
  *     """
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_t_6 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_612)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathFunctionError, __pyx_n_s__XPathFunctionError, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
+  __pyx_t_7 = 0;
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_6), "__doc__", ((PyObject *)__pyx_kp_s_615)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_6), __pyx_n_s__XPathFunctionError, __pyx_n_s__XPathFunctionError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathFunctionError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathFunctionError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 13; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":18
  *     pass
@@ -179199,22 +179127,22 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Error handling an XPath result.
  *     """
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathEvalError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
-  __pyx_t_6 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_7), "__doc__", ((PyObject *)__pyx_kp_s_613)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathResultError, __pyx_n_s__XPathResultError, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
+  __pyx_t_7 = 0;
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_6), "__doc__", ((PyObject *)__pyx_kp_s_616)) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_6), __pyx_n_s__XPathResultError, __pyx_n_s__XPathResultError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathResultError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathResultError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 18; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":369
  * # and doesn't give us access to them ...
@@ -179223,85 +179151,84 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     b"Ok",
  *     b"Number encoding",
  */
-  __pyx_t_7 = PyList_New(24); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
+  __pyx_t_6 = PyList_New(24); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 369; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
   __Pyx_INCREF(((PyObject *)__pyx_n_b__Ok));
-  PyList_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_n_b__Ok));
+  PyList_SET_ITEM(__pyx_t_6, 0, ((PyObject *)__pyx_n_b__Ok));
   __Pyx_GIVEREF(((PyObject *)__pyx_n_b__Ok));
-  __Pyx_INCREF(((PyObject *)__pyx_kp_b_614));
-  PyList_SET_ITEM(__pyx_t_7, 1, ((PyObject *)__pyx_kp_b_614));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_614));
-  __Pyx_INCREF(((PyObject *)__pyx_kp_b_615));
-  PyList_SET_ITEM(__pyx_t_7, 2, ((PyObject *)__pyx_kp_b_615));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_615));
-  __Pyx_INCREF(((PyObject *)__pyx_kp_b_616));
-  PyList_SET_ITEM(__pyx_t_7, 3, ((PyObject *)__pyx_kp_b_616));
-  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_616));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_617));
-  PyList_SET_ITEM(__pyx_t_7, 4, ((PyObject *)__pyx_kp_b_617));
+  PyList_SET_ITEM(__pyx_t_6, 1, ((PyObject *)__pyx_kp_b_617));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_617));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_618));
-  PyList_SET_ITEM(__pyx_t_7, 5, ((PyObject *)__pyx_kp_b_618));
+  PyList_SET_ITEM(__pyx_t_6, 2, ((PyObject *)__pyx_kp_b_618));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_618));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_619));
-  PyList_SET_ITEM(__pyx_t_7, 6, ((PyObject *)__pyx_kp_b_619));
+  PyList_SET_ITEM(__pyx_t_6, 3, ((PyObject *)__pyx_kp_b_619));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_619));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_620));
-  PyList_SET_ITEM(__pyx_t_7, 7, ((PyObject *)__pyx_kp_b_620));
+  PyList_SET_ITEM(__pyx_t_6, 4, ((PyObject *)__pyx_kp_b_620));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_620));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_621));
-  PyList_SET_ITEM(__pyx_t_7, 8, ((PyObject *)__pyx_kp_b_621));
+  PyList_SET_ITEM(__pyx_t_6, 5, ((PyObject *)__pyx_kp_b_621));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_621));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_622));
-  PyList_SET_ITEM(__pyx_t_7, 9, ((PyObject *)__pyx_kp_b_622));
+  PyList_SET_ITEM(__pyx_t_6, 6, ((PyObject *)__pyx_kp_b_622));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_622));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_623));
-  PyList_SET_ITEM(__pyx_t_7, 10, ((PyObject *)__pyx_kp_b_623));
+  PyList_SET_ITEM(__pyx_t_6, 7, ((PyObject *)__pyx_kp_b_623));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_623));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_624));
-  PyList_SET_ITEM(__pyx_t_7, 11, ((PyObject *)__pyx_kp_b_624));
+  PyList_SET_ITEM(__pyx_t_6, 8, ((PyObject *)__pyx_kp_b_624));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_624));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_625));
-  PyList_SET_ITEM(__pyx_t_7, 12, ((PyObject *)__pyx_kp_b_625));
+  PyList_SET_ITEM(__pyx_t_6, 9, ((PyObject *)__pyx_kp_b_625));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_625));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_626));
-  PyList_SET_ITEM(__pyx_t_7, 13, ((PyObject *)__pyx_kp_b_626));
+  PyList_SET_ITEM(__pyx_t_6, 10, ((PyObject *)__pyx_kp_b_626));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_626));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_627));
-  PyList_SET_ITEM(__pyx_t_7, 14, ((PyObject *)__pyx_kp_b_627));
+  PyList_SET_ITEM(__pyx_t_6, 11, ((PyObject *)__pyx_kp_b_627));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_627));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_628));
-  PyList_SET_ITEM(__pyx_t_7, 15, ((PyObject *)__pyx_kp_b_628));
+  PyList_SET_ITEM(__pyx_t_6, 12, ((PyObject *)__pyx_kp_b_628));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_628));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_629));
-  PyList_SET_ITEM(__pyx_t_7, 16, ((PyObject *)__pyx_kp_b_629));
+  PyList_SET_ITEM(__pyx_t_6, 13, ((PyObject *)__pyx_kp_b_629));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_629));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_630));
-  PyList_SET_ITEM(__pyx_t_7, 17, ((PyObject *)__pyx_kp_b_630));
+  PyList_SET_ITEM(__pyx_t_6, 14, ((PyObject *)__pyx_kp_b_630));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_630));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_631));
-  PyList_SET_ITEM(__pyx_t_7, 18, ((PyObject *)__pyx_kp_b_631));
+  PyList_SET_ITEM(__pyx_t_6, 15, ((PyObject *)__pyx_kp_b_631));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_631));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_632));
-  PyList_SET_ITEM(__pyx_t_7, 19, ((PyObject *)__pyx_kp_b_632));
+  PyList_SET_ITEM(__pyx_t_6, 16, ((PyObject *)__pyx_kp_b_632));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_632));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_633));
-  PyList_SET_ITEM(__pyx_t_7, 20, ((PyObject *)__pyx_kp_b_633));
+  PyList_SET_ITEM(__pyx_t_6, 17, ((PyObject *)__pyx_kp_b_633));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_633));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_634));
-  PyList_SET_ITEM(__pyx_t_7, 21, ((PyObject *)__pyx_kp_b_634));
+  PyList_SET_ITEM(__pyx_t_6, 18, ((PyObject *)__pyx_kp_b_634));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_634));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_635));
-  PyList_SET_ITEM(__pyx_t_7, 22, ((PyObject *)__pyx_kp_b_635));
+  PyList_SET_ITEM(__pyx_t_6, 19, ((PyObject *)__pyx_kp_b_635));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_635));
   __Pyx_INCREF(((PyObject *)__pyx_kp_b_636));
-  PyList_SET_ITEM(__pyx_t_7, 23, ((PyObject *)__pyx_kp_b_636));
+  PyList_SET_ITEM(__pyx_t_6, 20, ((PyObject *)__pyx_kp_b_636));
   __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_636));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_637));
+  PyList_SET_ITEM(__pyx_t_6, 21, ((PyObject *)__pyx_kp_b_637));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_637));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_638));
+  PyList_SET_ITEM(__pyx_t_6, 22, ((PyObject *)__pyx_kp_b_638));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_638));
+  __Pyx_INCREF(((PyObject *)__pyx_kp_b_639));
+  PyList_SET_ITEM(__pyx_t_6, 23, ((PyObject *)__pyx_kp_b_639));
+  __Pyx_GIVEREF(((PyObject *)__pyx_kp_b_639));
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES));
-  __Pyx_GIVEREF(((PyObject *)__pyx_t_7));
-  __pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES = ((PyObject*)__pyx_t_7);
-  __pyx_t_7 = 0;
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES, ((PyObject*)__pyx_t_6));
+  __Pyx_GIVEREF(((PyObject *)__pyx_t_6));
+  __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":425
  * 
@@ -179310,10 +179237,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     u"""Extension(module, function_mapping=None, ns=None)
  * 
  */
-  __pyx_t_7 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_61Extension, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Extension, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __pyx_t_6 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_61Extension, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Extension, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 425; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":731
  *         return self._parent
@@ -179322,8 +179249,8 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     # we need to use a Python class here, bytes cannot be C-subclassed
  *     # in Pyrex/Cython
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":734
  *     # we need to use a Python class here, bytes cannot be C-subclassed
@@ -179332,10 +179259,10 @@ PyMODINIT_FUNC PyInit_etree(void)
  *         return self._parent
  * 
  */
-  __pyx_t_6 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20_ElementStringResult_1getparent, 0, __pyx_n_s_642, NULL, __pyx_n_s_498, ((PyObject *)__pyx_k_codeobj_641)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
-  if (PyObject_SetItem(__pyx_t_7, __pyx_n_s__getparent, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+  __pyx_t_7 = __Pyx_CyFunction_NewEx(&__pyx_mdef_4lxml_5etree_20_ElementStringResult_1getparent, 0, __pyx_n_s_645, NULL, __pyx_n_s_501, ((PyObject *)__pyx_k_codeobj_644)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
+  if (PyObject_SetItem(__pyx_t_6, __pyx_n_s__getparent, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 734; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/extensions.pxi":731
  *         return self._parent
@@ -179344,17 +179271,17 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     # we need to use a Python class here, bytes cannot be C-subclassed
  *     # in Pyrex/Cython
  */
-  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_INCREF(((PyObject *)((PyObject*)(&PyBytes_Type))));
-  PyTuple_SET_ITEM(__pyx_t_6, 0, ((PyObject *)((PyObject*)(&PyBytes_Type))));
+  PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)((PyObject*)(&PyBytes_Type))));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)(&PyBytes_Type))));
-  __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_7), __pyx_n_s_329, __pyx_n_s_329, __pyx_n_s_498); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_6), __pyx_n_s_332, __pyx_n_s_332, __pyx_n_s_501); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_329, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_332, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[7]; __pyx_lineno = 731; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":3
  * # XPath evaluation
@@ -179363,26 +179290,26 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     pass
  * 
  */
-  __pyx_t_7 = PyDict_New(); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(((PyObject *)__pyx_t_7));
+  __pyx_t_6 = PyDict_New(); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(((PyObject *)__pyx_t_6));
   __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlSyntaxError); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_7 = __Pyx_GetModuleGlobalName(__pyx_n_s__XPathError); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_9);
   PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
   __pyx_t_1 = 0;
-  __pyx_t_6 = 0;
-  __pyx_t_6 = __Pyx_CreateClass(((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_7), __pyx_n_s__XPathSyntaxError, __pyx_n_s__XPathSyntaxError, __pyx_n_s_498); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_7 = 0;
+  __pyx_t_7 = __Pyx_CreateClass(((PyObject *)__pyx_t_9), ((PyObject *)__pyx_t_6), __pyx_n_s__XPathSyntaxError, __pyx_n_s__XPathSyntaxError, __pyx_n_s_501); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
   __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathSyntaxError, __pyx_t_6) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathSyntaxError, __pyx_t_7) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 3; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":11
  * cdef object _XPATH_SYNTAX_ERRORS
@@ -179391,8 +179318,8 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     xmlerror.XML_XPATH_UNFINISHED_LITERAL_ERROR,
  *     xmlerror.XML_XPATH_VARIABLE_REF_ERROR,
  */
-  __pyx_t_7 = PyInt_FromLong(XML_XPATH_NUMBER_ERROR); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
+  __pyx_t_6 = PyInt_FromLong(XML_XPATH_NUMBER_ERROR); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":12
  * _XPATH_SYNTAX_ERRORS = (
@@ -179401,8 +179328,8 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     xmlerror.XML_XPATH_VARIABLE_REF_ERROR,
  *     xmlerror.XML_XPATH_INVALID_PREDICATE_ERROR,
  */
-  __pyx_t_6 = PyInt_FromLong(XML_XPATH_UNFINISHED_LITERAL_ERROR); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_7 = PyInt_FromLong(XML_XPATH_UNFINISHED_LITERAL_ERROR); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 12; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":13
  *     xmlerror.XML_XPATH_NUMBER_ERROR,
@@ -179445,10 +179372,10 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(__pyx_t_12);
   __pyx_t_13 = PyTuple_New(6); if (unlikely(!__pyx_t_13)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 11; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_13);
-  PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_7);
-  __Pyx_GIVEREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_6);
   __Pyx_GIVEREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_13, 1, __pyx_t_7);
+  __Pyx_GIVEREF(__pyx_t_7);
   PyTuple_SET_ITEM(__pyx_t_13, 2, __pyx_t_9);
   __Pyx_GIVEREF(__pyx_t_9);
   PyTuple_SET_ITEM(__pyx_t_13, 3, __pyx_t_1);
@@ -179457,16 +179384,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GIVEREF(__pyx_t_8);
   PyTuple_SET_ITEM(__pyx_t_13, 5, __pyx_t_12);
   __Pyx_GIVEREF(__pyx_t_12);
-  __pyx_t_7 = 0;
   __pyx_t_6 = 0;
+  __pyx_t_7 = 0;
   __pyx_t_9 = 0;
   __pyx_t_1 = 0;
   __pyx_t_8 = 0;
   __pyx_t_12 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS, ((PyObject *)__pyx_t_13));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_13));
-  __pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS = ((PyObject *)__pyx_t_13);
   __pyx_t_13 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":21
@@ -179526,8 +179452,8 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     xmlerror.XML_XPATH_INVALID_CTXT_SIZE,
  *     xmlerror.XML_XPATH_INVALID_CTXT_POSITION
  */
-  __pyx_t_6 = PyInt_FromLong(XML_XPATH_INVALID_ARITY); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_6);
+  __pyx_t_7 = PyInt_FromLong(XML_XPATH_INVALID_ARITY); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 26; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_7);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":27
  *     xmlerror.XML_XPATH_INVALID_TYPE,
@@ -179536,8 +179462,8 @@ PyMODINIT_FUNC PyInit_etree(void)
  *     xmlerror.XML_XPATH_INVALID_CTXT_POSITION
  * )
  */
-  __pyx_t_7 = PyInt_FromLong(XML_XPATH_INVALID_CTXT_SIZE); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
+  __pyx_t_6 = PyInt_FromLong(XML_XPATH_INVALID_CTXT_SIZE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 27; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":28
  *     xmlerror.XML_XPATH_INVALID_ARITY,
@@ -179560,10 +179486,10 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GIVEREF(__pyx_t_1);
   PyTuple_SET_ITEM(__pyx_t_15, 4, __pyx_t_9);
   __Pyx_GIVEREF(__pyx_t_9);
-  PyTuple_SET_ITEM(__pyx_t_15, 5, __pyx_t_6);
-  __Pyx_GIVEREF(__pyx_t_6);
-  PyTuple_SET_ITEM(__pyx_t_15, 6, __pyx_t_7);
+  PyTuple_SET_ITEM(__pyx_t_15, 5, __pyx_t_7);
   __Pyx_GIVEREF(__pyx_t_7);
+  PyTuple_SET_ITEM(__pyx_t_15, 6, __pyx_t_6);
+  __Pyx_GIVEREF(__pyx_t_6);
   PyTuple_SET_ITEM(__pyx_t_15, 7, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_13 = 0;
@@ -179571,16 +179497,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_8 = 0;
   __pyx_t_1 = 0;
   __pyx_t_9 = 0;
-  __pyx_t_6 = 0;
   __pyx_t_7 = 0;
+  __pyx_t_6 = 0;
   __pyx_t_14 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__XPATH_EVAL_ERRORS);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__XPATH_EVAL_ERRORS);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__XPATH_EVAL_ERRORS, ((PyObject *)__pyx_t_15));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_15));
-  __pyx_v_4lxml_5etree__XPATH_EVAL_ERRORS = ((PyObject *)__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":122
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":121
  * 
  * cdef bint _XPATH_VERSION_WARNING_REQUIRED
  * if _LIBXML_VERSION_INT == 20627:             # <<<<<<<<<<<<<<
@@ -179590,7 +179515,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   __pyx_t_10 = ((__pyx_v_4lxml_5etree__LIBXML_VERSION_INT == 20627) != 0);
   if (__pyx_t_10) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":123
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":122
  * cdef bint _XPATH_VERSION_WARNING_REQUIRED
  * if _LIBXML_VERSION_INT == 20627:
  *     _XPATH_VERSION_WARNING_REQUIRED = 1             # <<<<<<<<<<<<<<
@@ -179602,7 +179527,7 @@ PyMODINIT_FUNC PyInit_etree(void)
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":125
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":124
  *     _XPATH_VERSION_WARNING_REQUIRED = 1
  * else:
  *     _XPATH_VERSION_WARNING_REQUIRED = 0             # <<<<<<<<<<<<<<
@@ -179613,155 +179538,153 @@ PyMODINIT_FUNC PyInit_etree(void)
   }
   __pyx_L42:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":268
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":267
  *     cdef _Element _element
  *     def __init__(self, _Element element not None, *, namespaces=None,
  *                  extensions=None, regexp=True, smart_strings=True):             # <<<<<<<<<<<<<<
  *         cdef xpath.xmlXPathContext* xpathCtxt
  *         cdef int ns_register_status
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_335 = __pyx_t_15;
+  __pyx_k_338 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 268; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_336 = __pyx_t_15;
+  __pyx_k_339 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":341
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":340
  *     """
  *     def __init__(self, _ElementTree etree not None, *, namespaces=None,
  *                  extensions=None, regexp=True, smart_strings=True):             # <<<<<<<<<<<<<<
  *         XPathElementEvaluator.__init__(
  *             self, etree._context_node, namespaces=namespaces,
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_338 = __pyx_t_15;
+  __pyx_k_341 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 340; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_339 = __pyx_t_15;
+  __pyx_k_342 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":385
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":384
  * 
  * def XPathEvaluator(etree_or_element, *, namespaces=None, extensions=None,
  *                    regexp=True, smart_strings=True):             # <<<<<<<<<<<<<<
  *     u"""XPathEvaluator(etree_or_element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
  * 
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_340 = __pyx_t_15;
+  __pyx_k_343 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 385; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_341 = __pyx_t_15;
+  __pyx_k_344 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":384
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":383
  * 
  * 
  * def XPathEvaluator(etree_or_element, *, namespaces=None, extensions=None,             # <<<<<<<<<<<<<<
  *                    regexp=True, smart_strings=True):
  *     u"""XPathEvaluator(etree_or_element, namespaces=None, extensions=None, regexp=True, smart_strings=True)
  */
-  __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_63XPathEvaluator, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_63XPathEvaluator, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathEvaluator, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XPathEvaluator, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 383; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":427
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":426
  * 
  *     def __init__(self, path, *, namespaces=None, extensions=None,
  *                  regexp=True, smart_strings=True):             # <<<<<<<<<<<<<<
  *         cdef xpath.xmlXPathContext* xpathCtxt
  *         _XPathEvaluatorBase.__init__(self, namespaces, extensions,
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_342 = __pyx_t_15;
+  __pyx_k_345 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 426; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_343 = __pyx_t_15;
+  __pyx_k_346 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":482
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":481
  * cdef object _replace_strings
  * cdef object _find_namespaces
  * _replace_strings = re.compile(b'("[^"]*")|(\'[^\']*\')').sub             # <<<<<<<<<<<<<<
  * _find_namespaces = re.compile(b'({[^}]+})').findall
  * 
  */
-  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_647), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_650), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
-  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s__sub); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s__sub); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__replace_strings);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__replace_strings);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__replace_strings, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
-  __pyx_v_4lxml_5etree__replace_strings = __pyx_t_15;
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":483
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":482
  * cdef object _find_namespaces
  * _replace_strings = re.compile(b'("[^"]*")|(\'[^\']*\')').sub
  * _find_namespaces = re.compile(b'({[^}]+})').findall             # <<<<<<<<<<<<<<
  * 
  * cdef class ETXPath(XPath):
  */
-  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_649), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_652), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
-  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s__findall); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 483; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s__findall); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__find_namespaces);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__find_namespaces);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__find_namespaces, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
-  __pyx_v_4lxml_5etree__find_namespaces = __pyx_t_15;
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":494
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":493
  *     you pass ``smart_strings=False``.
  *     """
  *     def __init__(self, path, *, extensions=None, regexp=True,             # <<<<<<<<<<<<<<
  *                  smart_strings=True):
  *         path, namespaces = self._nsextract_path(path)
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 493; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_344 = __pyx_t_15;
+  __pyx_k_347 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":495
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xpath.pxi":494
  *     """
  *     def __init__(self, path, *, extensions=None, regexp=True,
  *                  smart_strings=True):             # <<<<<<<<<<<<<<
  *         path, namespaces = self._nsextract_path(path)
  *         XPath.__init__(self, path, namespaces=namespaces,
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 495; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[18]; __pyx_lineno = 494; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_345 = __pyx_t_15;
+  __pyx_k_348 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -179776,15 +179699,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_650)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTError, __pyx_n_s__XSLTError, __pyx_n_s_498); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_653)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTError, __pyx_n_s__XSLTError, __pyx_n_s_501); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 5; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
@@ -179800,15 +179723,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_651)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTParseError, __pyx_n_s__XSLTParseError, __pyx_n_s_498); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_654)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTParseError, __pyx_n_s__XSLTParseError, __pyx_n_s_501); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTParseError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
@@ -179824,15 +179747,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_652)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTApplyError, __pyx_n_s__XSLTApplyError, __pyx_n_s_498); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_655)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTApplyError, __pyx_n_s__XSLTApplyError, __pyx_n_s_501); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTApplyError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
@@ -179848,15 +179771,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_653)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTSaveError, __pyx_n_s__XSLTSaveError, __pyx_n_s_498); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_656)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTSaveError, __pyx_n_s__XSLTSaveError, __pyx_n_s_501); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTSaveError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 20; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
@@ -179872,15 +179795,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__XSLTError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_654)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTExtensionError, __pyx_n_s__XSLTExtensionError, __pyx_n_s_498); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_657)) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_15), __pyx_n_s__XSLTExtensionError, __pyx_n_s__XSLTExtensionError, __pyx_n_s_501); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__XSLTExtensionError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 25; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
@@ -179894,7 +179817,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_15 = __pyx_f_4lxml_5etree___unpackIntVersion(LIBXSLT_VERSION); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_479, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_482, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 31; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":32
@@ -180031,145 +179954,144 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   PyType_Modified(__pyx_ptype_4lxml_5etree_XSLTAccessControl);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":266
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":265
  *         <xslt.xmlXPathFunction>_xpath_function_call)
  * 
  * cdef dict EMPTY_DICT = {}             # <<<<<<<<<<<<<<
  * 
  * @cython.final
  */
-  __pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 265; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree_EMPTY_DICT));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree_EMPTY_DICT));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree_EMPTY_DICT, ((PyObject*)__pyx_t_15));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_15));
-  __pyx_v_4lxml_5etree_EMPTY_DICT = ((PyObject*)__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":366
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":365
  *         self._c_style = NULL
  * 
  *     def __init__(self, xslt_input, *, extensions=None, regexp=True,             # <<<<<<<<<<<<<<
  *                  access_control=None):
  *         cdef xslt.xsltStylesheet* c_style
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 366; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 365; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_355 = __pyx_t_15;
+  __pyx_k_358 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":432
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":431
  * 
  *     @staticmethod
  *     def strparam(strval):             # <<<<<<<<<<<<<<
  *         u"""strparam(strval)
  * 
  */
-  __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_7strparam, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_7strparam, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  __pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
-  if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s__strparam, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s__strparam, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   PyType_Modified(__pyx_ptype_4lxml_5etree_XSLT);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":431
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":430
  *             return self._error_log.copy()
  * 
  *     @staticmethod             # <<<<<<<<<<<<<<
  *     def strparam(strval):
  *         u"""strparam(strval)
  */
-  __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s__strparam); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s__strparam); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  __pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 430; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
-  if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s__strparam, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 432; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s__strparam, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 431; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   PyType_Modified(__pyx_ptype_4lxml_5etree_XSLT);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":446
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":445
  * 
  *     @staticmethod
  *     def set_global_max_depth(int max_depth):             # <<<<<<<<<<<<<<
  *         u"""set_global_max_depth(max_depth)
  * 
  */
-  __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_9set_global_max_depth, NULL, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyCFunction_NewEx(&__pyx_mdef_4lxml_5etree_4XSLT_9set_global_max_depth, NULL, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  __pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
-  if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s_660, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s_663, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   PyType_Modified(__pyx_ptype_4lxml_5etree_XSLT);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":445
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":444
  *         return _XSLTQuotedStringParam(strval)
  * 
  *     @staticmethod             # <<<<<<<<<<<<<<
  *     def set_global_max_depth(int max_depth):
  *         u"""set_global_max_depth(max_depth)
  */
-  __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s_660); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_GetNameInClass((PyObject *)__pyx_ptype_4lxml_5etree_XSLT, __pyx_n_s_663); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  __pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyObject_Call(__pyx_builtin_staticmethod, ((PyObject *)__pyx_t_14), NULL); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 444; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
-  if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s_660, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 446; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem((PyObject *)__pyx_ptype_4lxml_5etree_XSLT->tp_dict, __pyx_n_s_663, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 445; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   PyType_Modified(__pyx_ptype_4lxml_5etree_XSLT);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":465
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":464
  *         xslt.xsltMaxDepth = max_depth
  * 
  *     def apply(self, _input, *, profile_run=False, **kw):             # <<<<<<<<<<<<<<
  *         u"""apply(self, _input,  profile_run=False, **kw)
  * 
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 465; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 464; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_361 = __pyx_t_15;
+  __pyx_k_364 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":486
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":485
  *         return _copyXSLT(self)
  * 
  *     def __call__(self, _input, *, profile_run=False, **kw):             # <<<<<<<<<<<<<<
  *         u"""__call__(self, _input, profile_run=False, **kw)
  * 
  */
-  __pyx_t_15 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 486; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_362 = __pyx_t_15;
+  __pyx_k_365 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":824
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":823
  * # functions like "output" and "write" are a potential security risk, but we
  * # rely on the user to configure XSLTAccessControl as needed
  * xslt.xsltRegisterAllExtras()             # <<<<<<<<<<<<<<
@@ -180178,7 +180100,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   xsltRegisterAllExtras();
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":827
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":826
  * 
  * # enable EXSLT support for XSLT
  * xslt.exsltRegisterAll()             # <<<<<<<<<<<<<<
@@ -180187,55 +180109,52 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   exsltRegisterAll();
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":833
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":832
  * # XSLT PI support
  * 
  * cdef object _RE_PI_HREF = re.compile(ur'\s+href\s*=\s*(?:\'([^\']*)\'|"([^"]*)")')             # <<<<<<<<<<<<<<
  * cdef object _FIND_PI_HREF = _RE_PI_HREF.findall
  * cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
  */
-  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree_re, __pyx_n_s__compile); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_662), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = PyObject_Call(__pyx_t_15, ((PyObject *)__pyx_k_tuple_665), NULL); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 832; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__RE_PI_HREF);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__RE_PI_HREF);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
-  __pyx_v_4lxml_5etree__RE_PI_HREF = __pyx_t_14;
   __pyx_t_14 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":834
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":833
  * 
  * cdef object _RE_PI_HREF = re.compile(ur'\s+href\s*=\s*(?:\'([^\']*)\'|"([^"]*)")')
  * cdef object _FIND_PI_HREF = _RE_PI_HREF.findall             # <<<<<<<<<<<<<<
  * cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
  * cdef XPath __findStylesheetByID = None
  */
-  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_n_s__findall); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_n_s__findall); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__FIND_PI_HREF);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__FIND_PI_HREF);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__FIND_PI_HREF, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
-  __pyx_v_4lxml_5etree__FIND_PI_HREF = __pyx_t_14;
   __pyx_t_14 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":835
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":834
  * cdef object _RE_PI_HREF = re.compile(ur'\s+href\s*=\s*(?:\'([^\']*)\'|"([^"]*)")')
  * cdef object _FIND_PI_HREF = _RE_PI_HREF.findall
  * cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub             # <<<<<<<<<<<<<<
  * cdef XPath __findStylesheetByID = None
  * 
  */
-  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_n_s__sub); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_5etree__RE_PI_HREF, __pyx_n_s__sub); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[2]; __pyx_lineno = 834; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
   __Pyx_XGOTREF(__pyx_v_4lxml_5etree__REPLACE_PI_HREF);
-  __Pyx_DECREF(__pyx_v_4lxml_5etree__REPLACE_PI_HREF);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__REPLACE_PI_HREF, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
-  __pyx_v_4lxml_5etree__REPLACE_PI_HREF = __pyx_t_14;
   __pyx_t_14 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":836
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xslt.pxi":835
  * cdef object _FIND_PI_HREF = _RE_PI_HREF.findall
  * cdef object _REPLACE_PI_HREF = _RE_PI_HREF.sub
  * cdef XPath __findStylesheetByID = None             # <<<<<<<<<<<<<<
@@ -180244,9 +180163,8 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __Pyx_INCREF(Py_None);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree___findStylesheetByID));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree___findStylesheetByID, ((struct __pyx_obj_4lxml_5etree_XPath *)Py_None));
   __Pyx_GIVEREF(Py_None);
-  __pyx_v_4lxml_5etree___findStylesheetByID = ((struct __pyx_obj_4lxml_5etree_XPath *)Py_None);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xsltext.pxi":23
  * 
@@ -180257,12 +180175,12 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_14 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_k_376 = __pyx_t_14;
+  __pyx_k_379 = __pyx_t_14;
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
   __pyx_t_14 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 23; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_k_377 = __pyx_t_14;
+  __pyx_k_380 = __pyx_t_14;
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
 
@@ -180275,36 +180193,36 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_14 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_k_380 = __pyx_t_14;
+  __pyx_k_383 = __pyx_t_14;
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
   __pyx_t_14 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[19]; __pyx_lineno = 75; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_k_381 = __pyx_t_14;
+  __pyx_k_384 = __pyx_t_14;
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3236
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":3233
  * # Validation
  * 
  * class DocumentInvalid(LxmlError):             # <<<<<<<<<<<<<<
  *     u"""Validation error.
  * 
  */
-  __pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = PyDict_New(); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
-  __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_663)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DocumentInvalid, __pyx_n_s__DocumentInvalid, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_666)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s__DocumentInvalid, __pyx_n_s__DocumentInvalid, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__DocumentInvalid, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__DocumentInvalid, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
 
@@ -180319,15 +180237,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_664)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDError, __pyx_n_s__DTDError, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_667)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDError, __pyx_n_s__DTDError, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__DTDError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
@@ -180343,15 +180261,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_665)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDParseError, __pyx_n_s__DTDParseError, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_668)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDParseError, __pyx_n_s__DTDParseError, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__DTDParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
@@ -180367,15 +180285,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__DTDError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_666)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDValidateError, __pyx_n_s__DTDValidateError, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_669)) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s__DTDValidateError, __pyx_n_s__DTDValidateError, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__DTDValidateError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[20]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
@@ -180391,15 +180309,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_667)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__RelaxNGError, __pyx_n_s__RelaxNGError, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_670)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s__RelaxNGError, __pyx_n_s__RelaxNGError, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__RelaxNGError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
@@ -180415,15 +180333,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_668)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__RelaxNGParseError, __pyx_n_s__RelaxNGParseError, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_671)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s__RelaxNGParseError, __pyx_n_s__RelaxNGParseError, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__RelaxNGParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
@@ -180439,16 +180357,16 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__RelaxNGError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_669)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s_412, __pyx_n_s_412, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_672)) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s_415, __pyx_n_s_415, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_412, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_415, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[21]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
 
@@ -180463,15 +180381,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_670)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__XMLSchemaError, __pyx_n_s__XMLSchemaError, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_673)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s__XMLSchemaError, __pyx_n_s__XMLSchemaError, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLSchemaError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
@@ -180487,15 +180405,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_671)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s__XMLSchemaParseError, __pyx_n_s__XMLSchemaParseError, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_674)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s__XMLSchemaParseError, __pyx_n_s__XMLSchemaParseError, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__XMLSchemaParseError, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
@@ -180511,16 +180429,16 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_14));
   __pyx_t_15 = __Pyx_GetModuleGlobalName(__pyx_n_s__XMLSchemaError); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15);
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_672)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_14), __pyx_n_s_419, __pyx_n_s_419, __pyx_n_s_498); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_14), "__doc__", ((PyObject *)__pyx_kp_s_675)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_14), __pyx_n_s_422, __pyx_n_s_422, __pyx_n_s_501); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_419, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_422, __pyx_t_15) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
 
@@ -180543,16 +180461,15 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
-  if (PyDict_SetItem(__pyx_t_15, ((PyObject *)__pyx_n_u__xs), ((PyObject *)__pyx_kp_u_415)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_15, ((PyObject *)__pyx_n_u__xs), ((PyObject *)__pyx_kp_u_418)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 24; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (PyDict_SetItem(__pyx_t_14, ((PyObject *)__pyx_n_s__namespaces), ((PyObject *)__pyx_t_15)) < 0) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
-  __pyx_t_15 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_674), ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_15 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_5etree_XPath)), ((PyObject *)__pyx_k_tuple_677), ((PyObject *)__pyx_t_14)); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 22; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
   __Pyx_DECREF(((PyObject *)__pyx_t_14)); __pyx_t_14 = 0;
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_5etree__check_for_default_attributes));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_5etree__check_for_default_attributes));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_5etree__check_for_default_attributes, ((struct __pyx_obj_4lxml_5etree_XPath *)__pyx_t_15));
   __Pyx_GIVEREF(__pyx_t_15);
-  __pyx_v_4lxml_5etree__check_for_default_attributes = ((struct __pyx_obj_4lxml_5etree_XPath *)__pyx_t_15);
   __pyx_t_15 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/xmlschema.pxi":44
@@ -180564,7 +180481,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_15 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[22]; __pyx_lineno = 44; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_15);
-  __pyx_k_414 = __pyx_t_15;
+  __pyx_k_417 = __pyx_t_15;
   __Pyx_GIVEREF(__pyx_t_15);
   __pyx_t_15 = 0;
 
@@ -180579,15 +180496,15 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__LxmlError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_675)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s__SchematronError, __pyx_n_s__SchematronError, __pyx_n_s_498); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_678)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_15), __pyx_n_s__SchematronError, __pyx_n_s__SchematronError, __pyx_n_s_501); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
   if (PyDict_SetItem(__pyx_d, __pyx_n_s__SchematronError, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 4; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
@@ -180603,16 +180520,16 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__SchematronError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_676)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s_424, __pyx_n_s_424, __pyx_n_s_498); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_679)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_15), __pyx_n_s_427, __pyx_n_s_427, __pyx_n_s_501); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_424, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_427, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 9; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
 
@@ -180627,16 +180544,16 @@ PyMODINIT_FUNC PyInit_etree(void)
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
   __pyx_t_14 = __Pyx_GetModuleGlobalName(__pyx_n_s__SchematronError); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_7);
-  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14);
+  __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_6);
+  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_14);
   __Pyx_GIVEREF(__pyx_t_14);
   __pyx_t_14 = 0;
-  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_677)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_7), ((PyObject *)__pyx_t_15), __pyx_n_s_429, __pyx_n_s_429, __pyx_n_s_498); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItemString(((PyObject *)__pyx_t_15), "__doc__", ((PyObject *)__pyx_kp_s_680)) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_14 = __Pyx_CreateClass(((PyObject *)__pyx_t_6), ((PyObject *)__pyx_t_15), __pyx_n_s_432, __pyx_n_s_432, __pyx_n_s_501); if (unlikely(!__pyx_t_14)) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_14);
-  __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_429, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_432, __pyx_t_14) < 0) {__pyx_filename = __pyx_f[23]; __pyx_lineno = 14; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
 
@@ -180657,7 +180574,7 @@ PyMODINIT_FUNC PyInit_etree(void)
  */
   __pyx_t_15 = PyDict_New(); if (unlikely(!__pyx_t_15)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_15));
-  if (PyDict_SetItem(__pyx_t_15, ((PyObject *)__pyx_kp_u_678), ((PyObject *)__pyx_kp_u_679)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_15, ((PyObject *)__pyx_kp_u_681), ((PyObject *)__pyx_kp_u_682)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (PyDict_SetItem(__pyx_d, __pyx_n_s____test__, ((PyObject *)__pyx_t_15)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(((PyObject *)__pyx_t_15)); __pyx_t_15 = 0;
   if (__Pyx_RegisterCleanup()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;};
@@ -180699,159 +180616,161 @@ static void __Pyx_CleanupGlobals(void) {
   Py_CLEAR(__pyx_k_slice_12);
   Py_CLEAR(__pyx_k_tuple_13);
   Py_CLEAR(__pyx_k_slice_14);
+  Py_CLEAR(__pyx_k_tuple_30);
   Py_CLEAR(__pyx_k_tuple_31);
-  Py_CLEAR(__pyx_k_tuple_33);
   Py_CLEAR(__pyx_k_tuple_34);
-  Py_CLEAR(__pyx_k_tuple_50);
-  Py_CLEAR(__pyx_k_tuple_58);
-  Py_CLEAR(__pyx_k_tuple_98);
-  Py_CLEAR(__pyx_k_tuple_100);
-  Py_CLEAR(__pyx_k_tuple_102);
-  Py_CLEAR(__pyx_k_slice_106);
-  Py_CLEAR(__pyx_k_slice_108);
+  Py_CLEAR(__pyx_k_tuple_36);
+  Py_CLEAR(__pyx_k_tuple_37);
+  Py_CLEAR(__pyx_k_tuple_53);
+  Py_CLEAR(__pyx_k_tuple_61);
+  Py_CLEAR(__pyx_k_tuple_101);
+  Py_CLEAR(__pyx_k_tuple_103);
+  Py_CLEAR(__pyx_k_tuple_105);
   Py_CLEAR(__pyx_k_slice_109);
-  Py_CLEAR(__pyx_k_slice_110);
-  Py_CLEAR(__pyx_k_tuple_121);
-  Py_CLEAR(__pyx_k_tuple_122);
-  Py_CLEAR(__pyx_k_tuple_126);
-  Py_CLEAR(__pyx_k_tuple_127);
-  Py_CLEAR(__pyx_k_tuple_128);
-  Py_CLEAR(__pyx_k_slice_134);
-  Py_CLEAR(__pyx_k_tuple_141);
-  Py_CLEAR(__pyx_k_slice_152);
-  Py_CLEAR(__pyx_k_tuple_219);
-  Py_CLEAR(__pyx_k_tuple_229);
-  Py_CLEAR(__pyx_k_tuple_249);
-  Py_CLEAR(__pyx_k_tuple_251);
-  Py_CLEAR(__pyx_k_tuple_253);
+  Py_CLEAR(__pyx_k_slice_111);
+  Py_CLEAR(__pyx_k_slice_112);
+  Py_CLEAR(__pyx_k_slice_113);
+  Py_CLEAR(__pyx_k_tuple_124);
+  Py_CLEAR(__pyx_k_tuple_125);
+  Py_CLEAR(__pyx_k_tuple_129);
+  Py_CLEAR(__pyx_k_tuple_130);
+  Py_CLEAR(__pyx_k_tuple_131);
+  Py_CLEAR(__pyx_k_slice_137);
+  Py_CLEAR(__pyx_k_tuple_144);
+  Py_CLEAR(__pyx_k_slice_155);
+  Py_CLEAR(__pyx_k_tuple_222);
+  Py_CLEAR(__pyx_k_tuple_232);
+  Py_CLEAR(__pyx_k_tuple_252);
+  Py_CLEAR(__pyx_k_tuple_254);
   Py_CLEAR(__pyx_k_tuple_256);
-  Py_CLEAR(__pyx_k_tuple_261);
-  Py_CLEAR(__pyx_k_slice_262);
-  Py_CLEAR(__pyx_k_slice_263);
-  Py_CLEAR(__pyx_k_tuple_265);
+  Py_CLEAR(__pyx_k_tuple_259);
+  Py_CLEAR(__pyx_k_tuple_264);
+  Py_CLEAR(__pyx_k_slice_265);
   Py_CLEAR(__pyx_k_slice_266);
   Py_CLEAR(__pyx_k_tuple_268);
-  Py_CLEAR(__pyx_k_tuple_269);
+  Py_CLEAR(__pyx_k_slice_269);
+  Py_CLEAR(__pyx_k_tuple_271);
   Py_CLEAR(__pyx_k_tuple_272);
-  Py_CLEAR(__pyx_k_tuple_274);
-  Py_CLEAR(__pyx_k_tuple_278);
-  Py_CLEAR(__pyx_k_tuple_279);
-  Py_CLEAR(__pyx_k_tuple_293);
-  Py_CLEAR(__pyx_k_tuple_295);
+  Py_CLEAR(__pyx_k_tuple_275);
+  Py_CLEAR(__pyx_k_tuple_277);
+  Py_CLEAR(__pyx_k_tuple_281);
+  Py_CLEAR(__pyx_k_tuple_282);
   Py_CLEAR(__pyx_k_tuple_296);
-  Py_CLEAR(__pyx_k_tuple_297);
   Py_CLEAR(__pyx_k_tuple_298);
   Py_CLEAR(__pyx_k_tuple_299);
+  Py_CLEAR(__pyx_k_tuple_300);
   Py_CLEAR(__pyx_k_tuple_301);
   Py_CLEAR(__pyx_k_tuple_302);
-  Py_CLEAR(__pyx_k_slice_306);
-  Py_CLEAR(__pyx_k_slice_307);
-  Py_CLEAR(__pyx_k_tuple_318);
-  Py_CLEAR(__pyx_k_tuple_319);
-  Py_CLEAR(__pyx_k_tuple_320);
-  Py_CLEAR(__pyx_k_tuple_332);
-  Py_CLEAR(__pyx_k_slice_347);
-  Py_CLEAR(__pyx_k_tuple_348);
-  Py_CLEAR(__pyx_k_tuple_357);
+  Py_CLEAR(__pyx_k_tuple_304);
+  Py_CLEAR(__pyx_k_tuple_305);
+  Py_CLEAR(__pyx_k_slice_309);
+  Py_CLEAR(__pyx_k_slice_310);
+  Py_CLEAR(__pyx_k_tuple_321);
+  Py_CLEAR(__pyx_k_tuple_322);
+  Py_CLEAR(__pyx_k_tuple_323);
+  Py_CLEAR(__pyx_k_tuple_335);
+  Py_CLEAR(__pyx_k_slice_350);
+  Py_CLEAR(__pyx_k_tuple_351);
   Py_CLEAR(__pyx_k_tuple_360);
-  Py_CLEAR(__pyx_k_tuple_367);
-  Py_CLEAR(__pyx_k_tuple_384);
-  Py_CLEAR(__pyx_k_tuple_394);
-  Py_CLEAR(__pyx_k_tuple_396);
-  Py_CLEAR(__pyx_k_tuple_401);
-  Py_CLEAR(__pyx_k_tuple_402);
+  Py_CLEAR(__pyx_k_tuple_363);
+  Py_CLEAR(__pyx_k_tuple_370);
+  Py_CLEAR(__pyx_k_tuple_387);
+  Py_CLEAR(__pyx_k_tuple_397);
+  Py_CLEAR(__pyx_k_tuple_399);
   Py_CLEAR(__pyx_k_tuple_404);
+  Py_CLEAR(__pyx_k_tuple_405);
   Py_CLEAR(__pyx_k_tuple_407);
-  Py_CLEAR(__pyx_k_tuple_423);
-  Py_CLEAR(__pyx_k_tuple_425);
+  Py_CLEAR(__pyx_k_tuple_410);
+  Py_CLEAR(__pyx_k_tuple_426);
   Py_CLEAR(__pyx_k_tuple_428);
-  Py_CLEAR(__pyx_k_tuple_485);
-  Py_CLEAR(__pyx_k_tuple_494);
-  Py_CLEAR(__pyx_k_tuple_495);
-  Py_CLEAR(__pyx_k_codeobj_496);
-  Py_CLEAR(__pyx_k_tuple_499);
-  Py_CLEAR(__pyx_k_codeobj_500);
-  Py_CLEAR(__pyx_k_tuple_501);
-  Py_CLEAR(__pyx_k_tuple_507);
-  Py_CLEAR(__pyx_k_codeobj_510);
-  Py_CLEAR(__pyx_k_tuple_512);
-  Py_CLEAR(__pyx_k_tuple_513);
-  Py_CLEAR(__pyx_k_codeobj_514);
-  Py_CLEAR(__pyx_k_tuple_520);
-  Py_CLEAR(__pyx_k_tuple_522);
-  Py_CLEAR(__pyx_k_tuple_534);
-  Py_CLEAR(__pyx_k_tuple_536);
-  Py_CLEAR(__pyx_k_tuple_538);
-  Py_CLEAR(__pyx_k_codeobj_539);
-  Py_CLEAR(__pyx_k_tuple_540);
-  Py_CLEAR(__pyx_k_codeobj_541);
-  Py_CLEAR(__pyx_k_tuple_542);
-  Py_CLEAR(__pyx_k_codeobj_543);
-  Py_CLEAR(__pyx_k_tuple_544);
-  Py_CLEAR(__pyx_k_codeobj_545);
-  Py_CLEAR(__pyx_k_tuple_546);
-  Py_CLEAR(__pyx_k_codeobj_547);
-  Py_CLEAR(__pyx_k_tuple_548);
-  Py_CLEAR(__pyx_k_codeobj_549);
-  Py_CLEAR(__pyx_k_tuple_550);
-  Py_CLEAR(__pyx_k_codeobj_551);
-  Py_CLEAR(__pyx_k_tuple_552);
-  Py_CLEAR(__pyx_k_codeobj_553);
-  Py_CLEAR(__pyx_k_tuple_554);
-  Py_CLEAR(__pyx_k_codeobj_555);
-  Py_CLEAR(__pyx_k_tuple_556);
-  Py_CLEAR(__pyx_k_codeobj_557);
-  Py_CLEAR(__pyx_k_tuple_558);
-  Py_CLEAR(__pyx_k_codeobj_559);
-  Py_CLEAR(__pyx_k_tuple_560);
-  Py_CLEAR(__pyx_k_codeobj_561);
-  Py_CLEAR(__pyx_k_tuple_562);
-  Py_CLEAR(__pyx_k_codeobj_563);
-  Py_CLEAR(__pyx_k_tuple_564);
-  Py_CLEAR(__pyx_k_codeobj_565);
-  Py_CLEAR(__pyx_k_tuple_566);
-  Py_CLEAR(__pyx_k_codeobj_567);
-  Py_CLEAR(__pyx_k_tuple_568);
-  Py_CLEAR(__pyx_k_codeobj_569);
-  Py_CLEAR(__pyx_k_tuple_570);
-  Py_CLEAR(__pyx_k_codeobj_571);
-  Py_CLEAR(__pyx_k_tuple_575);
-  Py_CLEAR(__pyx_k_codeobj_576);
+  Py_CLEAR(__pyx_k_tuple_431);
+  Py_CLEAR(__pyx_k_tuple_488);
+  Py_CLEAR(__pyx_k_tuple_497);
+  Py_CLEAR(__pyx_k_tuple_498);
+  Py_CLEAR(__pyx_k_codeobj_499);
+  Py_CLEAR(__pyx_k_tuple_502);
+  Py_CLEAR(__pyx_k_codeobj_503);
+  Py_CLEAR(__pyx_k_tuple_504);
+  Py_CLEAR(__pyx_k_tuple_510);
+  Py_CLEAR(__pyx_k_codeobj_513);
+  Py_CLEAR(__pyx_k_tuple_515);
+  Py_CLEAR(__pyx_k_tuple_516);
+  Py_CLEAR(__pyx_k_codeobj_517);
+  Py_CLEAR(__pyx_k_tuple_523);
+  Py_CLEAR(__pyx_k_tuple_525);
+  Py_CLEAR(__pyx_k_tuple_537);
+  Py_CLEAR(__pyx_k_tuple_539);
+  Py_CLEAR(__pyx_k_tuple_541);
+  Py_CLEAR(__pyx_k_codeobj_542);
+  Py_CLEAR(__pyx_k_tuple_543);
+  Py_CLEAR(__pyx_k_codeobj_544);
+  Py_CLEAR(__pyx_k_tuple_545);
+  Py_CLEAR(__pyx_k_codeobj_546);
+  Py_CLEAR(__pyx_k_tuple_547);
+  Py_CLEAR(__pyx_k_codeobj_548);
+  Py_CLEAR(__pyx_k_tuple_549);
+  Py_CLEAR(__pyx_k_codeobj_550);
+  Py_CLEAR(__pyx_k_tuple_551);
+  Py_CLEAR(__pyx_k_codeobj_552);
+  Py_CLEAR(__pyx_k_tuple_553);
+  Py_CLEAR(__pyx_k_codeobj_554);
+  Py_CLEAR(__pyx_k_tuple_555);
+  Py_CLEAR(__pyx_k_codeobj_556);
+  Py_CLEAR(__pyx_k_tuple_557);
+  Py_CLEAR(__pyx_k_codeobj_558);
+  Py_CLEAR(__pyx_k_tuple_559);
+  Py_CLEAR(__pyx_k_codeobj_560);
+  Py_CLEAR(__pyx_k_tuple_561);
+  Py_CLEAR(__pyx_k_codeobj_562);
+  Py_CLEAR(__pyx_k_tuple_563);
+  Py_CLEAR(__pyx_k_codeobj_564);
+  Py_CLEAR(__pyx_k_tuple_565);
+  Py_CLEAR(__pyx_k_codeobj_566);
+  Py_CLEAR(__pyx_k_tuple_567);
+  Py_CLEAR(__pyx_k_codeobj_568);
+  Py_CLEAR(__pyx_k_tuple_569);
+  Py_CLEAR(__pyx_k_codeobj_570);
+  Py_CLEAR(__pyx_k_tuple_571);
+  Py_CLEAR(__pyx_k_codeobj_572);
+  Py_CLEAR(__pyx_k_tuple_573);
+  Py_CLEAR(__pyx_k_codeobj_574);
   Py_CLEAR(__pyx_k_tuple_578);
   Py_CLEAR(__pyx_k_codeobj_579);
-  Py_CLEAR(__pyx_k_tuple_585);
-  Py_CLEAR(__pyx_k_codeobj_586);
-  Py_CLEAR(__pyx_k_codeobj_587);
+  Py_CLEAR(__pyx_k_tuple_581);
+  Py_CLEAR(__pyx_k_codeobj_582);
   Py_CLEAR(__pyx_k_tuple_588);
   Py_CLEAR(__pyx_k_codeobj_589);
-  Py_CLEAR(__pyx_k_tuple_593);
-  Py_CLEAR(__pyx_k_codeobj_594);
+  Py_CLEAR(__pyx_k_codeobj_590);
+  Py_CLEAR(__pyx_k_tuple_591);
+  Py_CLEAR(__pyx_k_codeobj_592);
   Py_CLEAR(__pyx_k_tuple_596);
   Py_CLEAR(__pyx_k_codeobj_597);
-  Py_CLEAR(__pyx_k_tuple_598);
-  Py_CLEAR(__pyx_k_codeobj_599);
+  Py_CLEAR(__pyx_k_tuple_599);
+  Py_CLEAR(__pyx_k_codeobj_600);
   Py_CLEAR(__pyx_k_tuple_601);
   Py_CLEAR(__pyx_k_codeobj_602);
   Py_CLEAR(__pyx_k_tuple_604);
   Py_CLEAR(__pyx_k_codeobj_605);
-  Py_CLEAR(__pyx_k_tuple_606);
-  Py_CLEAR(__pyx_k_codeobj_607);
-  Py_CLEAR(__pyx_k_tuple_608);
-  Py_CLEAR(__pyx_k_codeobj_609);
-  Py_CLEAR(__pyx_k_tuple_637);
-  Py_CLEAR(__pyx_k_codeobj_638);
+  Py_CLEAR(__pyx_k_tuple_607);
+  Py_CLEAR(__pyx_k_codeobj_608);
+  Py_CLEAR(__pyx_k_tuple_609);
+  Py_CLEAR(__pyx_k_codeobj_610);
+  Py_CLEAR(__pyx_k_tuple_611);
+  Py_CLEAR(__pyx_k_codeobj_612);
   Py_CLEAR(__pyx_k_tuple_640);
   Py_CLEAR(__pyx_k_codeobj_641);
   Py_CLEAR(__pyx_k_tuple_643);
   Py_CLEAR(__pyx_k_codeobj_644);
-  Py_CLEAR(__pyx_k_tuple_647);
-  Py_CLEAR(__pyx_k_tuple_649);
-  Py_CLEAR(__pyx_k_tuple_655);
-  Py_CLEAR(__pyx_k_codeobj_656);
+  Py_CLEAR(__pyx_k_tuple_646);
+  Py_CLEAR(__pyx_k_codeobj_647);
+  Py_CLEAR(__pyx_k_tuple_650);
+  Py_CLEAR(__pyx_k_tuple_652);
   Py_CLEAR(__pyx_k_tuple_658);
   Py_CLEAR(__pyx_k_codeobj_659);
-  Py_CLEAR(__pyx_k_tuple_662);
-  Py_CLEAR(__pyx_k_tuple_674);
+  Py_CLEAR(__pyx_k_tuple_661);
+  Py_CLEAR(__pyx_k_codeobj_662);
+  Py_CLEAR(__pyx_k_tuple_665);
+  Py_CLEAR(__pyx_k_tuple_677);
   #if CYTHON_COMPILING_IN_PYPY || PY_MAJOR_VERSION >= 3
 Py_CLEAR(__pyx_print);
 Py_CLEAR(__pyx_print_kwargs);
@@ -180884,6 +180803,7 @@ static void __pyx_module_cleanup(CYTHON_UNUSED PyObject *self) {
   Py_CLEAR(__pyx_v_4lxml_5etree__XPATH_SYNTAX_ERRORS);
   Py_CLEAR(__pyx_v_4lxml_5etree_LIBXML2_XPATH_ERROR_MESSAGES);
   Py_CLEAR(__pyx_v_4lxml_5etree__find_id_attributes);
+  Py_CLEAR(__pyx_v_4lxml_5etree_GzipFile);
   Py_CLEAR(__pyx_v_4lxml_5etree_inspect_getargspec);
   Py_CLEAR(__pyx_v_4lxml_5etree___DEFAULT_HTML_PARSER);
   Py_CLEAR(__pyx_v_4lxml_5etree___DEFAULT_XML_PARSER);
@@ -180910,7 +180830,6 @@ static void __pyx_module_cleanup(CYTHON_UNUSED PyObject *self) {
   Py_CLEAR(__pyx_v_4lxml_5etree__FILENAME_ENCODING);
   Py_CLEAR(__pyx_v_4lxml_5etree_EMPTY_READ_ONLY_DICT);
   Py_CLEAR(__pyx_v_4lxml_5etree_ITER_EMPTY);
-  Py_CLEAR(__pyx_v_4lxml_5etree_gzip);
   Py_CLEAR(__pyx_v_4lxml_5etree_re);
   Py_CLEAR(__pyx_v_4lxml_5etree_sys);
   Py_CLEAR(__pyx_v_4lxml_5etree__elementpath);
@@ -181324,7 +181243,7 @@ bad:
 
 #if PY_MAJOR_VERSION >= 3
 static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
-    return PyObject_CallMethodObjArgs(d, __pyx_n_s__items, NULL);
+    return __Pyx_PyObject_CallMethod1((PyObject*)&PyDict_Type, __pyx_n_s__items, d);
 }
 #endif
 
@@ -182247,7 +182166,7 @@ static CYTHON_INLINE int __Pyx_dict_iter_next(PyObject* iter_obj, Py_ssize_t ori
 
 #if PY_MAJOR_VERSION >= 3
 static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
-    return PyObject_CallMethodObjArgs(d, __pyx_n_s__values, NULL);
+    return __Pyx_PyObject_CallMethod1((PyObject*)&PyDict_Type, __pyx_n_s__values, d);
 }
 #endif
 
@@ -182846,6 +182765,9 @@ static PyTypeObject __pyx_CyFunctionType_type = {
 #if PY_VERSION_HEX >= 0x02060000
     0,                                  /*tp_version_tag*/
 #endif
+#if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+    0,                                  /*tp_finalize*/
+#endif
 };
 static int __Pyx_CyFunction_init(void) {
 #if !CYTHON_COMPILING_IN_PYPY
@@ -184320,6 +184242,9 @@ static PyTypeObject __pyx_GeneratorType_type = {
 #if PY_VERSION_HEX >= 0x02060000
     0,                                  /*tp_version_tag*/
 #endif
+#if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+    0,                                  /*tp_finalize*/
+#endif
 };
 static __pyx_GeneratorObject *__Pyx_Generator_New(__pyx_generator_body_t body,
                                                   PyObject *closure) {
index 40b01b6c5bebf3b9a30f975b69a11e94675d3bbc..0dcb1c2dff704924f60cc51c327a01b918dcab99 100644 (file)
@@ -10,7 +10,7 @@ struct LxmlElementBase;
 struct LxmlElementClassLookup;
 struct LxmlFallbackElementClassLookup;
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":302
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":299
  * cdef class _BaseParser
  * cdef class QName
  * ctypedef public xmlNode* (*_node_to_node_function)(xmlNode*)             # <<<<<<<<<<<<<<
@@ -19,7 +19,7 @@ struct LxmlFallbackElementClassLookup;
  */
 typedef xmlNode *(*_node_to_node_function)(xmlNode *);
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":298
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":295
  * 
  * # forward declarations
  * cdef public class _Document [ type LxmlDocumentType, object LxmlDocument ]             # <<<<<<<<<<<<<<
@@ -35,7 +35,7 @@ struct LxmlDocument {
   struct __pyx_obj_4lxml_5etree__BaseParser *_parser;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":299
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":296
  * # forward declarations
  * cdef public class _Document [ type LxmlDocumentType, object LxmlDocument ]
  * cdef public class _Element [ type LxmlElementType, object LxmlElement ]             # <<<<<<<<<<<<<<
@@ -50,7 +50,7 @@ struct LxmlElement {
   PyObject *_tag;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1735
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":1732
  * 
  * 
  * cdef public class _ElementTree [ type LxmlElementTreeType,             # <<<<<<<<<<<<<<
@@ -64,7 +64,7 @@ struct LxmlElementTree {
   struct LxmlElement *_context_node;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2396
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2393
  * 
  * 
  * cdef public class _ElementTagMatcher [ object LxmlElementTagMatcher,             # <<<<<<<<<<<<<<
@@ -80,7 +80,7 @@ struct LxmlElementTagMatcher {
   char *_name;
 };
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2427
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.etree.pyx":2424
  *                 self._name = NULL
  * 
  * cdef public class _ElementIterator(_ElementTagMatcher) [             # <<<<<<<<<<<<<<
index bd5af8d76d389f3cdea56125dc0df7073fdf5333..b0e0ce83e6bac4bc9aad55ff66b8e2885a389c84 100644 (file)
@@ -89,9 +89,6 @@ import sys
 cdef object re
 import re
 
-cdef object gzip
-import gzip
-
 cdef object ITER_EMPTY = iter(())
 
 cdef object EMPTY_READ_ONLY_DICT = python.PyDictProxy_New({})
@@ -3211,7 +3208,7 @@ include "readonlytree.pxi" # Read-only implementation of Element proxies
 include "classlookup.pxi"  # Element class lookup mechanisms
 include "nsclasses.pxi"    # Namespace implementation and registry
 include "docloader.pxi"    # Support for custom document loaders
-include "parser.pxi"       # XML Parser
+include "parser.pxi"       # XML and HTML parsers
 include "saxparser.pxi"    # SAX-like Parser interface and tree builder
 include "parsertarget.pxi" # ET Parser target
 include "serializer.pxi"   # XML output functions
index f1675199eae41c5cf5fcd1a666896d4ce31ab70c..ec01f2b7cd19d0c23fe84deb2612f847b29c5cfa 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by Cython 0.19.1 on Sun Jul 28 12:53:37 2013 */
+/* Generated by Cython 0.19.2 on Thu Nov  7 17:43:30 2013 */
 
 #define PY_SSIZE_T_CLEAN
 #ifndef CYTHON_USE_PYLONG_INTERNALS
 #ifndef CYTHON_RESTRICT
   #if defined(__GNUC__)
     #define CYTHON_RESTRICT __restrict__
-  #elif defined(_MSC_VER)
+  #elif defined(_MSC_VER) && _MSC_VER >= 1400
     #define CYTHON_RESTRICT __restrict
   #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
     #define CYTHON_RESTRICT restrict
@@ -552,7 +552,7 @@ struct __pyx_obj_4lxml_9objectify_PyType {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1118
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1115
  * @cython.final
  * @cython.internal
  * cdef class _ObjectifyElementMakerCaller:             # <<<<<<<<<<<<<<
@@ -629,7 +629,7 @@ struct __pyx_obj_4lxml_9objectify_IntElement {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":805
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":802
  *             return None
  * 
  * cdef class BoolElement(IntElement):             # <<<<<<<<<<<<<<
@@ -653,7 +653,7 @@ struct __pyx_obj_4lxml_9objectify_LongElement {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1198
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1195
  *         cetree.setNodeText(elem._c_node, text)
  * 
  * cdef class ElementMaker:             # <<<<<<<<<<<<<<
@@ -671,7 +671,7 @@ struct __pyx_obj_4lxml_9objectify_ElementMaker {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1350
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1347
  * # Element class lookup
  * 
  * cdef class ObjectifyElementClassLookup(ElementClassLookup):             # <<<<<<<<<<<<<<
@@ -685,7 +685,7 @@ struct __pyx_obj_4lxml_9objectify_ObjectifyElementClassLookup {
 };
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":780
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":777
  *         return complex(textOf(self._c_node))
  * 
  * cdef class NoneElement(ObjectifiedDataElement):             # <<<<<<<<<<<<<<
@@ -727,7 +727,7 @@ struct __pyx_obj_4lxml_9objectify_StringElement {
 
 
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1198
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1195
  *         cetree.setNodeText(elem._c_node, text)
  * 
  * cdef class ElementMaker:             # <<<<<<<<<<<<<<
@@ -791,6 +791,14 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   #define __Pyx_XGOTREF(r)
   #define __Pyx_XGIVEREF(r)
 #endif /* CYTHON_REFNANNY */
+#define __Pyx_XDECREF_SET(r, v) do {                            \
+        PyObject *tmp = (PyObject *) r;                         \
+        r = v; __Pyx_XDECREF(tmp);                              \
+    } while (0)
+#define __Pyx_DECREF_SET(r, v) do {                             \
+        PyObject *tmp = (PyObject *) r;                         \
+        r = v; __Pyx_DECREF(tmp);                               \
+    } while (0)
 #define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
 #define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
 
@@ -936,6 +944,26 @@ static CYTHON_INLINE int __Pyx_PySequence_Contains(PyObject* item, PyObject* seq
 
 static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObject* default_value); /*proto*/
 
+static PyObject* __Pyx_PyObject_CallMethodTuple(PyObject* obj, PyObject* method_name, PyObject* args) {
+    PyObject *method, *result = NULL;
+    if (unlikely(!args)) return NULL;
+    method = __Pyx_PyObject_GetAttrStr(obj, method_name);
+    if (unlikely(!method)) goto bad;
+    result = PyObject_Call(method, args, NULL);
+    Py_DECREF(method);
+bad:
+    Py_DECREF(args);
+    return result;
+}
+#define __Pyx_PyObject_CallMethod3(obj, name, arg1, arg2, arg3) \
+    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(3, arg1, arg2, arg3))
+#define __Pyx_PyObject_CallMethod2(obj, name, arg1, arg2) \
+    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(2, arg1, arg2))
+#define __Pyx_PyObject_CallMethod1(obj, name, arg1) \
+    __Pyx_PyObject_CallMethodTuple(obj, name, PyTuple_Pack(1, arg1))
+#define __Pyx_PyObject_CallMethod0(obj, name) \
+    __Pyx_PyObject_CallMethodTuple(obj, name, (Py_INCREF(__pyx_empty_tuple), __pyx_empty_tuple))
+
 #if PY_MAJOR_VERSION >= 3
 static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d); /*proto*/
 #else
@@ -2231,14 +2259,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  */
     if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE);
-    __Pyx_DECREF(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE);
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE, __pyx_t_4);
     __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE = __pyx_t_4;
     __pyx_t_4 = 0;
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
-    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8, ((PyObject*)__pyx_t_5));
     __Pyx_GIVEREF(__pyx_t_5);
-    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8 = ((PyObject*)__pyx_t_5);
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":84
@@ -2308,14 +2334,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
  */
     if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 83; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME);
-    __Pyx_DECREF(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME);
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME, __pyx_t_5);
     __Pyx_GIVEREF(__pyx_t_5);
-    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME = __pyx_t_5;
     __pyx_t_5 = 0;
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
-    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8, ((PyObject*)__pyx_t_4));
     __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8 = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
@@ -2389,14 +2413,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
     if (!(likely(PyBytes_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_4)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!(likely(PyBytes_CheckExact(__pyx_t_5))||((__pyx_t_5) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected bytes, got %.200s", Py_TYPE(__pyx_t_5)->tp_name), 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 86; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
-    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8));
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8, ((PyObject*)__pyx_t_4));
     __Pyx_GIVEREF(__pyx_t_4);
-    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8 = ((PyObject*)__pyx_t_4);
     __pyx_t_4 = 0;
     __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
-    __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8));
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8, ((PyObject*)__pyx_t_5));
     __Pyx_GIVEREF(__pyx_t_5);
-    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8 = ((PyObject*)__pyx_t_5);
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":88
@@ -2413,9 +2435,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
     __pyx_t_3 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE_UTF8), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 88; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE);
-    __Pyx_DECREF(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE);
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE, ((PyObject *)__pyx_t_3));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
-    __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE = ((PyObject *)__pyx_t_3);
     __pyx_t_3 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":89
@@ -2432,9 +2453,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_set_pytype_attribute_tag(CYTHON_UNUSE
     __pyx_t_3 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME_UTF8), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeUTF8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME);
-    __Pyx_DECREF(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME);
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME, ((PyObject *)__pyx_t_3));
     __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
-    __pyx_v_4lxml_9objectify_PYTYPE_ATTRIBUTE_NAME = ((PyObject *)__pyx_t_3);
     __pyx_t_3 = 0;
   }
   __pyx_L3:;
@@ -2994,8 +3014,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_8__dict_____get_
       __Pyx_GOTREF(__pyx_t_4);
     }
     if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __Pyx_XDECREF(((PyObject *)__pyx_v_child));
-    __pyx_v_child = ((struct LxmlElement *)__pyx_t_4);
+    __Pyx_XDECREF_SET(__pyx_v_child, ((struct LxmlElement *)__pyx_t_4));
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":168
@@ -3035,8 +3054,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_8__dict_____get_
  */
     __pyx_t_4 = pyunicode(__pyx_v_child->_c_node->name); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 170; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_4);
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":171
@@ -3734,8 +3752,7 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_14__setattr__(struct _
  */
   __pyx_t_5 = __pyx_f_4lxml_9objectify__buildChildTag(((struct LxmlElement *)__pyx_v_self), __pyx_v_tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __Pyx_DECREF(__pyx_v_tag);
-  __pyx_v_tag = __pyx_t_5;
+  __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_5);
   __pyx_t_5 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":241
@@ -4344,8 +4361,7 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_22__setitem__(struct _
  */
     __pyx_t_2 = __pyx_f_4lxml_9objectify__buildChildTag(((struct LxmlElement *)__pyx_v_self), __pyx_v_key); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_v_key);
-    __pyx_v_key = __pyx_t_2;
+    __Pyx_DECREF_SET(__pyx_v_key, __pyx_t_2);
     __pyx_t_2 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":316
@@ -4744,8 +4760,7 @@ static int __pyx_pf_4lxml_9objectify_18ObjectifiedElement_24__delitem__(struct _
         }
         __Pyx_GOTREF(__pyx_t_1);
       }
-      __Pyx_XDECREF(__pyx_v_el);
-      __pyx_v_el = __pyx_t_1;
+      __Pyx_XDECREF_SET(__pyx_v_el, __pyx_t_1);
       __pyx_t_1 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":352
@@ -4933,8 +4948,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18ObjectifiedElement_26descendantpath
  */
     __pyx_t_4 = ((PyObject *)PyUnicode_Join(__pyx_kp_u_8, __pyx_v_prefix)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 364; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __Pyx_DECREF(__pyx_v_prefix);
-    __pyx_v_prefix = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_prefix, __pyx_t_4);
     __pyx_t_4 = 0;
     goto __pyx_L3;
   }
@@ -5535,8 +5549,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupChild(struct LxmlElement *__pyx
   }
   __pyx_v_ns = __pyx_t_3;
   __pyx_t_3 = 0;
-  __Pyx_DECREF(__pyx_v_tag);
-  __pyx_v_tag = __pyx_t_4;
+  __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_4);
   __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":421
@@ -5857,8 +5870,7 @@ static PyObject *__pyx_f_4lxml_9objectify__buildChildTag(struct LxmlElement *__p
   }
   __pyx_v_ns = __pyx_t_2;
   __pyx_t_2 = 0;
-  __Pyx_DECREF(__pyx_v_tag);
-  __pyx_v_tag = __pyx_t_3;
+  __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_3);
   __pyx_t_3 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":443
@@ -6235,8 +6247,7 @@ static PyObject *__pyx_f_4lxml_9objectify__appendValue(struct LxmlElement *__pyx
         }
         __Pyx_GOTREF(__pyx_t_3);
       }
-      __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_3;
+      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_3);
       __pyx_t_3 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":472
@@ -6485,8 +6496,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
         __pyx_t_5 = PyObject_Call(((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v__pytype)->stringify, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 497; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-        __Pyx_DECREF(__pyx_v_value);
-        __pyx_v_value = __pyx_t_5;
+        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_5);
         __pyx_t_5 = 0;
         goto __pyx_L5;
       }
@@ -6507,8 +6517,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setElementValue(struct LxmlElement *_
         __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 499; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-        __Pyx_DECREF(__pyx_v_value);
-        __pyx_v_value = __pyx_t_3;
+        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3);
         __pyx_t_3 = 0;
       }
       __pyx_L5:;
@@ -6750,8 +6759,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
       }
       __Pyx_GOTREF(__pyx_t_6);
     }
-    __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_6);
     __pyx_t_6 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":525
@@ -6777,8 +6785,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
       __pyx_t_7 = ((PyObject *)deepcopyNodeToDocument(((struct LxmlDocument *)__pyx_t_6), ((struct LxmlElement *)__pyx_v_item)->_c_node)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 527; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __Pyx_XDECREF(((PyObject *)__pyx_v_new_element));
-      __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_7);
+      __Pyx_XDECREF_SET(__pyx_v_new_element, ((struct LxmlElement *)__pyx_t_7));
       __pyx_t_7 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":529
@@ -6805,8 +6812,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
       __pyx_t_6 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)__pyx_t_7), Py_None, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 531; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-      __Pyx_XDECREF(((PyObject *)__pyx_v_new_element));
-      __pyx_v_new_element = ((struct LxmlElement *)__pyx_t_6);
+      __Pyx_XDECREF_SET(__pyx_v_new_element, ((struct LxmlElement *)__pyx_t_6));
       __pyx_t_6 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":533
@@ -7085,8 +7091,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
       __pyx_t_3 = (__pyx_v_pos - 1);
       __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_t_3, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 562; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_6;
+      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_6);
       __pyx_t_6 = 0;
       goto __pyx_L15;
     }
@@ -7212,8 +7217,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
       __pyx_t_4 = ((PyObject *)elementFactory(((struct LxmlDocument *)__pyx_t_6), __pyx_v_c_node)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_4;
+      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
       __pyx_t_4 = 0;
     }
     __pyx_L15:;
@@ -7238,8 +7242,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  */
       __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_item, __pyx_n_s__addnext); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_XDECREF(__pyx_v_add);
-      __pyx_v_add = __pyx_t_4;
+      __Pyx_XDECREF_SET(__pyx_v_add, __pyx_t_4);
       __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":579
@@ -7251,8 +7254,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setSlice(PyObject *__pyx_v_sliceobjec
  */
       __pyx_t_4 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_new_items), __pyx_v_pos, sizeof(Py_ssize_t), PyInt_FromSsize_t, 1, 1, 1); if (!__pyx_t_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 579; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __Pyx_DECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_4;
+      __Pyx_DECREF_SET(__pyx_v_item, __pyx_t_4);
       __pyx_t_4 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":580
@@ -8946,7 +8948,7 @@ static int __pyx_pw_4lxml_9objectify_13NumberElement_43__nonzero__(PyObject *__p
  *         return abs( _numericValueOf(self) )
  * 
  *     def __nonzero__(self):             # <<<<<<<<<<<<<<
- *         return _numericValueOf(self) != 0
+ *         return bool(_numericValueOf(self))
  * 
  */
 
@@ -8954,8 +8956,7 @@ static int __pyx_pf_4lxml_9objectify_13NumberElement_42__nonzero__(struct __pyx_
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
-  PyObject *__pyx_t_2 = NULL;
-  int __pyx_t_3;
+  int __pyx_t_2;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -8964,24 +8965,21 @@ static int __pyx_pf_4lxml_9objectify_13NumberElement_42__nonzero__(struct __pyx_
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":683
  * 
  *     def __nonzero__(self):
- *         return _numericValueOf(self) != 0             # <<<<<<<<<<<<<<
+ *         return bool(_numericValueOf(self))             # <<<<<<<<<<<<<<
  * 
  *     def __invert__(self):
  */
   __pyx_t_1 = __pyx_f_4lxml_9objectify__numericValueOf(((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_0, Py_NE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_3 = __Pyx_PyInt_AsInt(__pyx_t_2); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 683; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_r = __pyx_t_3;
+  __pyx_r = (!(!__pyx_t_2));
   goto __pyx_L0;
 
   __pyx_r = 0;
   goto __pyx_L0;
   __pyx_L1_error:;
   __Pyx_XDECREF(__pyx_t_1);
-  __Pyx_XDECREF(__pyx_t_2);
   __Pyx_AddTraceback("lxml.objectify.NumberElement.__nonzero__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
@@ -9001,7 +8999,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13NumberElement_45__invert__(PyObject
 }
 
 /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":685
- *         return _numericValueOf(self) != 0
+ *         return bool(_numericValueOf(self))
  * 
  *     def __invert__(self):             # <<<<<<<<<<<<<<
  *         return ~ _numericValueOf(self)
@@ -9747,18 +9745,15 @@ static int __pyx_pw_4lxml_9objectify_13StringElement_5__nonzero__(PyObject *__py
  *             return len(text)
  * 
  *     def __nonzero__(self):             # <<<<<<<<<<<<<<
- *         text = textOf(self._c_node)
- *         if text is None:
+ *         return bool(textOf(self._c_node))
+ * 
  */
 
 static int __pyx_pf_4lxml_9objectify_13StringElement_4__nonzero__(struct __pyx_obj_4lxml_9objectify_StringElement *__pyx_v_self) {
-  PyObject *__pyx_v_text = NULL;
   int __pyx_r;
   __Pyx_RefNannyDeclarations
   PyObject *__pyx_t_1 = NULL;
   int __pyx_t_2;
-  int __pyx_t_3;
-  Py_ssize_t __pyx_t_4;
   int __pyx_lineno = 0;
   const char *__pyx_filename = NULL;
   int __pyx_clineno = 0;
@@ -9767,48 +9762,15 @@ static int __pyx_pf_4lxml_9objectify_13StringElement_4__nonzero__(struct __pyx_o
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":737
  * 
  *     def __nonzero__(self):
- *         text = textOf(self._c_node)             # <<<<<<<<<<<<<<
- *         if text is None:
- *             return False
- */
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __Pyx_GOTREF(__pyx_t_1);
-  __pyx_v_text = __pyx_t_1;
-  __pyx_t_1 = 0;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":738
- *     def __nonzero__(self):
- *         text = textOf(self._c_node)
- *         if text is None:             # <<<<<<<<<<<<<<
- *             return False
- *         return len(text) > 0
- */
-  __pyx_t_2 = (__pyx_v_text == Py_None);
-  __pyx_t_3 = (__pyx_t_2 != 0);
-  if (__pyx_t_3) {
-
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":739
- *         text = textOf(self._c_node)
- *         if text is None:
- *             return False             # <<<<<<<<<<<<<<
- *         return len(text) > 0
- * 
- */
-    __pyx_r = 0;
-    goto __pyx_L0;
-    goto __pyx_L3;
-  }
-  __pyx_L3:;
-
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":740
- *         if text is None:
- *             return False
- *         return len(text) > 0             # <<<<<<<<<<<<<<
+ *         return bool(textOf(self._c_node))             # <<<<<<<<<<<<<<
  * 
  *     def __richcmp__(self, other, int op):
  */
-  __pyx_t_4 = PyObject_Length(__pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_r = (__pyx_t_4 > 0);
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 737; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_r = (!(!__pyx_t_2));
   goto __pyx_L0;
 
   __pyx_r = 0;
@@ -9818,7 +9780,6 @@ static int __pyx_pf_4lxml_9objectify_13StringElement_4__nonzero__(struct __pyx_o
   __Pyx_AddTraceback("lxml.objectify.StringElement.__nonzero__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __pyx_r = -1;
   __pyx_L0:;
-  __Pyx_XDECREF(__pyx_v_text);
   __Pyx_RefNannyFinishContext();
   return __pyx_r;
 }
@@ -9834,8 +9795,8 @@ static PyObject *__pyx_pw_4lxml_9objectify_13StringElement_7__richcmp__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":742
- *         return len(text) > 0
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":739
+ *         return bool(textOf(self._c_node))
  * 
  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
  *         return _richcmpPyvals(self, other, op)
@@ -9851,7 +9812,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_6__richcmp__(PyObject
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__richcmp__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":743
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":740
  * 
  *     def __richcmp__(self, other, int op):
  *         return _richcmpPyvals(self, other, op)             # <<<<<<<<<<<<<<
@@ -9859,7 +9820,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_6__richcmp__(PyObject
  *     def __hash__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__richcmpPyvals(__pyx_v_self, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__richcmpPyvals(__pyx_v_self, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 740; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -9888,7 +9849,7 @@ static Py_hash_t __pyx_pw_4lxml_9objectify_13StringElement_9__hash__(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":745
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":742
  *         return _richcmpPyvals(self, other, op)
  * 
  *     def __hash__(self):             # <<<<<<<<<<<<<<
@@ -9908,16 +9869,16 @@ static Py_hash_t __pyx_pf_4lxml_9objectify_13StringElement_8__hash__(struct __py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__hash__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":746
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":743
  * 
  *     def __hash__(self):
  *         return hash(textOf(self._c_node) or u'')             # <<<<<<<<<<<<<<
  * 
  *     def __add__(self, other):
  */
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (!__pyx_t_2) {
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     __Pyx_INCREF(((PyObject *)__pyx_kp_u_3));
@@ -9926,7 +9887,7 @@ static Py_hash_t __pyx_pf_4lxml_9objectify_13StringElement_8__hash__(struct __py
     __pyx_t_3 = __pyx_t_1;
     __pyx_t_1 = 0;
   }
-  __pyx_t_4 = PyObject_Hash(__pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Hash(__pyx_t_3); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 743; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_r = __pyx_t_4;
   goto __pyx_L0;
@@ -9955,7 +9916,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13StringElement_11__add__(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":748
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":745
  *         return hash(textOf(self._c_node) or u'')
  * 
  *     def __add__(self, other):             # <<<<<<<<<<<<<<
@@ -9976,32 +9937,31 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
   __Pyx_RefNannySetupContext("__add__", 0);
   __Pyx_INCREF(__pyx_v_other);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":749
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":746
  * 
  *     def __add__(self, other):
  *         text  = _strValueOf(self)             # <<<<<<<<<<<<<<
  *         other = _strValueOf(other)
  *         if text is None:
  */
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__strValueOf(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 749; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__strValueOf(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 746; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_text = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":750
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":747
  *     def __add__(self, other):
  *         text  = _strValueOf(self)
  *         other = _strValueOf(other)             # <<<<<<<<<<<<<<
  *         if text is None:
  *             return other
  */
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__strValueOf(__pyx_v_other); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__strValueOf(__pyx_v_other); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 747; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_other);
-  __pyx_v_other = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_other, __pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":751
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":748
  *         text  = _strValueOf(self)
  *         other = _strValueOf(other)
  *         if text is None:             # <<<<<<<<<<<<<<
@@ -10012,7 +9972,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":752
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":749
  *         other = _strValueOf(other)
  *         if text is None:
  *             return other             # <<<<<<<<<<<<<<
@@ -10027,7 +9987,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":753
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":750
  *         if text is None:
  *             return other
  *         if other is None:             # <<<<<<<<<<<<<<
@@ -10038,7 +9998,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
   __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":754
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":751
  *             return other
  *         if other is None:
  *             return text             # <<<<<<<<<<<<<<
@@ -10053,7 +10013,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":755
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":752
  *         if other is None:
  *             return text
  *         return text + other             # <<<<<<<<<<<<<<
@@ -10061,7 +10021,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_10__add__(PyObject *_
  *     def __mul__(self, other):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyNumber_Add(__pyx_v_text, __pyx_v_other); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 755; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyNumber_Add(__pyx_v_text, __pyx_v_other); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 752; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -10092,7 +10052,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13StringElement_13__mul__(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":757
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":754
  *         return text + other
  * 
  *     def __mul__(self, other):             # <<<<<<<<<<<<<<
@@ -10113,7 +10073,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__mul__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":758
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":755
  * 
  *     def __mul__(self, other):
  *         if isinstance(self, StringElement):             # <<<<<<<<<<<<<<
@@ -10124,7 +10084,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":759
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":756
  *     def __mul__(self, other):
  *         if isinstance(self, StringElement):
  *             return textOf((<StringElement>self)._c_node) * _numericValueOf(other)             # <<<<<<<<<<<<<<
@@ -10132,11 +10092,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
  *             return _numericValueOf(self) * textOf((<StringElement>other)._c_node)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = textOf(((struct __pyx_obj_4lxml_9objectify_StringElement *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = textOf(((struct __pyx_obj_4lxml_9objectify_StringElement *)__pyx_v_self)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_4 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_other); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_other); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 759; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 756; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -10146,7 +10106,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":760
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":757
  *         if isinstance(self, StringElement):
  *             return textOf((<StringElement>self)._c_node) * _numericValueOf(other)
  *         elif isinstance(other, StringElement):             # <<<<<<<<<<<<<<
@@ -10157,7 +10117,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":761
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":758
  *             return textOf((<StringElement>self)._c_node) * _numericValueOf(other)
  *         elif isinstance(other, StringElement):
  *             return _numericValueOf(self) * textOf((<StringElement>other)._c_node)             # <<<<<<<<<<<<<<
@@ -10165,11 +10125,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
  *             raise TypeError, u"invalid types for * operator"
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_9objectify__numericValueOf(__pyx_v_self); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __pyx_t_4 = textOf(((struct __pyx_obj_4lxml_9objectify_StringElement *)__pyx_v_other)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = textOf(((struct __pyx_obj_4lxml_9objectify_StringElement *)__pyx_v_other)->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
-    __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 758; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -10180,7 +10140,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":763
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":760
  *             return _numericValueOf(self) * textOf((<StringElement>other)._c_node)
  *         else:
  *             raise TypeError, u"invalid types for * operator"             # <<<<<<<<<<<<<<
@@ -10188,7 +10148,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_12__mul__(PyObject *_
  *     def __mod__(self, other):
  */
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_13), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
@@ -10217,7 +10177,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13StringElement_15__mod__(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":765
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":762
  *             raise TypeError, u"invalid types for * operator"
  * 
  *     def __mod__(self, other):             # <<<<<<<<<<<<<<
@@ -10235,7 +10195,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_14__mod__(PyObject *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__mod__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":766
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":763
  * 
  *     def __mod__(self, other):
  *         return _strValueOf(self) % other             # <<<<<<<<<<<<<<
@@ -10243,9 +10203,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_14__mod__(PyObject *_
  *     def __int__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__strValueOf(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__strValueOf(__pyx_v_self); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyNumber_Remainder(__pyx_t_1, __pyx_v_other); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(__pyx_t_1, __pyx_v_other); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -10276,7 +10236,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13StringElement_17__int__(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":768
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":765
  *         return _strValueOf(self) % other
  * 
  *     def __int__(self):             # <<<<<<<<<<<<<<
@@ -10294,7 +10254,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_16__int__(struct __py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__int__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":769
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":766
  * 
  *     def __int__(self):
  *         return int(textOf(self._c_node))             # <<<<<<<<<<<<<<
@@ -10302,14 +10262,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_16__int__(struct __py
  *     def __long__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_1;
@@ -10342,7 +10302,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13StringElement_19__long__(PyObject *
 }
 #endif /*!(#if PY_MAJOR_VERSION < 3)*/
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":771
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":768
  *         return int(textOf(self._c_node))
  * 
  *     def __long__(self):             # <<<<<<<<<<<<<<
@@ -10361,7 +10321,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_18__long__(struct __p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__long__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":772
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":769
  * 
  *     def __long__(self):
  *         return long(textOf(self._c_node))             # <<<<<<<<<<<<<<
@@ -10369,14 +10329,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_18__long__(struct __p
  *     def __float__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyLong_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyLong_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 769; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_1;
@@ -10408,7 +10368,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13StringElement_21__float__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":774
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":771
  *         return long(textOf(self._c_node))
  * 
  *     def __float__(self):             # <<<<<<<<<<<<<<
@@ -10426,7 +10386,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_20__float__(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__float__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":775
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":772
  * 
  *     def __float__(self):
  *         return float(textOf(self._c_node))             # <<<<<<<<<<<<<<
@@ -10434,11 +10394,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_20__float__(struct __
  *     def __complex__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyObject_AsDouble(__pyx_t_1); if (unlikely(__pyx_t_2 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_AsDouble(__pyx_t_1); if (unlikely(__pyx_t_2 == ((double)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyFloat_FromDouble(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyFloat_FromDouble(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 772; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -10467,7 +10427,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13StringElement_23__complex__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":777
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":774
  *         return float(textOf(self._c_node))
  * 
  *     def __complex__(self):             # <<<<<<<<<<<<<<
@@ -10485,7 +10445,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_22__complex__(struct
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__complex__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":778
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":775
  * 
  *     def __complex__(self):
  *         return complex(textOf(self._c_node))             # <<<<<<<<<<<<<<
@@ -10493,14 +10453,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_13StringElement_22__complex__(struct
  * cdef class NoneElement(ObjectifiedDataElement):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyComplex_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyComplex_Type))), ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_1;
@@ -10531,7 +10491,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11NoneElement_1__str__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":781
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":778
  * 
  * cdef class NoneElement(ObjectifiedDataElement):
  *     def __str__(self):             # <<<<<<<<<<<<<<
@@ -10544,7 +10504,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement___str__(CYTHON_UNUSED s
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__str__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":782
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":779
  * cdef class NoneElement(ObjectifiedDataElement):
  *     def __str__(self):
  *         return u"None"             # <<<<<<<<<<<<<<
@@ -10574,7 +10534,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11NoneElement_3__repr__(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":784
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":781
  *         return u"None"
  * 
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -10587,7 +10547,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_2__repr__(CYTHON_UNUSED
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":785
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":782
  * 
  *     def __repr__(self):
  *         return u"None"             # <<<<<<<<<<<<<<
@@ -10617,7 +10577,7 @@ static int __pyx_pw_4lxml_9objectify_11NoneElement_5__nonzero__(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":787
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":784
  *         return u"None"
  * 
  *     def __nonzero__(self):             # <<<<<<<<<<<<<<
@@ -10630,7 +10590,7 @@ static int __pyx_pf_4lxml_9objectify_11NoneElement_4__nonzero__(CYTHON_UNUSED st
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__nonzero__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":788
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":785
  * 
  *     def __nonzero__(self):
  *         return False             # <<<<<<<<<<<<<<
@@ -10657,7 +10617,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11NoneElement_7__richcmp__(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":790
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":787
  *         return False
  * 
  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
@@ -10677,7 +10637,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__richcmp__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":791
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":788
  * 
  *     def __richcmp__(self, other, int op):
  *         if other is None or self is None:             # <<<<<<<<<<<<<<
@@ -10693,7 +10653,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":792
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":789
  *     def __richcmp__(self, other, int op):
  *         if other is None or self is None:
  *             return python.PyObject_RichCompare(None, None, op)             # <<<<<<<<<<<<<<
@@ -10701,7 +10661,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
  *             return python.PyObject_RichCompare(None, other, op)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = PyObject_RichCompare(Py_None, Py_None, __pyx_v_op); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 792; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_RichCompare(Py_None, Py_None, __pyx_v_op); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 789; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
@@ -10710,7 +10670,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":793
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":790
  *         if other is None or self is None:
  *             return python.PyObject_RichCompare(None, None, op)
  *         if isinstance(self, NoneElement):             # <<<<<<<<<<<<<<
@@ -10721,7 +10681,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
   __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":794
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":791
  *             return python.PyObject_RichCompare(None, None, op)
  *         if isinstance(self, NoneElement):
  *             return python.PyObject_RichCompare(None, other, op)             # <<<<<<<<<<<<<<
@@ -10729,7 +10689,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
  *             return python.PyObject_RichCompare(self, None, op)
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = PyObject_RichCompare(Py_None, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_RichCompare(Py_None, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
@@ -10738,7 +10698,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":796
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":793
  *             return python.PyObject_RichCompare(None, other, op)
  *         else:
  *             return python.PyObject_RichCompare(self, None, op)             # <<<<<<<<<<<<<<
@@ -10746,7 +10706,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_6__richcmp__(PyObject *
  *     def __hash__(self):
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_4 = PyObject_RichCompare(__pyx_v_self, Py_None, __pyx_v_op); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_RichCompare(__pyx_v_self, Py_None, __pyx_v_op); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_r = __pyx_t_4;
     __pyx_t_4 = 0;
@@ -10777,7 +10737,7 @@ static Py_hash_t __pyx_pw_4lxml_9objectify_11NoneElement_9__hash__(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":798
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":795
  *             return python.PyObject_RichCompare(self, None, op)
  * 
  *     def __hash__(self):             # <<<<<<<<<<<<<<
@@ -10794,14 +10754,14 @@ static Py_hash_t __pyx_pf_4lxml_9objectify_11NoneElement_8__hash__(CYTHON_UNUSED
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__hash__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":799
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":796
  * 
  *     def __hash__(self):
  *         return hash(None)             # <<<<<<<<<<<<<<
  * 
  *     property pyval:
  */
-  __pyx_t_1 = PyObject_Hash(Py_None); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 799; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Hash(Py_None); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_t_1;
   goto __pyx_L0;
 
@@ -10827,7 +10787,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11NoneElement_5pyval_1__get__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":802
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":799
  * 
  *     property pyval:
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -10840,7 +10800,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11NoneElement_5pyval___get__(CYTHON_U
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":803
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":800
  *     property pyval:
  *         def __get__(self):
  *             return None             # <<<<<<<<<<<<<<
@@ -10870,7 +10830,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11BoolElement_1_init(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":811
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":808
  *     Python's bool type.
  *     """
  *     def _init(self):             # <<<<<<<<<<<<<<
@@ -10887,14 +10847,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement__init(struct __pyx_obj_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_init", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":812
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":809
  *     """
  *     def _init(self):
  *         self._parse_value = __parseBool             # <<<<<<<<<<<<<<
  * 
  *     def __nonzero__(self):
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s____parseBool); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s____parseBool); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 809; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __Pyx_GOTREF(__pyx_v_self->__pyx_base.__pyx_base._parse_value);
@@ -10925,7 +10885,7 @@ static int __pyx_pw_4lxml_9objectify_11BoolElement_3__nonzero__(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":814
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":811
  *         self._parse_value = __parseBool
  * 
  *     def __nonzero__(self):             # <<<<<<<<<<<<<<
@@ -10942,14 +10902,14 @@ static int __pyx_pf_4lxml_9objectify_11BoolElement_2__nonzero__(struct __pyx_obj
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__nonzero__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":815
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":812
  * 
  *     def __nonzero__(self):
  *         return __parseBool(textOf(self._c_node))             # <<<<<<<<<<<<<<
  * 
  *     def __richcmp__(self, other, int op):
  */
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
@@ -10977,7 +10937,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11BoolElement_5__richcmp__(PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":817
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":814
  *         return __parseBool(textOf(self._c_node))
  * 
  *     def __richcmp__(self, other, int op):             # <<<<<<<<<<<<<<
@@ -10994,7 +10954,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement_4__richcmp__(PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__richcmp__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":818
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":815
  * 
  *     def __richcmp__(self, other, int op):
  *         return _richcmpPyvals(self, other, op)             # <<<<<<<<<<<<<<
@@ -11002,7 +10962,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement_4__richcmp__(PyObject *
  *     def __hash__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__richcmpPyvals(__pyx_v_self, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__richcmpPyvals(__pyx_v_self, __pyx_v_other, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -11031,7 +10991,7 @@ static Py_hash_t __pyx_pw_4lxml_9objectify_11BoolElement_7__hash__(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":820
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":817
  *         return _richcmpPyvals(self, other, op)
  * 
  *     def __hash__(self):             # <<<<<<<<<<<<<<
@@ -11050,19 +11010,19 @@ static Py_hash_t __pyx_pf_4lxml_9objectify_11BoolElement_6__hash__(struct __pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__hash__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":821
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":818
  * 
  *     def __hash__(self):
  *         return hash(__parseBool(textOf(self._c_node)))             # <<<<<<<<<<<<<<
  * 
  *     def __str__(self):
  */
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_3 = PyObject_Hash(__pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Hash(__pyx_t_2); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 818; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_3;
   goto __pyx_L0;
@@ -11091,7 +11051,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11BoolElement_9__str__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":823
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":820
  *         return hash(__parseBool(textOf(self._c_node)))
  * 
  *     def __str__(self):             # <<<<<<<<<<<<<<
@@ -11109,7 +11069,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement_8__str__(struct __pyx_o
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__str__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":824
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":821
  * 
  *     def __str__(self):
  *         return unicode(__parseBool(textOf(self._c_node)))             # <<<<<<<<<<<<<<
@@ -11117,17 +11077,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement_8__str__(struct __pyx_o
  *     def __repr__(self):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 821; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -11158,7 +11118,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11BoolElement_11__repr__(PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":826
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":823
  *         return unicode(__parseBool(textOf(self._c_node)))
  * 
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -11176,7 +11136,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement_10__repr__(struct __pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":827
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":824
  * 
  *     def __repr__(self):
  *         return repr(__parseBool(textOf(self._c_node)))             # <<<<<<<<<<<<<<
@@ -11184,12 +11144,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement_10__repr__(struct __pyx
  *     property pyval:
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Repr(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Repr(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 824; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_1;
@@ -11220,7 +11180,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11BoolElement_5pyval_1__get__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":830
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":827
  * 
  *     property pyval:
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -11238,7 +11198,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement_5pyval___get__(struct _
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":831
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":828
  *     property pyval:
  *         def __get__(self):
  *             return __parseBool(textOf(self._c_node))             # <<<<<<<<<<<<<<
@@ -11246,9 +11206,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_11BoolElement_5pyval___get__(struct _
  * def __checkBool(s):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_self->__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 831; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_t_1, 0)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = __pyx_t_2;
@@ -11280,7 +11240,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_3__checkBool(PyObject *__pyx_self, Py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":833
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":830
  *             return __parseBool(textOf(self._c_node))
  * 
  * def __checkBool(s):             # <<<<<<<<<<<<<<
@@ -11299,7 +11259,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__checkBool", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":834
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":831
  * 
  * def __checkBool(s):
  *     cdef int value = -1             # <<<<<<<<<<<<<<
@@ -11308,7 +11268,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
  */
   __pyx_v_value = -1;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":835
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":832
  * def __checkBool(s):
  *     cdef int value = -1
  *     if s is not None:             # <<<<<<<<<<<<<<
@@ -11319,7 +11279,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":836
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":833
  *     cdef int value = -1
  *     if s is not None:
  *         value = __parseBoolAsInt(s)             # <<<<<<<<<<<<<<
@@ -11331,7 +11291,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":837
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":834
  *     if s is not None:
  *         value = __parseBoolAsInt(s)
  *     if value == -1:             # <<<<<<<<<<<<<<
@@ -11341,7 +11301,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
   __pyx_t_2 = ((__pyx_v_value == -1) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":838
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":835
  *         value = __parseBoolAsInt(s)
  *     if value == -1:
  *         raise ValueError             # <<<<<<<<<<<<<<
@@ -11349,7 +11309,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
  * cpdef bint __parseBool(s):
  */
     __Pyx_Raise(__pyx_builtin_ValueError, 0, 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
@@ -11365,7 +11325,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_2__checkBool(CYTHON_UNUSED PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":840
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":837
  *         raise ValueError
  * 
  * cpdef bint __parseBool(s):             # <<<<<<<<<<<<<<
@@ -11386,7 +11346,7 @@ static int __pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHON_UNUS
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__parseBool", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":842
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":839
  * cpdef bint __parseBool(s):
  *     cdef int value
  *     if s is None:             # <<<<<<<<<<<<<<
@@ -11397,7 +11357,7 @@ static int __pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHON_UNUS
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":843
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":840
  *     cdef int value
  *     if s is None:
  *         return False             # <<<<<<<<<<<<<<
@@ -11410,7 +11370,7 @@ static int __pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHON_UNUS
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":844
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":841
  *     if s is None:
  *         return False
  *     value = __parseBoolAsInt(s)             # <<<<<<<<<<<<<<
@@ -11419,7 +11379,7 @@ static int __pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHON_UNUS
  */
   __pyx_v_value = __pyx_f_4lxml_9objectify___parseBoolAsInt(__pyx_v_s);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":845
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":842
  *         return False
  *     value = __parseBoolAsInt(s)
  *     if value == -1:             # <<<<<<<<<<<<<<
@@ -11429,23 +11389,23 @@ static int __pyx_f_4lxml_9objectify___parseBool(PyObject *__pyx_v_s, CYTHON_UNUS
   __pyx_t_2 = ((__pyx_v_value == -1) != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":846
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":843
  *     value = __parseBoolAsInt(s)
  *     if value == -1:
  *         raise ValueError, u"Invalid boolean value: '%s'" % s             # <<<<<<<<<<<<<<
  *     return value
  * 
  */
-    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_14), __pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_14), __pyx_v_s); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
     __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_t_3), 0, 0);
     __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 843; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":847
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":844
  *     if value == -1:
  *         raise ValueError, u"Invalid boolean value: '%s'" % s
  *     return value             # <<<<<<<<<<<<<<
@@ -11477,7 +11437,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_5__parseBool(PyObject *__pyx_self, Py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":840
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":837
  *         raise ValueError
  * 
  * cpdef bint __parseBool(s):             # <<<<<<<<<<<<<<
@@ -11494,7 +11454,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_4__parseBool(CYTHON_UNUSED PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__parseBool", 0);
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_v_s, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 840; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_f_4lxml_9objectify___parseBool(__pyx_v_s, 0)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 837; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -11512,7 +11472,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_4__parseBool(CYTHON_UNUSED PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":849
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":846
  *     return value
  * 
  * cdef inline int __parseBoolAsInt(text):             # <<<<<<<<<<<<<<
@@ -11530,19 +11490,19 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify___parseBoolAsInt(PyObject *__p
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__parseBoolAsInt", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":850
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":847
  * 
  * cdef inline int __parseBoolAsInt(text):
  *     if text == 'false':             # <<<<<<<<<<<<<<
  *         return 0
  *     elif text == 'true':
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_text, ((PyObject *)__pyx_n_s__false), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 850; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_text, ((PyObject *)__pyx_n_s__false), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 847; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":851
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":848
  * cdef inline int __parseBoolAsInt(text):
  *     if text == 'false':
  *         return 0             # <<<<<<<<<<<<<<
@@ -11554,19 +11514,19 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify___parseBoolAsInt(PyObject *__p
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":852
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":849
  *     if text == 'false':
  *         return 0
  *     elif text == 'true':             # <<<<<<<<<<<<<<
  *         return 1
  *     elif text == '0':
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_text, ((PyObject *)__pyx_n_s__true), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_text, ((PyObject *)__pyx_n_s__true), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":853
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":850
  *         return 0
  *     elif text == 'true':
  *         return 1             # <<<<<<<<<<<<<<
@@ -11578,19 +11538,19 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify___parseBoolAsInt(PyObject *__p
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":854
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":851
  *     elif text == 'true':
  *         return 1
  *     elif text == '0':             # <<<<<<<<<<<<<<
  *         return 0
  *     elif text == '1':
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_text, ((PyObject *)__pyx_kp_s__0), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 854; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_text, ((PyObject *)__pyx_kp_s__0), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 851; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":855
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":852
  *         return 1
  *     elif text == '0':
  *         return 0             # <<<<<<<<<<<<<<
@@ -11602,19 +11562,19 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify___parseBoolAsInt(PyObject *__p
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":856
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":853
  *     elif text == '0':
  *         return 0
  *     elif text == '1':             # <<<<<<<<<<<<<<
  *         return 1
  *     return -1
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_text, ((PyObject *)__pyx_kp_s__1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_text, ((PyObject *)__pyx_kp_s__1), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":857
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":854
  *         return 0
  *     elif text == '1':
  *         return 1             # <<<<<<<<<<<<<<
@@ -11627,7 +11587,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify___parseBoolAsInt(PyObject *__p
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":858
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":855
  *     elif text == '1':
  *         return 1
  *     return -1             # <<<<<<<<<<<<<<
@@ -11648,7 +11608,7 @@ static CYTHON_INLINE int __pyx_f_4lxml_9objectify___parseBoolAsInt(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":860
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":857
  *     return -1
  * 
  * cdef object _parseNumber(NumberElement element):             # <<<<<<<<<<<<<<
@@ -11666,7 +11626,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseNumber(struct __pyx_obj_4lxml_9o
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_parseNumber", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":861
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":858
  * 
  * cdef object _parseNumber(NumberElement element):
  *     return element._parse_value(textOf(element._c_node))             # <<<<<<<<<<<<<<
@@ -11674,14 +11634,14 @@ static PyObject *__pyx_f_4lxml_9objectify__parseNumber(struct __pyx_obj_4lxml_9o
  * cdef object _strValueOf(obj):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = textOf(__pyx_v_element->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_element->__pyx_base.__pyx_base.__pyx_base.__pyx_base._c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(__pyx_v_element->_parse_value, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 861; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_v_element->_parse_value, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_r = __pyx_t_1;
@@ -11701,7 +11661,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseNumber(struct __pyx_obj_4lxml_9o
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":863
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":860
  *     return element._parse_value(textOf(element._c_node))
  * 
  * cdef object _strValueOf(obj):             # <<<<<<<<<<<<<<
@@ -11721,7 +11681,7 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_strValueOf", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":864
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":861
  * 
  * cdef object _strValueOf(obj):
  *     if python._isString(obj):             # <<<<<<<<<<<<<<
@@ -11731,7 +11691,7 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
   __pyx_t_1 = (_isString(__pyx_v_obj) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":865
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":862
  * cdef object _strValueOf(obj):
  *     if python._isString(obj):
  *         return obj             # <<<<<<<<<<<<<<
@@ -11746,7 +11706,7 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":866
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":863
  *     if python._isString(obj):
  *         return obj
  *     if isinstance(obj, _Element):             # <<<<<<<<<<<<<<
@@ -11757,7 +11717,7 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":867
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":864
  *         return obj
  *     if isinstance(obj, _Element):
  *         return textOf((<_Element>obj)._c_node) or u''             # <<<<<<<<<<<<<<
@@ -11765,9 +11725,9 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
  *         return u''
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = textOf(((struct LxmlElement *)__pyx_v_obj)->_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = textOf(((struct LxmlElement *)__pyx_v_obj)->_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 864; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!__pyx_t_2) {
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __Pyx_INCREF(((PyObject *)__pyx_kp_u_3));
@@ -11783,7 +11743,7 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":868
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":865
  *     if isinstance(obj, _Element):
  *         return textOf((<_Element>obj)._c_node) or u''
  *     if obj is None:             # <<<<<<<<<<<<<<
@@ -11794,7 +11754,7 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":869
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":866
  *         return textOf((<_Element>obj)._c_node) or u''
  *     if obj is None:
  *         return u''             # <<<<<<<<<<<<<<
@@ -11809,7 +11769,7 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":870
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":867
  *     if obj is None:
  *         return u''
  *     return unicode(obj)             # <<<<<<<<<<<<<<
@@ -11817,12 +11777,12 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
  * cdef object _numericValueOf(obj):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_INCREF(__pyx_v_obj);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_obj);
   __Pyx_GIVEREF(__pyx_v_obj);
-  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 870; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 867; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_r = __pyx_t_3;
@@ -11842,7 +11802,7 @@ static PyObject *__pyx_f_4lxml_9objectify__strValueOf(PyObject *__pyx_v_obj) {
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":872
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":869
  *     return unicode(obj)
  * 
  * cdef object _numericValueOf(obj):             # <<<<<<<<<<<<<<
@@ -11865,7 +11825,7 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_numericValueOf", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":873
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":870
  * 
  * cdef object _numericValueOf(obj):
  *     if isinstance(obj, NumberElement):             # <<<<<<<<<<<<<<
@@ -11876,7 +11836,7 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":874
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":871
  * cdef object _numericValueOf(obj):
  *     if isinstance(obj, NumberElement):
  *         return _parseNumber(<NumberElement>obj)             # <<<<<<<<<<<<<<
@@ -11884,7 +11844,7 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
  *         # not always numeric, but Python will raise the right exception
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_3 = __pyx_f_4lxml_9objectify__parseNumber(((struct __pyx_obj_4lxml_9objectify_NumberElement *)__pyx_v_obj)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __pyx_f_4lxml_9objectify__parseNumber(((struct __pyx_obj_4lxml_9objectify_NumberElement *)__pyx_v_obj)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 871; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_r = __pyx_t_3;
     __pyx_t_3 = 0;
@@ -11893,7 +11853,7 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":875
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":872
  *     if isinstance(obj, NumberElement):
  *         return _parseNumber(<NumberElement>obj)
  *     try:             # <<<<<<<<<<<<<<
@@ -11907,7 +11867,7 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
     __Pyx_XGOTREF(__pyx_t_6);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":877
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":874
  *     try:
  *         # not always numeric, but Python will raise the right exception
  *         return obj.pyval             # <<<<<<<<<<<<<<
@@ -11915,7 +11875,7 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
  *         pass
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s__pyval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 877; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_obj, __pyx_n_s__pyval); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 874; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __pyx_r = __pyx_t_3;
       __pyx_t_3 = 0;
@@ -11934,7 +11894,7 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
     __pyx_L4_error:;
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":878
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":875
  *         # not always numeric, but Python will raise the right exception
  *         return obj.pyval
  *     except AttributeError:             # <<<<<<<<<<<<<<
@@ -11959,7 +11919,7 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
     __pyx_L11_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":880
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":877
  *     except AttributeError:
  *         pass
  *     return obj             # <<<<<<<<<<<<<<
@@ -11983,12 +11943,12 @@ static PyObject *__pyx_f_4lxml_9objectify__numericValueOf(PyObject *__pyx_v_obj)
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":882
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":879
  *     return obj
  * 
  * cdef _richcmpPyvals(left, right, int op):             # <<<<<<<<<<<<<<
- *     left  = getattr(left,  u'pyval', left)
- *     right = getattr(right, u'pyval', right)
+ *     left  = getattr(left,  'pyval', left)
+ *     right = getattr(right, 'pyval', right)
  */
 
 static PyObject *__pyx_f_4lxml_9objectify__richcmpPyvals(PyObject *__pyx_v_left, PyObject *__pyx_v_right, int __pyx_v_op) {
@@ -12002,41 +11962,39 @@ static PyObject *__pyx_f_4lxml_9objectify__richcmpPyvals(PyObject *__pyx_v_left,
   __Pyx_INCREF(__pyx_v_left);
   __Pyx_INCREF(__pyx_v_right);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":883
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":880
  * 
  * cdef _richcmpPyvals(left, right, int op):
- *     left  = getattr(left,  u'pyval', left)             # <<<<<<<<<<<<<<
- *     right = getattr(right, u'pyval', right)
+ *     left  = getattr(left,  'pyval', left)             # <<<<<<<<<<<<<<
+ *     right = getattr(right, 'pyval', right)
  *     return python.PyObject_RichCompare(left, right, op)
  */
-  __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_left, ((PyObject *)__pyx_n_u__pyval), __pyx_v_left); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_left, ((PyObject *)__pyx_n_s__pyval), __pyx_v_left); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_left);
-  __pyx_v_left = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_left, __pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":884
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":881
  * cdef _richcmpPyvals(left, right, int op):
- *     left  = getattr(left,  u'pyval', left)
- *     right = getattr(right, u'pyval', right)             # <<<<<<<<<<<<<<
+ *     left  = getattr(left,  'pyval', left)
+ *     right = getattr(right, 'pyval', right)             # <<<<<<<<<<<<<<
  *     return python.PyObject_RichCompare(left, right, op)
  * 
  */
-  __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_right, ((PyObject *)__pyx_n_u__pyval), __pyx_v_right); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 884; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetAttr3(__pyx_v_right, ((PyObject *)__pyx_n_s__pyval), __pyx_v_right); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 881; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __Pyx_DECREF(__pyx_v_right);
-  __pyx_v_right = __pyx_t_1;
+  __Pyx_DECREF_SET(__pyx_v_right, __pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":885
- *     left  = getattr(left,  u'pyval', left)
- *     right = getattr(right, u'pyval', right)
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":882
+ *     left  = getattr(left,  'pyval', left)
+ *     right = getattr(right, 'pyval', right)
  *     return python.PyObject_RichCompare(left, right, op)             # <<<<<<<<<<<<<<
  * 
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_left, __pyx_v_right, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_left, __pyx_v_right, __pyx_v_op); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -12073,7 +12031,7 @@ static int __pyx_pw_4lxml_9objectify_6PyType_1__init__(PyObject *__pyx_v_self, P
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__name,&__pyx_n_s__type_check,&__pyx_n_s__type_class,&__pyx_n_s__stringify,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":913
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":910
  *     cdef object _type
  *     cdef list _schema_types
  *     def __init__(self, name, type_check, type_class, stringify=None):             # <<<<<<<<<<<<<<
@@ -12100,12 +12058,12 @@ static int __pyx_pw_4lxml_9objectify_6PyType_1__init__(PyObject *__pyx_v_self, P
         case  1:
         if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__type_check)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  2:
         if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s__type_class)) != 0)) kw_args--;
         else {
-          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+          __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
         }
         case  3:
         if (kw_args > 0) {
@@ -12114,7 +12072,7 @@ static int __pyx_pw_4lxml_9objectify_6PyType_1__init__(PyObject *__pyx_v_self, P
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -12133,7 +12091,7 @@ static int __pyx_pw_4lxml_9objectify_6PyType_1__init__(PyObject *__pyx_v_self, P
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 913; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 910; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.PyType.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -12158,7 +12116,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   __Pyx_INCREF(__pyx_v_name);
   __Pyx_INCREF(__pyx_v_stringify);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":914
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":911
  *     cdef list _schema_types
  *     def __init__(self, name, type_check, type_class, stringify=None):
  *         if isinstance(name, bytes):             # <<<<<<<<<<<<<<
@@ -12169,7 +12127,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":915
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":912
  *     def __init__(self, name, type_check, type_class, stringify=None):
  *         if isinstance(name, bytes):
  *             name = (<bytes>name).decode('ascii')             # <<<<<<<<<<<<<<
@@ -12178,17 +12136,16 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  */
     if (unlikely(__pyx_v_name == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_3 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_name)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_name)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_3));
-    __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = ((PyObject *)__pyx_t_3);
+    __Pyx_DECREF_SET(__pyx_v_name, ((PyObject *)__pyx_t_3));
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":916
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":913
  *         if isinstance(name, bytes):
  *             name = (<bytes>name).decode('ascii')
  *         elif not isinstance(name, unicode):             # <<<<<<<<<<<<<<
@@ -12199,7 +12156,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   __pyx_t_1 = ((!(__pyx_t_2 != 0)) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":917
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":914
  *             name = (<bytes>name).decode('ascii')
  *         elif not isinstance(name, unicode):
  *             raise TypeError, u"Type name must be a string"             # <<<<<<<<<<<<<<
@@ -12207,12 +12164,12 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *             raise TypeError, u"Type check function must be callable (or None)"
  */
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_15), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":918
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":915
  *         elif not isinstance(name, unicode):
  *             raise TypeError, u"Type name must be a string"
  *         if type_check is not None and not callable(type_check):             # <<<<<<<<<<<<<<
@@ -12221,7 +12178,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  */
   __pyx_t_1 = (__pyx_v_type_check != Py_None);
   if ((__pyx_t_1 != 0)) {
-    __pyx_t_2 = __Pyx_PyCallable_Check(__pyx_v_type_check); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyCallable_Check(__pyx_v_type_check); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = ((!(__pyx_t_2 != 0)) != 0);
     __pyx_t_2 = __pyx_t_4;
   } else {
@@ -12229,7 +12186,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":919
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":916
  *             raise TypeError, u"Type name must be a string"
  *         if type_check is not None and not callable(type_check):
  *             raise TypeError, u"Type check function must be callable (or None)"             # <<<<<<<<<<<<<<
@@ -12237,31 +12194,31 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *                not issubclass(type_class, ObjectifiedDataElement):
  */
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_16), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 916; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":920
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":917
  *         if type_check is not None and not callable(type_check):
  *             raise TypeError, u"Type check function must be callable (or None)"
  *         if name != TREE_PYTYPE_NAME and \             # <<<<<<<<<<<<<<
  *                not issubclass(type_class, ObjectifiedDataElement):
  *             raise TypeError, \
  */
-  __pyx_t_3 = PyObject_RichCompare(__pyx_v_name, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_RichCompare(__pyx_v_name, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 917; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":921
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":918
  *             raise TypeError, u"Type check function must be callable (or None)"
  *         if name != TREE_PYTYPE_NAME and \
  *                not issubclass(type_class, ObjectifiedDataElement):             # <<<<<<<<<<<<<<
  *             raise TypeError, \
  *                 u"Data classes must inherit from ObjectifiedDataElement"
  */
-    __pyx_t_1 = PyObject_IsSubclass(__pyx_v_type_class, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_IsSubclass(__pyx_v_type_class, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedDataElement))); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_4 = (!(__pyx_t_1 != 0));
     __pyx_t_1 = __pyx_t_4;
   } else {
@@ -12269,7 +12226,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   }
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":922
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":919
  *         if name != TREE_PYTYPE_NAME and \
  *                not issubclass(type_class, ObjectifiedDataElement):
  *             raise TypeError, \             # <<<<<<<<<<<<<<
@@ -12277,12 +12234,12 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *         self.name  = name
  */
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_17), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":924
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":921
  *             raise TypeError, \
  *                 u"Data classes must inherit from ObjectifiedDataElement"
  *         self.name  = name             # <<<<<<<<<<<<<<
@@ -12295,7 +12252,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   __Pyx_DECREF(__pyx_v_self->name);
   __pyx_v_self->name = __pyx_v_name;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":925
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":922
  *                 u"Data classes must inherit from ObjectifiedDataElement"
  *         self.name  = name
  *         self._type = type_class             # <<<<<<<<<<<<<<
@@ -12308,7 +12265,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   __Pyx_DECREF(__pyx_v_self->_type);
   __pyx_v_self->_type = __pyx_v_type_class;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":926
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":923
  *         self.name  = name
  *         self._type = type_class
  *         self.type_check = type_check             # <<<<<<<<<<<<<<
@@ -12321,7 +12278,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   __Pyx_DECREF(__pyx_v_self->type_check);
   __pyx_v_self->type_check = __pyx_v_type_check;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":927
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":924
  *         self._type = type_class
  *         self.type_check = type_check
  *         if stringify is None:             # <<<<<<<<<<<<<<
@@ -12332,7 +12289,7 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":928
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":925
  *         self.type_check = type_check
  *         if stringify is None:
  *             stringify = unicode             # <<<<<<<<<<<<<<
@@ -12340,13 +12297,12 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
  *         self._schema_types = []
  */
     __Pyx_INCREF(((PyObject *)((PyObject*)(&PyUnicode_Type))));
-    __Pyx_DECREF(__pyx_v_stringify);
-    __pyx_v_stringify = ((PyObject *)((PyObject*)(&PyUnicode_Type)));
+    __Pyx_DECREF_SET(__pyx_v_stringify, ((PyObject *)((PyObject*)(&PyUnicode_Type))));
     goto __pyx_L6;
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":929
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":926
  *         if stringify is None:
  *             stringify = unicode
  *         self.stringify = stringify             # <<<<<<<<<<<<<<
@@ -12359,14 +12315,14 @@ static int __pyx_pf_4lxml_9objectify_6PyType___init__(struct __pyx_obj_4lxml_9ob
   __Pyx_DECREF(__pyx_v_self->stringify);
   __pyx_v_self->stringify = __pyx_v_stringify;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":930
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":927
  *             stringify = unicode
  *         self.stringify = stringify
  *         self._schema_types = []             # <<<<<<<<<<<<<<
  * 
  *     def __repr__(self):
  */
-  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
   __Pyx_GOTREF(__pyx_v_self->_schema_types);
@@ -12398,7 +12354,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_3__repr__(PyObject *__pyx_v_s
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":932
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":929
  *         self._schema_types = []
  * 
  *     def __repr__(self):             # <<<<<<<<<<<<<<
@@ -12416,7 +12372,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_2__repr__(struct __pyx_obj_4l
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__repr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":933
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":930
  * 
  *     def __repr__(self):
  *         return u"PyType(%s, %s)" % (self.name, self._type.__name__)             # <<<<<<<<<<<<<<
@@ -12424,9 +12380,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_2__repr__(struct __pyx_obj_4l
  *     def register(self, before=None, after=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_type, __pyx_n_s____name__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self->_type, __pyx_n_s____name__); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_INCREF(__pyx_v_self->name);
   PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self->name);
@@ -12434,7 +12390,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_2__repr__(struct __pyx_obj_4l
   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_18), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 933; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_18), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 930; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __pyx_r = ((PyObject *)__pyx_t_1);
@@ -12470,7 +12426,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_5register(PyObject *__pyx_v_s
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__before,&__pyx_n_s__after,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":935
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":932
  *         return u"PyType(%s, %s)" % (self.name, self._type.__name__)
  * 
  *     def register(self, before=None, after=None):             # <<<<<<<<<<<<<<
@@ -12502,7 +12458,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_5register(PyObject *__pyx_v_s
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "register") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -12517,7 +12473,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_5register(PyObject *__pyx_v_s
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("register", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 935; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("register", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 932; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.PyType.register", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -12558,19 +12514,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
   __Pyx_INCREF(__pyx_v_before);
   __Pyx_INCREF(__pyx_v_after);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":945
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":942
  *         ignored.  Raises ValueError if the dependencies cannot be fulfilled.
  *         """
  *         if self.name == TREE_PYTYPE_NAME:             # <<<<<<<<<<<<<<
  *             raise ValueError, u"Cannot register tree type"
  *         if self.type_check is not None:
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->name, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_self->name, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":946
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":943
  *         """
  *         if self.name == TREE_PYTYPE_NAME:
  *             raise ValueError, u"Cannot register tree type"             # <<<<<<<<<<<<<<
@@ -12578,12 +12534,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *             for item in _TYPE_CHECKS:
  */
     __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_19), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":947
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":944
  *         if self.name == TREE_PYTYPE_NAME:
  *             raise ValueError, u"Cannot register tree type"
  *         if self.type_check is not None:             # <<<<<<<<<<<<<<
@@ -12594,7 +12550,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":948
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":945
  *             raise ValueError, u"Cannot register tree type"
  *         if self.type_check is not None:
  *             for item in _TYPE_CHECKS:             # <<<<<<<<<<<<<<
@@ -12603,55 +12559,54 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  */
     if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_t_1 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
     for (;;) {
       if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 948; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
-      __Pyx_XDECREF(__pyx_v_item);
-      __pyx_v_item = __pyx_t_5;
+      __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_5);
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":949
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":946
  *         if self.type_check is not None:
  *             for item in _TYPE_CHECKS:
  *                 if item[0] is self.type_check:             # <<<<<<<<<<<<<<
  *                     _TYPE_CHECKS.remove(item)
  *                     break
  */
-      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_item, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_item, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __pyx_t_3 = (__pyx_t_5 == __pyx_v_self->type_check);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_t_2 = (__pyx_t_3 != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":950
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":947
  *             for item in _TYPE_CHECKS:
  *                 if item[0] is self.type_check:
  *                     _TYPE_CHECKS.remove(item)             # <<<<<<<<<<<<<<
  *                     break
  *             entry = (self.type_check, self)
  */
-        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
-        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __Pyx_INCREF(__pyx_v_item);
         PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v_item);
         __Pyx_GIVEREF(__pyx_v_item);
-        __pyx_t_7 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 950; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 947; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":951
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":948
  *                 if item[0] is self.type_check:
  *                     _TYPE_CHECKS.remove(item)
  *                     break             # <<<<<<<<<<<<<<
@@ -12666,14 +12621,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
     __pyx_L6_break:;
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":952
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":949
  *                     _TYPE_CHECKS.remove(item)
  *                     break
  *             entry = (self.type_check, self)             # <<<<<<<<<<<<<<
  *             first_pos = 0
  *             last_pos = -1
  */
-    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 949; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(__pyx_v_self->type_check);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->type_check);
@@ -12684,7 +12639,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
     __pyx_v_entry = ((PyObject*)__pyx_t_1);
     __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":953
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":950
  *                     break
  *             entry = (self.type_check, self)
  *             first_pos = 0             # <<<<<<<<<<<<<<
@@ -12694,7 +12649,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
     __Pyx_INCREF(__pyx_int_0);
     __pyx_v_first_pos = __pyx_int_0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":954
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":951
  *             entry = (self.type_check, self)
  *             first_pos = 0
  *             last_pos = -1             # <<<<<<<<<<<<<<
@@ -12704,23 +12659,23 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
     __Pyx_INCREF(__pyx_int_neg_1);
     __pyx_v_last_pos = __pyx_int_neg_1;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":955
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":952
  *             first_pos = 0
  *             last_pos = -1
  *             if before or after:             # <<<<<<<<<<<<<<
  *                 if before is None:
  *                     before = ()
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_before); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_before); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!__pyx_t_2) {
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_after); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_after); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_8 = __pyx_t_3;
     } else {
       __pyx_t_8 = __pyx_t_2;
     }
     if (__pyx_t_8) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":956
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":953
  *             last_pos = -1
  *             if before or after:
  *                 if before is None:             # <<<<<<<<<<<<<<
@@ -12731,7 +12686,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
       __pyx_t_2 = (__pyx_t_8 != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":957
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":954
  *             if before or after:
  *                 if before is None:
  *                     before = ()             # <<<<<<<<<<<<<<
@@ -12739,12 +12694,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                     after = ()
  */
         __Pyx_INCREF(((PyObject *)__pyx_empty_tuple));
-        __Pyx_DECREF(__pyx_v_before);
-        __pyx_v_before = ((PyObject *)__pyx_empty_tuple);
+        __Pyx_DECREF_SET(__pyx_v_before, ((PyObject *)__pyx_empty_tuple));
         goto __pyx_L9;
       }
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":958
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":955
  *                 if before is None:
  *                     before = ()
  *                 elif after is None:             # <<<<<<<<<<<<<<
@@ -12755,7 +12709,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
       __pyx_t_8 = (__pyx_t_2 != 0);
       if (__pyx_t_8) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":959
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":956
  *                     before = ()
  *                 elif after is None:
  *                     after = ()             # <<<<<<<<<<<<<<
@@ -12763,13 +12717,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                     if last_pos == -1 and pytype.name in before:
  */
         __Pyx_INCREF(((PyObject *)__pyx_empty_tuple));
-        __Pyx_DECREF(__pyx_v_after);
-        __pyx_v_after = ((PyObject *)__pyx_empty_tuple);
+        __Pyx_DECREF_SET(__pyx_v_after, ((PyObject *)__pyx_empty_tuple));
         goto __pyx_L9;
       }
       __pyx_L9:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":960
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":957
  *                 elif after is None:
  *                     after = ()
  *                 for i, (check, pytype) in enumerate(_TYPE_CHECKS):             # <<<<<<<<<<<<<<
@@ -12782,9 +12735,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
       for (;;) {
         if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_7)) break;
         #if CYTHON_COMPILING_IN_CPYTHON
-        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #else
-        __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         #endif
         if ((likely(PyTuple_CheckExact(__pyx_t_6))) || (PyList_CheckExact(__pyx_t_6))) {
           PyObject* sequence = __pyx_t_6;
@@ -12796,7 +12749,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
           if (unlikely(size != 2)) {
             if (size > 2) __Pyx_RaiseTooManyValuesError(2);
             else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           #if CYTHON_COMPILING_IN_CPYTHON
           if (likely(PyTuple_CheckExact(sequence))) {
@@ -12809,16 +12762,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
           __Pyx_INCREF(__pyx_t_5);
           __Pyx_INCREF(__pyx_t_9);
           #else
-          __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_9);
           #endif
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         } else
         {
           Py_ssize_t index = -1;
-          __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_10);
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           __pyx_t_11 = Py_TYPE(__pyx_t_10)->tp_iternext;
@@ -12826,7 +12779,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
           __Pyx_GOTREF(__pyx_t_5);
           index = 1; __pyx_t_9 = __pyx_t_11(__pyx_t_10); if (unlikely(!__pyx_t_9)) goto __pyx_L12_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_9);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_11(__pyx_t_10), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_t_11 = NULL;
           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
           goto __pyx_L13_unpacking_done;
@@ -12834,38 +12787,35 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
           __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
           __pyx_t_11 = NULL;
           if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L13_unpacking_done:;
         }
-        __Pyx_XDECREF(__pyx_v_check);
-        __pyx_v_check = __pyx_t_5;
+        __Pyx_XDECREF_SET(__pyx_v_check, __pyx_t_5);
         __pyx_t_5 = 0;
-        __Pyx_XDECREF(__pyx_v_pytype);
-        __pyx_v_pytype = __pyx_t_9;
+        __Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_9);
         __pyx_t_9 = 0;
         __Pyx_INCREF(__pyx_t_1);
-        __Pyx_XDECREF(__pyx_v_i);
-        __pyx_v_i = __pyx_t_1;
-        __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
+        __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __Pyx_DECREF(__pyx_t_1);
         __pyx_t_1 = __pyx_t_6;
         __pyx_t_6 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":961
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":958
  *                     after = ()
  *                 for i, (check, pytype) in enumerate(_TYPE_CHECKS):
  *                     if last_pos == -1 and pytype.name in before:             # <<<<<<<<<<<<<<
  *                         last_pos = i
  *                     if pytype.name in after:
  */
-        __pyx_t_6 = PyObject_RichCompare(__pyx_v_last_pos, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PyObject_RichCompare(__pyx_v_last_pos, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         if (__pyx_t_8) {
-          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_6);
-          __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_t_6, __pyx_v_before, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_2 = (__Pyx_PySequence_Contains(__pyx_t_6, __pyx_v_before, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           __pyx_t_3 = __pyx_t_2;
         } else {
@@ -12873,7 +12823,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
         }
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":962
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":959
  *                 for i, (check, pytype) in enumerate(_TYPE_CHECKS):
  *                     if last_pos == -1 and pytype.name in before:
  *                         last_pos = i             # <<<<<<<<<<<<<<
@@ -12881,37 +12831,35 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                         first_pos = i+1
  */
           __Pyx_INCREF(__pyx_v_i);
-          __Pyx_DECREF(__pyx_v_last_pos);
-          __pyx_v_last_pos = __pyx_v_i;
+          __Pyx_DECREF_SET(__pyx_v_last_pos, __pyx_v_i);
           goto __pyx_L14;
         }
         __pyx_L14:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":963
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":960
  *                     if last_pos == -1 and pytype.name in before:
  *                         last_pos = i
  *                     if pytype.name in after:             # <<<<<<<<<<<<<<
  *                         first_pos = i+1
  *             if last_pos == -1:
  */
-        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
-        __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_t_6, __pyx_v_after, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = (__Pyx_PySequence_Contains(__pyx_t_6, __pyx_v_after, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         __pyx_t_8 = (__pyx_t_3 != 0);
         if (__pyx_t_8) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":964
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":961
  *                         last_pos = i
  *                     if pytype.name in after:
  *                         first_pos = i+1             # <<<<<<<<<<<<<<
  *             if last_pos == -1:
  *                 _TYPE_CHECKS.append(entry)
  */
-          __pyx_t_6 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_6 = PyNumber_Add(__pyx_v_i, __pyx_int_1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 961; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_6);
-          __Pyx_DECREF(__pyx_v_first_pos);
-          __pyx_v_first_pos = __pyx_t_6;
+          __Pyx_DECREF_SET(__pyx_v_first_pos, __pyx_t_6);
           __pyx_t_6 = 0;
           goto __pyx_L15;
         }
@@ -12923,19 +12871,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
     }
     __pyx_L8:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":965
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":962
  *                     if pytype.name in after:
  *                         first_pos = i+1
  *             if last_pos == -1:             # <<<<<<<<<<<<<<
  *                 _TYPE_CHECKS.append(entry)
  *             elif first_pos > last_pos:
  */
-    __pyx_t_1 = PyObject_RichCompare(__pyx_v_last_pos, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_RichCompare(__pyx_v_last_pos, __pyx_int_neg_1, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 962; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     if (__pyx_t_8) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":966
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":963
  *                         first_pos = i+1
  *             if last_pos == -1:
  *                 _TYPE_CHECKS.append(entry)             # <<<<<<<<<<<<<<
@@ -12944,25 +12892,25 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  */
       if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS) == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "append");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_4lxml_9objectify__TYPE_CHECKS, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = __Pyx_PyList_Append(__pyx_v_4lxml_9objectify__TYPE_CHECKS, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 963; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L16;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":967
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":964
  *             if last_pos == -1:
  *                 _TYPE_CHECKS.append(entry)
  *             elif first_pos > last_pos:             # <<<<<<<<<<<<<<
  *                 raise ValueError, u"inconsistent before/after dependencies"
  *             else:
  */
-    __pyx_t_1 = PyObject_RichCompare(__pyx_v_first_pos, __pyx_v_last_pos, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyObject_RichCompare(__pyx_v_first_pos, __pyx_v_last_pos, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     if (__pyx_t_8) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":968
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":965
  *                 _TYPE_CHECKS.append(entry)
  *             elif first_pos > last_pos:
  *                 raise ValueError, u"inconsistent before/after dependencies"             # <<<<<<<<<<<<<<
@@ -12970,12 +12918,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  *                 _TYPE_CHECKS.insert(last_pos, entry)
  */
       __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_20), 0, 0);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 965; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L16;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":970
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":967
  *                 raise ValueError, u"inconsistent before/after dependencies"
  *             else:
  *                 _TYPE_CHECKS.insert(last_pos, entry)             # <<<<<<<<<<<<<<
@@ -12984,17 +12932,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  */
       if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS) == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "insert");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_last_pos); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_12 = PyList_Insert(__pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_t_4, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyIndex_AsSsize_t(__pyx_v_last_pos); if (unlikely((__pyx_t_4 == (Py_ssize_t)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_12 = PyList_Insert(__pyx_v_4lxml_9objectify__TYPE_CHECKS, __pyx_t_4, ((PyObject *)__pyx_v_entry)); if (unlikely(__pyx_t_12 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     __pyx_L16:;
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":972
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":969
  *                 _TYPE_CHECKS.insert(last_pos, entry)
  * 
  *         _PYTYPE_DICT[self.name] = self             # <<<<<<<<<<<<<<
@@ -13003,11 +12951,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  if (PyDict_SetItem(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), __pyx_v_self->name, ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 972; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), __pyx_v_self->name, ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":973
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":970
  * 
  *         _PYTYPE_DICT[self.name] = self
  *         for xs_type in self._schema_types:             # <<<<<<<<<<<<<<
@@ -13016,21 +12964,20 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  */
   if (unlikely(((PyObject *)__pyx_v_self->_schema_types) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_1 = ((PyObject *)__pyx_v_self->_schema_types); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
   for (;;) {
     if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 973; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 970; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    __Pyx_XDECREF(__pyx_v_xs_type);
-    __pyx_v_xs_type = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_xs_type, __pyx_t_7);
     __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":974
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":971
  *         _PYTYPE_DICT[self.name] = self
  *         for xs_type in self._schema_types:
  *             _SCHEMA_TYPE_DICT[xs_type] = self             # <<<<<<<<<<<<<<
@@ -13039,9 +12986,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_4register(struct __pyx_obj_4l
  */
     if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    if (PyDict_SetItem(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT), __pyx_v_xs_type, ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 974; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT), __pyx_v_xs_type, ((PyObject *)__pyx_v_self)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -13084,7 +13031,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_7unregister(PyObject *__pyx_v
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":976
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":973
  *             _SCHEMA_TYPE_DICT[xs_type] = self
  * 
  *     def unregister(self):             # <<<<<<<<<<<<<<
@@ -13115,7 +13062,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("unregister", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":978
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":975
  *     def unregister(self):
  *         u"unregister(self)"
  *         if _PYTYPE_DICT.get(self.name) is self:             # <<<<<<<<<<<<<<
@@ -13124,16 +13071,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), __pyx_v_self->name, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 978; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), __pyx_v_self->name, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 975; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_t_2 = (__pyx_t_1 == ((PyObject *)__pyx_v_self));
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":979
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":976
  *         u"unregister(self)"
  *         if _PYTYPE_DICT.get(self.name) is self:
  *             del _PYTYPE_DICT[self.name]             # <<<<<<<<<<<<<<
@@ -13142,14 +13089,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  */
     if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT) == Py_None)) {
       PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    if (PyDict_DelItem(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), __pyx_v_self->name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_DelItem(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), __pyx_v_self->name) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 976; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":980
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":977
  *         if _PYTYPE_DICT.get(self.name) is self:
  *             del _PYTYPE_DICT[self.name]
  *         for xs_type, pytype in list(_SCHEMA_TYPE_DICT.items()):             # <<<<<<<<<<<<<<
@@ -13158,16 +13105,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "items");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyDict_Items(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
@@ -13175,9 +13122,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
   for (;;) {
     if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
       PyObject* sequence = __pyx_t_1;
@@ -13189,7 +13136,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -13202,16 +13149,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
       __Pyx_INCREF(__pyx_t_6);
       __Pyx_INCREF(__pyx_t_7);
       #else
-      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       #endif
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
@@ -13219,7 +13166,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
       __Pyx_GOTREF(__pyx_t_6);
       index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_7);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_9 = NULL;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L7_unpacking_done;
@@ -13227,17 +13174,15 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 980; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 977; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_xs_type);
-    __pyx_v_xs_type = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_xs_type, __pyx_t_6);
     __pyx_t_6 = 0;
-    __Pyx_XDECREF(__pyx_v_pytype);
-    __pyx_v_pytype = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_7);
     __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":981
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":978
  *             del _PYTYPE_DICT[self.name]
  *         for xs_type, pytype in list(_SCHEMA_TYPE_DICT.items()):
  *             if pytype is self:             # <<<<<<<<<<<<<<
@@ -13248,7 +13193,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
     __pyx_t_2 = (__pyx_t_3 != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":982
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":979
  *         for xs_type, pytype in list(_SCHEMA_TYPE_DICT.items()):
  *             if pytype is self:
  *                 del _SCHEMA_TYPE_DICT[xs_type]             # <<<<<<<<<<<<<<
@@ -13257,17 +13202,17 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
  */
       if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT) == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      if (unlikely(!__pyx_v_xs_type)) { __Pyx_RaiseUnboundLocalError("xs_type"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
-      if (PyDict_DelItem(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT), __pyx_v_xs_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 982; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (unlikely(!__pyx_v_xs_type)) { __Pyx_RaiseUnboundLocalError("xs_type"); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;} }
+      if (PyDict_DelItem(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT), __pyx_v_xs_type) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 979; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L8;
     }
     __pyx_L8:;
   }
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":983
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":980
  *             if pytype is self:
  *                 del _SCHEMA_TYPE_DICT[xs_type]
  *         if self.type_check is None:             # <<<<<<<<<<<<<<
@@ -13278,7 +13223,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":984
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":981
  *                 del _SCHEMA_TYPE_DICT[xs_type]
  *         if self.type_check is None:
  *             return             # <<<<<<<<<<<<<<
@@ -13292,7 +13237,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
   }
   __pyx_L9:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":985
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":982
  *         if self.type_check is None:
  *             return
  *         try:             # <<<<<<<<<<<<<<
@@ -13306,16 +13251,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
     __Pyx_XGOTREF(__pyx_t_12);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":986
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":983
  *             return
  *         try:
  *             _TYPE_CHECKS.remove( (self.type_check, self) )             # <<<<<<<<<<<<<<
  *         except ValueError:
  *             pass
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS), __pyx_n_s__remove); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_INCREF(__pyx_v_self->type_check);
       PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self->type_check);
@@ -13323,12 +13268,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
       __Pyx_INCREF(((PyObject *)__pyx_v_self));
       PyTuple_SET_ITEM(__pyx_t_1, 1, ((PyObject *)__pyx_v_self));
       __Pyx_GIVEREF(((PyObject *)__pyx_v_self));
-      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
       __Pyx_GOTREF(__pyx_t_7);
       PyTuple_SET_ITEM(__pyx_t_7, 0, ((PyObject *)__pyx_t_1));
       __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
       __pyx_t_1 = 0;
-      __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 986; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_7), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 983; __pyx_clineno = __LINE__; goto __pyx_L10_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
@@ -13345,7 +13290,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_6unregister(struct __pyx_obj_
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
     __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":987
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":984
  *         try:
  *             _TYPE_CHECKS.remove( (self.type_check, self) )
  *         except ValueError:             # <<<<<<<<<<<<<<
@@ -13399,7 +13344,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_14xmlSchemaTypes_1__get__(PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":995
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":992
  *         Note that this must be set before registering the type!
  *         """
  *         def __get__(self):             # <<<<<<<<<<<<<<
@@ -13412,7 +13357,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6PyType_14xmlSchemaTypes___get__(stru
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("__get__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":996
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":993
  *         """
  *         def __get__(self):
  *             return self._schema_types             # <<<<<<<<<<<<<<
@@ -13442,7 +13387,7 @@ static int __pyx_pw_4lxml_9objectify_6PyType_14xmlSchemaTypes_3__set__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":997
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":994
  *         def __get__(self):
  *             return self._schema_types
  *         def __set__(self, types):             # <<<<<<<<<<<<<<
@@ -13460,14 +13405,14 @@ static int __pyx_pf_4lxml_9objectify_6PyType_14xmlSchemaTypes_2__set__(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__set__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":998
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":995
  *             return self._schema_types
  *         def __set__(self, types):
  *             self._schema_types = list(map(unicode, types))             # <<<<<<<<<<<<<<
  * 
  * 
  */
-  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)((PyObject*)(&PyUnicode_Type))));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)((PyObject*)(&PyUnicode_Type))));
@@ -13475,15 +13420,15 @@ static int __pyx_pf_4lxml_9objectify_6PyType_14xmlSchemaTypes_2__set__(struct __
   __Pyx_INCREF(__pyx_v_types);
   PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_types);
   __Pyx_GIVEREF(__pyx_v_types);
-  __pyx_t_2 = PyObject_Call(__pyx_builtin_map, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_builtin_map, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)(&PyList_Type))), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_GIVEREF(__pyx_t_2);
@@ -13515,7 +13460,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_4name_1__get__(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":908
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":905
  *     matching type will be used.
  *     """
  *     cdef readonly object name             # <<<<<<<<<<<<<<
@@ -13550,7 +13495,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_10type_check_1__get__(PyObjec
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":909
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":906
  *     """
  *     cdef readonly object name
  *     cdef readonly object type_check             # <<<<<<<<<<<<<<
@@ -13585,7 +13530,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_6PyType_9stringify_1__get__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":910
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":907
  *     cdef readonly object name
  *     cdef readonly object type_check
  *     cdef readonly object stringify             # <<<<<<<<<<<<<<
@@ -13621,7 +13566,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_7__lower_bool(PyObject *__pyx_self, P
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1005
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1002
  * cdef list _TYPE_CHECKS = []
  * 
  * def __lower_bool(b):             # <<<<<<<<<<<<<<
@@ -13639,7 +13584,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6__lower_bool(CYTHON_UNUSED PyObject
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__lower_bool", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1006
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1003
  * 
  * def __lower_bool(b):
  *     return u"true" if b else u"false"             # <<<<<<<<<<<<<<
@@ -13647,7 +13592,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6__lower_bool(CYTHON_UNUSED PyObject
  * cdef _pytypename(obj):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_b); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_b); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   if (__pyx_t_2) {
     __Pyx_INCREF(((PyObject *)__pyx_n_u__true));
     __pyx_t_1 = ((PyObject *)__pyx_n_u__true);
@@ -13671,7 +13616,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_6__lower_bool(CYTHON_UNUSED PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1008
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1005
  *     return u"true" if b else u"false"
  * 
  * cdef _pytypename(obj):             # <<<<<<<<<<<<<<
@@ -13689,7 +13634,7 @@ static PyObject *__pyx_f_4lxml_9objectify__pytypename(PyObject *__pyx_v_obj) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_pytypename", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1009
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1006
  * 
  * cdef _pytypename(obj):
  *     return u"str" if python._isString(obj) else _typename(obj)             # <<<<<<<<<<<<<<
@@ -13701,7 +13646,7 @@ static PyObject *__pyx_f_4lxml_9objectify__pytypename(PyObject *__pyx_v_obj) {
     __Pyx_INCREF(((PyObject *)__pyx_n_u__str));
     __pyx_t_1 = ((PyObject *)__pyx_n_u__str);
   } else {
-    __pyx_t_2 = __pyx_f_4lxml_9objectify__typename(__pyx_v_obj); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1009; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __pyx_f_4lxml_9objectify__typename(__pyx_v_obj); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1006; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_t_1 = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -13736,7 +13681,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_9pytypename(PyObject *__pyx_self, PyO
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1011
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1008
  *     return u"str" if python._isString(obj) else _typename(obj)
  * 
  * def pytypename(obj):             # <<<<<<<<<<<<<<
@@ -13753,7 +13698,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_8pytypename(CYTHON_UNUSED PyObject *_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("pytypename", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1016
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1013
  *     Find the name of the corresponding PyType for a Python object.
  *     """
  *     return _pytypename(obj)             # <<<<<<<<<<<<<<
@@ -13761,7 +13706,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_8pytypename(CYTHON_UNUSED PyObject *_
  * cdef _registerPyTypes():
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__pytypename(__pyx_v_obj); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__pytypename(__pyx_v_obj); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1013; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -13779,7 +13724,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_8pytypename(CYTHON_UNUSED PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1018
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1015
  *     return _pytypename(obj)
  * 
  * cdef _registerPyTypes():             # <<<<<<<<<<<<<<
@@ -13799,14 +13744,14 @@ static PyObject *__pyx_f_4lxml_9objectify__registerPyTypes(void) {
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_registerPyTypes", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1019
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1016
  * 
  * cdef _registerPyTypes():
  *     pytype = PyType(u'int', int, IntElement)             # <<<<<<<<<<<<<<
  *     pytype.xmlSchemaTypes = (u"integer", u"int", u"short", u"byte", u"unsignedShort",
  *                              u"unsignedByte", u"nonPositiveInteger",
  */
-  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_n_u__int));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_u__int));
@@ -13817,43 +13762,43 @@ static PyObject *__pyx_f_4lxml_9objectify__registerPyTypes(void) {
   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_IntElement)));
   PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_IntElement)));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_IntElement)));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1019; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1016; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1020
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1017
  * cdef _registerPyTypes():
  *     pytype = PyType(u'int', int, IntElement)
  *     pytype.xmlSchemaTypes = (u"integer", u"int", u"short", u"byte", u"unsignedShort",             # <<<<<<<<<<<<<<
  *                              u"unsignedByte", u"nonPositiveInteger",
  *                              u"negativeInteger", u"long", u"nonNegativeInteger",
  */
-  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_21)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_21)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1024
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1021
  *                              u"negativeInteger", u"long", u"nonNegativeInteger",
  *                              u"unsignedLong", u"unsignedInt", u"positiveInteger",)
  *     pytype.register()             # <<<<<<<<<<<<<<
  * 
  *     # 'long' type just for backwards compatibility
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1021; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1027
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1024
  * 
  *     # 'long' type just for backwards compatibility
  *     pytype = PyType(u'long', None, IntElement)             # <<<<<<<<<<<<<<
  *     pytype.register()
  * 
  */
-  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_n_u__long));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_u__long));
@@ -13864,35 +13809,34 @@ static PyObject *__pyx_f_4lxml_9objectify__registerPyTypes(void) {
   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_IntElement)));
   PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_IntElement)));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_IntElement)));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1024; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-  __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
+  __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1028
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1025
  *     # 'long' type just for backwards compatibility
  *     pytype = PyType(u'long', None, IntElement)
  *     pytype.register()             # <<<<<<<<<<<<<<
  * 
  *     pytype = PyType(u'float', float, FloatElement)
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1025; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1030
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1027
  *     pytype.register()
  * 
  *     pytype = PyType(u'float', float, FloatElement)             # <<<<<<<<<<<<<<
  *     pytype.xmlSchemaTypes = (u"double", u"float")
  *     pytype.register()
  */
-  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_n_u__float));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_n_u__float));
@@ -13903,48 +13847,47 @@ static PyObject *__pyx_f_4lxml_9objectify__registerPyTypes(void) {
   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_FloatElement)));
   PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_FloatElement)));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_FloatElement)));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1030; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1027; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-  __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
+  __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1031
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1028
  * 
  *     pytype = PyType(u'float', float, FloatElement)
  *     pytype.xmlSchemaTypes = (u"double", u"float")             # <<<<<<<<<<<<<<
  *     pytype.register()
  * 
  */
-  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_22)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_22)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1032
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1029
  *     pytype = PyType(u'float', float, FloatElement)
  *     pytype.xmlSchemaTypes = (u"double", u"float")
  *     pytype.register()             # <<<<<<<<<<<<<<
  * 
  *     pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1029; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1034
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1031
  *     pytype.register()
  * 
  *     pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)             # <<<<<<<<<<<<<<
  *     pytype.xmlSchemaTypes = (u"boolean",)
  *     pytype.register()
  */
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s____checkBool); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s____checkBool); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s____lower_bool); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s____lower_bool); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_n_u__bool));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_u__bool));
@@ -13958,44 +13901,43 @@ static PyObject *__pyx_f_4lxml_9objectify__registerPyTypes(void) {
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_1 = 0;
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1034; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-  __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
+  __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1035
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1032
  * 
  *     pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
  *     pytype.xmlSchemaTypes = (u"boolean",)             # <<<<<<<<<<<<<<
  *     pytype.register()
  * 
  */
-  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_23)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_23)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1036
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1033
  *     pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
  *     pytype.xmlSchemaTypes = (u"boolean",)
  *     pytype.register()             # <<<<<<<<<<<<<<
  * 
  *     pytype = PyType(u'str', None, StringElement)
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1033; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1038
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1035
  *     pytype.register()
  * 
  *     pytype = PyType(u'str', None, StringElement)             # <<<<<<<<<<<<<<
  *     pytype.xmlSchemaTypes = (u"string", u"normalizedString", u"token", u"language",
  *                              u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
  */
-  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_n_u__str));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_u__str));
@@ -14006,44 +13948,43 @@ static PyObject *__pyx_f_4lxml_9objectify__registerPyTypes(void) {
   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement)));
   PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement)));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement)));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1038; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-  __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
+  __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1039
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1036
  * 
  *     pytype = PyType(u'str', None, StringElement)
  *     pytype.xmlSchemaTypes = (u"string", u"normalizedString", u"token", u"language",             # <<<<<<<<<<<<<<
  *                              u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
  *                              u"NMTOKEN", )
  */
-  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_24)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_PyObject_SetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__xmlSchemaTypes, ((PyObject *)__pyx_k_tuple_24)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1042
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1039
  *                              u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
  *                              u"NMTOKEN", )
  *     pytype.register()             # <<<<<<<<<<<<<<
  * 
  *     # since lxml 2.0
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1045
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1042
  * 
  *     # since lxml 2.0
  *     pytype = PyType(u'NoneType', None, NoneElement)             # <<<<<<<<<<<<<<
  *     pytype.register()
  * 
  */
-  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_n_u__NoneType));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_u__NoneType));
@@ -14054,35 +13995,34 @@ static PyObject *__pyx_f_4lxml_9objectify__registerPyTypes(void) {
   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_NoneElement)));
   PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_NoneElement)));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_NoneElement)));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1045; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1042; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-  __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
+  __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1046
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1043
  *     # since lxml 2.0
  *     pytype = PyType(u'NoneType', None, NoneElement)
  *     pytype.register()             # <<<<<<<<<<<<<<
  * 
  *     # backwards compatibility
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1043; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1049
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1046
  * 
  *     # backwards compatibility
  *     pytype = PyType(u'none', None, NoneElement)             # <<<<<<<<<<<<<<
  *     pytype.register()
  * 
  */
-  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(((PyObject *)__pyx_n_u__none));
   PyTuple_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_n_u__none));
@@ -14093,23 +14033,22 @@ static PyObject *__pyx_f_4lxml_9objectify__registerPyTypes(void) {
   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_NoneElement)));
   PyTuple_SET_ITEM(__pyx_t_3, 2, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_NoneElement)));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_NoneElement)));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1049; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1046; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-  __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
+  __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1050
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1047
  *     # backwards compatibility
  *     pytype = PyType(u'none', None, NoneElement)
  *     pytype.register()             # <<<<<<<<<<<<<<
  * 
  * # non-registered PyType for inner tree elements
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_pytype), __pyx_n_s__register); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1047; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -14142,7 +14081,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_11getRegisteredTypes(PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1057
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1054
  * _registerPyTypes()
  * 
  * def getRegisteredTypes():             # <<<<<<<<<<<<<<
@@ -14174,31 +14113,31 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("getRegisteredTypes", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1072
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1069
  *     end of the type list.
  *     """
  *     cdef list types = []             # <<<<<<<<<<<<<<
  *     cdef set known = set()
  *     for check, pytype in _TYPE_CHECKS:
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1069; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_types = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1073
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1070
  *     """
  *     cdef list types = []
  *     cdef set known = set()             # <<<<<<<<<<<<<<
  *     for check, pytype in _TYPE_CHECKS:
  *         name = pytype.name
  */
-  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PySet_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1070; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_v_known = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1074
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1071
  *     cdef list types = []
  *     cdef set known = set()
  *     for check, pytype in _TYPE_CHECKS:             # <<<<<<<<<<<<<<
@@ -14207,15 +14146,15 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_1 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
   for (;;) {
     if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
       PyObject* sequence = __pyx_t_3;
@@ -14227,7 +14166,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -14240,16 +14179,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
       __Pyx_INCREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_t_5);
       #else
-      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       #endif
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       __pyx_t_7 = Py_TYPE(__pyx_t_6)->tp_iternext;
@@ -14257,7 +14196,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
       __Pyx_GOTREF(__pyx_t_4);
       index = 1; __pyx_t_5 = __pyx_t_7(__pyx_t_6); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_5);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_7(__pyx_t_6), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_7 = NULL;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       goto __pyx_L6_unpacking_done;
@@ -14265,64 +14204,61 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __pyx_t_7 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1071; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L6_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_check);
-    __pyx_v_check = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_check, __pyx_t_4);
     __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_v_pytype);
-    __pyx_v_pytype = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_5);
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1075
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1072
  *     cdef set known = set()
  *     for check, pytype in _TYPE_CHECKS:
  *         name = pytype.name             # <<<<<<<<<<<<<<
  *         if name not in known:
  *             known.add(name)
  */
-    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1072; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_3;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_3);
     __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1076
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1073
  *     for check, pytype in _TYPE_CHECKS:
  *         name = pytype.name
  *         if name not in known:             # <<<<<<<<<<<<<<
  *             known.add(name)
  *             types.append(pytype)
  */
-    __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_v_name, ((PyObject *)__pyx_v_known), Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = (__Pyx_PySequence_Contains(__pyx_v_name, ((PyObject *)__pyx_v_known), Py_NE)); if (unlikely(__pyx_t_8 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1073; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_9 = (__pyx_t_8 != 0);
     if (__pyx_t_9) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1077
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1074
  *         name = pytype.name
  *         if name not in known:
  *             known.add(name)             # <<<<<<<<<<<<<<
  *             types.append(pytype)
  *     for pytype in _PYTYPE_DICT.values():
  */
-      __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1074; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1078
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1075
  *         if name not in known:
  *             known.add(name)
  *             types.append(pytype)             # <<<<<<<<<<<<<<
  *     for pytype in _PYTYPE_DICT.values():
  *         name = pytype.name
  */
-      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1075; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L7;
     }
     __pyx_L7:;
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1079
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1076
  *             known.add(name)
  *             types.append(pytype)
  *     for pytype in _PYTYPE_DICT.values():             # <<<<<<<<<<<<<<
@@ -14331,15 +14267,15 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "values");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_4lxml_9objectify__PYTYPE_DICT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyDict_Values(__pyx_v_4lxml_9objectify__PYTYPE_DICT); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   if (PyList_CheckExact(__pyx_t_1) || PyTuple_CheckExact(__pyx_t_1)) {
     __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;
     __pyx_t_11 = NULL;
   } else {
-    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext;
   }
@@ -14348,80 +14284,78 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
     if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_3)) {
       if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_3)) {
       if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_1 = __pyx_t_11(__pyx_t_3);
       if (unlikely(!__pyx_t_1)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1076; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
       __Pyx_GOTREF(__pyx_t_1);
     }
-    __Pyx_XDECREF(__pyx_v_pytype);
-    __pyx_v_pytype = __pyx_t_1;
+    __Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_1);
     __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1080
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1077
  *             types.append(pytype)
  *     for pytype in _PYTYPE_DICT.values():
  *         name = pytype.name             # <<<<<<<<<<<<<<
  *         if name not in known:
  *             known.add(name)
  */
-    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_pytype, __pyx_n_s__name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1077; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_1;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1);
     __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1081
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1078
  *     for pytype in _PYTYPE_DICT.values():
  *         name = pytype.name
  *         if name not in known:             # <<<<<<<<<<<<<<
  *             known.add(name)
  *             types.append(pytype)
  */
-    __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_v_name, ((PyObject *)__pyx_v_known), Py_NE)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1081; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_9 = (__Pyx_PySequence_Contains(__pyx_v_name, ((PyObject *)__pyx_v_known), Py_NE)); if (unlikely(__pyx_t_9 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1078; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_8 = (__pyx_t_9 != 0);
     if (__pyx_t_8) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1082
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1079
  *         name = pytype.name
  *         if name not in known:
  *             known.add(name)             # <<<<<<<<<<<<<<
  *             types.append(pytype)
  *     return types
  */
-      __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1082; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = PySet_Add(__pyx_v_known, __pyx_v_name); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1079; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1083
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1080
  *         if name not in known:
  *             known.add(name)
  *             types.append(pytype)             # <<<<<<<<<<<<<<
  *     return types
  * 
  */
-      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1083; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_types, __pyx_v_pytype); if (unlikely(__pyx_t_10 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1080; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L10;
     }
     __pyx_L10:;
   }
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1084
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1081
  *             known.add(name)
  *             types.append(pytype)
  *     return types             # <<<<<<<<<<<<<<
@@ -14454,7 +14388,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10getRegisteredTypes(CYTHON_UNUSED Py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1086
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1083
  *     return types
  * 
  * cdef PyType _guessPyType(value, PyType defaulttype):             # <<<<<<<<<<<<<<
@@ -14485,7 +14419,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_guessPyType", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1087
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1084
  * 
  * cdef PyType _guessPyType(value, PyType defaulttype):
  *     if value is None:             # <<<<<<<<<<<<<<
@@ -14496,7 +14430,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1088
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1085
  * cdef PyType _guessPyType(value, PyType defaulttype):
  *     if value is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -14511,7 +14445,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1089
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1086
  *     if value is None:
  *         return None
  *     for type_check, tested_pytype in _TYPE_CHECKS:             # <<<<<<<<<<<<<<
@@ -14520,15 +14454,15 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_3 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
   for (;;) {
     if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
       PyObject* sequence = __pyx_t_5;
@@ -14540,7 +14474,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -14553,16 +14487,16 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
       __Pyx_INCREF(__pyx_t_6);
       __Pyx_INCREF(__pyx_t_7);
       #else
-      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       #endif
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
@@ -14570,7 +14504,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
       __Pyx_GOTREF(__pyx_t_6);
       index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L6_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_7);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_9 = NULL;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L7_unpacking_done;
@@ -14578,17 +14512,15 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1089; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1086; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_type_check);
-    __pyx_v_type_check = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_type_check, __pyx_t_6);
     __pyx_t_6 = 0;
-    __Pyx_XDECREF(__pyx_v_tested_pytype);
-    __pyx_v_tested_pytype = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_tested_pytype, __pyx_t_7);
     __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1090
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1087
  *         return None
  *     for type_check, tested_pytype in _TYPE_CHECKS:
  *         try:             # <<<<<<<<<<<<<<
@@ -14602,24 +14534,24 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
       __Pyx_XGOTREF(__pyx_t_12);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1091
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1088
  *     for type_check, tested_pytype in _TYPE_CHECKS:
  *         try:
  *             type_check(value)             # <<<<<<<<<<<<<<
  *             return <PyType>tested_pytype
  *         except IGNORABLE_ERRORS:
  */
-        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_value);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_value);
         __Pyx_GIVEREF(__pyx_v_value);
-        __pyx_t_7 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1091; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
+        __pyx_t_7 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1088; __pyx_clineno = __LINE__; goto __pyx_L8_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1092
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1089
  *         try:
  *             type_check(value)
  *             return <PyType>tested_pytype             # <<<<<<<<<<<<<<
@@ -14648,7 +14580,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1093
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1090
  *             type_check(value)
  *             return <PyType>tested_pytype
  *         except IGNORABLE_ERRORS:             # <<<<<<<<<<<<<<
@@ -14675,7 +14607,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
   }
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1096
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1093
  *             # could not be parsed as the specified type => ignore
  *             pass
  *     return defaulttype             # <<<<<<<<<<<<<<
@@ -14705,7 +14637,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__guess
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1098
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1095
  *     return defaulttype
  * 
  * cdef object _guessElementClass(tree.xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -14737,19 +14669,19 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_guessElementClass", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1099
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1096
  * 
  * cdef object _guessElementClass(tree.xmlNode* c_node):
  *     value = textOf(c_node)             # <<<<<<<<<<<<<<
  *     if value is None:
  *         return None
  */
-  __pyx_t_1 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1096; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_value = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1100
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1097
  * cdef object _guessElementClass(tree.xmlNode* c_node):
  *     value = textOf(c_node)
  *     if value is None:             # <<<<<<<<<<<<<<
@@ -14760,7 +14692,7 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1101
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1098
  *     value = textOf(c_node)
  *     if value is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -14775,19 +14707,19 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1102
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1099
  *     if value is None:
  *         return None
  *     if value == '':             # <<<<<<<<<<<<<<
  *         return StringElement
  * 
  */
-  __pyx_t_1 = PyObject_RichCompare(__pyx_v_value, ((PyObject *)__pyx_kp_s_3), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyObject_RichCompare(__pyx_v_value, ((PyObject *)__pyx_kp_s_3), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1099; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1103
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1100
  *         return None
  *     if value == '':
  *         return StringElement             # <<<<<<<<<<<<<<
@@ -14802,7 +14734,7 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1105
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1102
  *         return StringElement
  * 
  *     for type_check, pytype in _TYPE_CHECKS:             # <<<<<<<<<<<<<<
@@ -14811,15 +14743,15 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_t_1 = ((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS); __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
   for (;;) {
     if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
     if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
       PyObject* sequence = __pyx_t_5;
@@ -14831,7 +14763,7 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -14844,16 +14776,16 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
       __Pyx_INCREF(__pyx_t_6);
       __Pyx_INCREF(__pyx_t_7);
       #else
-      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       #endif
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
@@ -14861,7 +14793,7 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
       __Pyx_GOTREF(__pyx_t_6);
       index = 1; __pyx_t_7 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_7)) goto __pyx_L7_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_7);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_9 = NULL;
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       goto __pyx_L8_unpacking_done;
@@ -14869,17 +14801,15 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __pyx_t_9 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1105; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1102; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L8_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_type_check);
-    __pyx_v_type_check = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_type_check, __pyx_t_6);
     __pyx_t_6 = 0;
-    __Pyx_XDECREF(__pyx_v_pytype);
-    __pyx_v_pytype = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_pytype, __pyx_t_7);
     __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1106
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1103
  * 
  *     for type_check, pytype in _TYPE_CHECKS:
  *         try:             # <<<<<<<<<<<<<<
@@ -14893,24 +14823,24 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
       __Pyx_XGOTREF(__pyx_t_12);
       /*try:*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1107
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1104
  *     for type_check, pytype in _TYPE_CHECKS:
  *         try:
  *             type_check(value)             # <<<<<<<<<<<<<<
  *             return (<PyType>pytype)._type
  *         except IGNORABLE_ERRORS:
  */
-        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_value);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_value);
         __Pyx_GIVEREF(__pyx_v_value);
-        __pyx_t_7 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1107; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
+        __pyx_t_7 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1104; __pyx_clineno = __LINE__; goto __pyx_L9_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1108
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1105
  *         try:
  *             type_check(value)
  *             return (<PyType>pytype)._type             # <<<<<<<<<<<<<<
@@ -14939,7 +14869,7 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
       __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1109
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1106
  *             type_check(value)
  *             return (<PyType>pytype)._type
  *         except IGNORABLE_ERRORS:             # <<<<<<<<<<<<<<
@@ -14966,7 +14896,7 @@ static PyObject *__pyx_f_4lxml_9objectify__guessElementClass(xmlNode *__pyx_v_c_
   }
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1111
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1108
  *         except IGNORABLE_ERRORS:
  *             pass
  *     return None             # <<<<<<<<<<<<<<
@@ -15022,7 +14952,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_28_ObjectifyElementMakerCaller_1__cal
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1124
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1121
  *     cdef bint _annotate
  * 
  *     def __call__(self, *children, **attrib):             # <<<<<<<<<<<<<<
@@ -15053,7 +14983,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__call__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1132
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1129
  *         cdef bint has_children
  *         cdef bint has_string_value
  *         if self._element_factory is None:             # <<<<<<<<<<<<<<
@@ -15064,7 +14994,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1133
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1130
  *         cdef bint has_string_value
  *         if self._element_factory is None:
  *             element = _makeElement(self._tag, None, attrib, self._nsmap)             # <<<<<<<<<<<<<<
@@ -15075,7 +15005,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     __Pyx_INCREF(__pyx_t_3);
     __pyx_t_4 = __pyx_v_self->_nsmap;
     __Pyx_INCREF(__pyx_t_4);
-    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_t_3, Py_None, ((PyObject *)__pyx_v_attrib), __pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1133; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_t_3, Py_None, ((PyObject *)__pyx_v_attrib), __pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1130; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
@@ -15085,14 +15015,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1135
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1132
  *             element = _makeElement(self._tag, None, attrib, self._nsmap)
  *         else:
  *             element = self._element_factory(self._tag, attrib, self._nsmap)             # <<<<<<<<<<<<<<
  * 
  *         pytype_name = None
  */
-    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_INCREF(__pyx_v_self->_tag);
     PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_self->_tag);
@@ -15103,16 +15033,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     __Pyx_INCREF(__pyx_v_self->_nsmap);
     PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_v_self->_nsmap);
     __Pyx_GIVEREF(__pyx_v_self->_nsmap);
-    __pyx_t_4 = PyObject_Call(__pyx_v_self->_element_factory, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_v_self->_element_factory, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1135; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1132; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_v_element = ((struct LxmlElement *)__pyx_t_4);
     __pyx_t_4 = 0;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1137
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1134
  *             element = self._element_factory(self._tag, attrib, self._nsmap)
  * 
  *         pytype_name = None             # <<<<<<<<<<<<<<
@@ -15122,7 +15052,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   __Pyx_INCREF(Py_None);
   __pyx_v_pytype_name = Py_None;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1138
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1135
  * 
  *         pytype_name = None
  *         has_children = 0             # <<<<<<<<<<<<<<
@@ -15131,7 +15061,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  */
   __pyx_v_has_children = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1139
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1136
  *         pytype_name = None
  *         has_children = 0
  *         has_string_value = 0             # <<<<<<<<<<<<<<
@@ -15140,7 +15070,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  */
   __pyx_v_has_string_value = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1140
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1137
  *         has_children = 0
  *         has_string_value = 0
  *         for child in children:             # <<<<<<<<<<<<<<
@@ -15151,15 +15081,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   for (;;) {
     if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
     #if CYTHON_COMPILING_IN_CPYTHON
-    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #else
-    __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     #endif
-    __Pyx_XDECREF(__pyx_v_child);
-    __pyx_v_child = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_5);
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1141
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1138
  *         has_string_value = 0
  *         for child in children:
  *             if child is None:             # <<<<<<<<<<<<<<
@@ -15170,7 +15099,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1142
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1139
  *         for child in children:
  *             if child is None:
  *                 if python.PyTuple_GET_SIZE(children) == 1:             # <<<<<<<<<<<<<<
@@ -15180,7 +15109,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       __pyx_t_1 = ((PyTuple_GET_SIZE(((PyObject *)__pyx_v_children)) == 1) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1144
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1141
  *                 if python.PyTuple_GET_SIZE(children) == 1:
  *                     cetree.setAttributeValue(
  *                         element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")             # <<<<<<<<<<<<<<
@@ -15189,7 +15118,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  */
         __pyx_t_5 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
         __Pyx_INCREF(__pyx_t_5);
-        __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_5, ((PyObject *)__pyx_n_u__true)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_5, ((PyObject *)__pyx_n_u__true)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1140; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         goto __pyx_L7;
       }
@@ -15197,7 +15126,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       goto __pyx_L6;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1145
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1142
  *                     cetree.setAttributeValue(
  *                         element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
  *             elif python._isString(child):             # <<<<<<<<<<<<<<
@@ -15207,18 +15136,18 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     __pyx_t_1 = (_isString(__pyx_v_child) != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1146
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1143
  *                         element, XML_SCHEMA_INSTANCE_NIL_ATTR, u"true")
  *             elif python._isString(child):
  *                 _add_text(element, child)             # <<<<<<<<<<<<<<
  *                 has_string_value = 1
  *             elif isinstance(child, _Element):
  */
-      __pyx_t_5 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1146; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1147
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1144
  *             elif python._isString(child):
  *                 _add_text(element, child)
  *                 has_string_value = 1             # <<<<<<<<<<<<<<
@@ -15229,7 +15158,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       goto __pyx_L6;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1148
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1145
  *                 _add_text(element, child)
  *                 has_string_value = 1
  *             elif isinstance(child, _Element):             # <<<<<<<<<<<<<<
@@ -15240,7 +15169,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     __pyx_t_2 = (__pyx_t_1 != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1149
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1146
  *                 has_string_value = 1
  *             elif isinstance(child, _Element):
  *                 cetree.appendChild(element, <_Element>child)             # <<<<<<<<<<<<<<
@@ -15249,7 +15178,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  */
       appendChild(__pyx_v_element, ((struct LxmlElement *)__pyx_v_child));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1150
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1147
  *             elif isinstance(child, _Element):
  *                 cetree.appendChild(element, <_Element>child)
  *                 has_children = 1             # <<<<<<<<<<<<<<
@@ -15260,7 +15189,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       goto __pyx_L6;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1151
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1148
  *                 cetree.appendChild(element, <_Element>child)
  *                 has_children = 1
  *             elif isinstance(child, _ObjectifyElementMakerCaller):             # <<<<<<<<<<<<<<
@@ -15271,7 +15200,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1152
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1149
  *                 has_children = 1
  *             elif isinstance(child, _ObjectifyElementMakerCaller):
  *                 elementMaker = <_ObjectifyElementMakerCaller>child             # <<<<<<<<<<<<<<
@@ -15279,10 +15208,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  *                     cetree.makeSubElement(element, elementMaker._tag,
  */
       __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)__pyx_v_child)));
-      __Pyx_XDECREF(((PyObject *)__pyx_v_elementMaker));
-      __pyx_v_elementMaker = ((struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)__pyx_v_child);
+      __Pyx_XDECREF_SET(__pyx_v_elementMaker, ((struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)__pyx_v_child));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1153
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1150
  *             elif isinstance(child, _ObjectifyElementMakerCaller):
  *                 elementMaker = <_ObjectifyElementMakerCaller>child
  *                 if elementMaker._element_factory is None:             # <<<<<<<<<<<<<<
@@ -15293,7 +15221,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       __pyx_t_2 = (__pyx_t_1 != 0);
       if (__pyx_t_2) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1154
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1151
  *                 elementMaker = <_ObjectifyElementMakerCaller>child
  *                 if elementMaker._element_factory is None:
  *                     cetree.makeSubElement(element, elementMaker._tag,             # <<<<<<<<<<<<<<
@@ -15303,14 +15231,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
         __pyx_t_5 = __pyx_v_elementMaker->_tag;
         __Pyx_INCREF(__pyx_t_5);
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1155
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1152
  *                 if elementMaker._element_factory is None:
  *                     cetree.makeSubElement(element, elementMaker._tag,
  *                                           None, None, None, None)             # <<<<<<<<<<<<<<
  *                 else:
  *                     childElement = elementMaker._element_factory(
  */
-        __pyx_t_3 = ((PyObject *)makeSubElement(__pyx_v_element, __pyx_t_5, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = ((PyObject *)makeSubElement(__pyx_v_element, __pyx_t_5, Py_None, Py_None, Py_None, Py_None)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1151; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
@@ -15318,27 +15246,26 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1158
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1155
  *                 else:
  *                     childElement = elementMaker._element_factory(
  *                         elementMaker._tag)             # <<<<<<<<<<<<<<
  *                     cetree.appendChild(element, childElement)
  *                 has_children = 1
  */
-        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_INCREF(__pyx_v_elementMaker->_tag);
         PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_elementMaker->_tag);
         __Pyx_GIVEREF(__pyx_v_elementMaker->_tag);
-        __pyx_t_5 = PyObject_Call(__pyx_v_elementMaker->_element_factory, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyObject_Call(__pyx_v_elementMaker->_element_factory, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-        if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1157; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __Pyx_XDECREF(((PyObject *)__pyx_v_childElement));
-        __pyx_v_childElement = ((struct LxmlElement *)__pyx_t_5);
+        if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1154; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __Pyx_XDECREF_SET(__pyx_v_childElement, ((struct LxmlElement *)__pyx_t_5));
         __pyx_t_5 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1159
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1156
  *                     childElement = elementMaker._element_factory(
  *                         elementMaker._tag)
  *                     cetree.appendChild(element, childElement)             # <<<<<<<<<<<<<<
@@ -15349,7 +15276,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       }
       __pyx_L8:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1160
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1157
  *                         elementMaker._tag)
  *                     cetree.appendChild(element, childElement)
  *                 has_children = 1             # <<<<<<<<<<<<<<
@@ -15361,7 +15288,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1162
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1159
  *                 has_children = 1
  *             else:
  *                 if pytype_name is not None:             # <<<<<<<<<<<<<<
@@ -15372,7 +15299,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       __pyx_t_1 = (__pyx_t_2 != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1164
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1161
  *                 if pytype_name is not None:
  *                     # concatenation always makes the result a string
  *                     has_string_value = 1             # <<<<<<<<<<<<<<
@@ -15384,20 +15311,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       }
       __pyx_L9:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1165
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1162
  *                     # concatenation always makes the result a string
  *                     has_string_value = 1
  *                 pytype_name = _typename(child)             # <<<<<<<<<<<<<<
  *                 pytype = python.PyDict_GetItem(_PYTYPE_DICT, pytype_name)
  *                 if pytype is not NULL:
  */
-      __pyx_t_5 = __pyx_f_4lxml_9objectify__typename(__pyx_v_child); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __pyx_f_4lxml_9objectify__typename(__pyx_v_child); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1162; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __Pyx_DECREF(__pyx_v_pytype_name);
-      __pyx_v_pytype_name = __pyx_t_5;
+      __Pyx_DECREF_SET(__pyx_v_pytype_name, __pyx_t_5);
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1166
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1163
  *                     has_string_value = 1
  *                 pytype_name = _typename(child)
  *                 pytype = python.PyDict_GetItem(_PYTYPE_DICT, pytype_name)             # <<<<<<<<<<<<<<
@@ -15409,7 +15335,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       __pyx_v_pytype = PyDict_GetItem(__pyx_t_5, __pyx_v_pytype_name);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1167
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1164
  *                 pytype_name = _typename(child)
  *                 pytype = python.PyDict_GetItem(_PYTYPE_DICT, pytype_name)
  *                 if pytype is not NULL:             # <<<<<<<<<<<<<<
@@ -15419,22 +15345,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       __pyx_t_1 = ((__pyx_v_pytype != NULL) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1168
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1165
  *                 pytype = python.PyDict_GetItem(_PYTYPE_DICT, pytype_name)
  *                 if pytype is not NULL:
  *                     _add_text(element, (<PyType>pytype).stringify(child))             # <<<<<<<<<<<<<<
  *                 else:
  *                     has_string_value = 1
  */
-        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_child);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_child);
         __Pyx_GIVEREF(__pyx_v_child);
-        __pyx_t_3 = PyObject_Call(((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_pytype)->stringify, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyObject_Call(((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_pytype)->stringify, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-        __pyx_t_5 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_t_3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1165; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -15442,7 +15368,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1170
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1167
  *                     _add_text(element, (<PyType>pytype).stringify(child))
  *                 else:
  *                     has_string_value = 1             # <<<<<<<<<<<<<<
@@ -15451,33 +15377,32 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
  */
         __pyx_v_has_string_value = 1;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1171
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1168
  *                 else:
  *                     has_string_value = 1
  *                     child = unicode(child)             # <<<<<<<<<<<<<<
  *                     _add_text(element, child)
  * 
  */
-        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_INCREF(__pyx_v_child);
         PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_child);
         __Pyx_GIVEREF(__pyx_v_child);
-        __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1171; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PyObject_Call(((PyObject *)((PyObject*)(&PyUnicode_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1168; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-        __Pyx_DECREF(__pyx_v_child);
-        __pyx_v_child = __pyx_t_3;
+        __Pyx_DECREF_SET(__pyx_v_child, __pyx_t_3);
         __pyx_t_3 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1172
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1169
  *                     has_string_value = 1
  *                     child = unicode(child)
  *                     _add_text(element, child)             # <<<<<<<<<<<<<<
  * 
  *         if self._annotate and not has_children:
  */
-        __pyx_t_3 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1172; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = __pyx_f_4lxml_9objectify__add_text(__pyx_v_element, __pyx_v_child); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
         __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       }
@@ -15487,7 +15412,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   }
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1174
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1171
  *                     _add_text(element, child)
  * 
  *         if self._annotate and not has_children:             # <<<<<<<<<<<<<<
@@ -15502,7 +15427,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   }
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1175
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1172
  * 
  *         if self._annotate and not has_children:
  *             if has_string_value:             # <<<<<<<<<<<<<<
@@ -15512,21 +15437,21 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     __pyx_t_2 = (__pyx_v_has_string_value != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1176
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1173
  *         if self._annotate and not has_children:
  *             if has_string_value:
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")             # <<<<<<<<<<<<<<
  *             elif pytype_name is not None:
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
  */
-      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_4, ((PyObject *)__pyx_n_u__str)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1176; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_4, ((PyObject *)__pyx_n_u__str)); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1173; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       goto __pyx_L12;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1177
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1174
  *             if has_string_value:
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")
  *             elif pytype_name is not None:             # <<<<<<<<<<<<<<
@@ -15537,16 +15462,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
     __pyx_t_1 = (__pyx_t_2 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1178
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1175
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, u"str")
  *             elif pytype_name is not None:
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)             # <<<<<<<<<<<<<<
  * 
  *         return element
  */
-      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_4, __pyx_v_pytype_name); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1178; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = setAttributeValue(__pyx_v_element, __pyx_t_4, __pyx_v_pytype_name); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1175; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       goto __pyx_L12;
     }
@@ -15555,7 +15480,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   }
   __pyx_L11:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1180
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1177
  *                 cetree.setAttributeValue(element, PYTYPE_ATTRIBUTE, pytype_name)
  * 
  *         return element             # <<<<<<<<<<<<<<
@@ -15586,7 +15511,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28_ObjectifyElementMakerCaller___call
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1182
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1179
  *         return element
  * 
  * cdef _add_text(_Element elem, text):             # <<<<<<<<<<<<<<
@@ -15609,7 +15534,7 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
   __Pyx_RefNannySetupContext("_add_text", 0);
   __Pyx_INCREF(__pyx_v_text);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1186
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1183
  *     # tail text, depending on the current tree state
  *     cdef tree.xmlNode* c_child
  *     c_child = cetree.findChildBackwards(elem._c_node, 0)             # <<<<<<<<<<<<<<
@@ -15618,7 +15543,7 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
  */
   __pyx_v_c_child = findChildBackwards(__pyx_v_elem->_c_node, 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1187
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1184
  *     cdef tree.xmlNode* c_child
  *     c_child = cetree.findChildBackwards(elem._c_node, 0)
  *     if c_child is not NULL:             # <<<<<<<<<<<<<<
@@ -15628,19 +15553,19 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
   __pyx_t_1 = ((__pyx_v_c_child != NULL) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1188
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1185
  *     c_child = cetree.findChildBackwards(elem._c_node, 0)
  *     if c_child is not NULL:
  *         old = cetree.tailOf(c_child)             # <<<<<<<<<<<<<<
  *         if old is not None:
  *             text = old + text
  */
-    __pyx_t_2 = tailOf(__pyx_v_c_child); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = tailOf(__pyx_v_c_child); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1185; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_old = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1189
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1186
  *     if c_child is not NULL:
  *         old = cetree.tailOf(c_child)
  *         if old is not None:             # <<<<<<<<<<<<<<
@@ -15651,47 +15576,46 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
     __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1190
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1187
  *         old = cetree.tailOf(c_child)
  *         if old is not None:
  *             text = old + text             # <<<<<<<<<<<<<<
  *         cetree.setTailText(c_child, text)
  *     else:
  */
-      __pyx_t_2 = PyNumber_Add(__pyx_v_old, __pyx_v_text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(__pyx_v_old, __pyx_v_text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1187; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_text);
-      __pyx_v_text = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_text, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L4;
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1191
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1188
  *         if old is not None:
  *             text = old + text
  *         cetree.setTailText(c_child, text)             # <<<<<<<<<<<<<<
  *     else:
  *         old = cetree.textOf(elem._c_node)
  */
-    __pyx_t_4 = setTailText(__pyx_v_c_child, __pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1191; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = setTailText(__pyx_v_c_child, __pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1188; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1193
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1190
  *         cetree.setTailText(c_child, text)
  *     else:
  *         old = cetree.textOf(elem._c_node)             # <<<<<<<<<<<<<<
  *         if old is not None:
  *             text = old + text
  */
-    __pyx_t_2 = textOf(__pyx_v_elem->_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = textOf(__pyx_v_elem->_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1190; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_old = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1194
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1191
  *     else:
  *         old = cetree.textOf(elem._c_node)
  *         if old is not None:             # <<<<<<<<<<<<<<
@@ -15702,30 +15626,29 @@ static PyObject *__pyx_f_4lxml_9objectify__add_text(struct LxmlElement *__pyx_v_
     __pyx_t_1 = (__pyx_t_3 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1195
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1192
  *         old = cetree.textOf(elem._c_node)
  *         if old is not None:
  *             text = old + text             # <<<<<<<<<<<<<<
  *         cetree.setNodeText(elem._c_node, text)
  * 
  */
-      __pyx_t_2 = PyNumber_Add(__pyx_v_old, __pyx_v_text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyNumber_Add(__pyx_v_old, __pyx_v_text); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1192; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __Pyx_DECREF(__pyx_v_text);
-      __pyx_v_text = __pyx_t_2;
+      __Pyx_DECREF_SET(__pyx_v_text, __pyx_t_2);
       __pyx_t_2 = 0;
       goto __pyx_L5;
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1196
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1193
  *         if old is not None:
  *             text = old + text
  *         cetree.setNodeText(elem._c_node, text)             # <<<<<<<<<<<<<<
  * 
  * cdef class ElementMaker:
  */
-    __pyx_t_4 = setNodeText(__pyx_v_elem->_c_node, __pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1196; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = setNodeText(__pyx_v_elem->_c_node, __pyx_v_text); if (unlikely(__pyx_t_4 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1193; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
@@ -15760,7 +15683,7 @@ static int __pyx_pw_4lxml_9objectify_12ElementMaker_1__init__(PyObject *__pyx_v_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__namespace,&__pyx_n_s__nsmap,&__pyx_n_s__annotate,&__pyx_n_s__makeelement,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1228
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1225
  *     cdef bint _annotate
  *     cdef dict _cache
  *     def __init__(self, *, namespace=None, nsmap=None, annotate=True,             # <<<<<<<<<<<<<<
@@ -15771,7 +15694,7 @@ static int __pyx_pw_4lxml_9objectify_12ElementMaker_1__init__(PyObject *__pyx_v_
     values[1] = ((PyObject *)Py_None);
     values[2] = __pyx_k_25;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1229
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1226
  *     cdef dict _cache
  *     def __init__(self, *, namespace=None, nsmap=None, annotate=True,
  *                  makeelement=None):             # <<<<<<<<<<<<<<
@@ -15795,7 +15718,7 @@ static int __pyx_pw_4lxml_9objectify_12ElementMaker_1__init__(PyObject *__pyx_v_
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, 0, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 0) {
       goto __pyx_L5_argtuple_error;
@@ -15808,7 +15731,7 @@ static int __pyx_pw_4lxml_9objectify_12ElementMaker_1__init__(PyObject *__pyx_v_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.ElementMaker.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -15819,7 +15742,7 @@ static int __pyx_pw_4lxml_9objectify_12ElementMaker_1__init__(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1228
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1225
  *     cdef bint _annotate
  *     cdef dict _cache
  *     def __init__(self, *, namespace=None, nsmap=None, annotate=True,             # <<<<<<<<<<<<<<
@@ -15840,7 +15763,7 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   __Pyx_RefNannySetupContext("__init__", 0);
   __Pyx_INCREF(__pyx_v_nsmap);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1230
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1227
  *     def __init__(self, *, namespace=None, nsmap=None, annotate=True,
  *                  makeelement=None):
  *         if nsmap is None:             # <<<<<<<<<<<<<<
@@ -15851,31 +15774,30 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1231
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1228
  *                  makeelement=None):
  *         if nsmap is None:
  *             nsmap = _DEFAULT_NSMAP if annotate else {}             # <<<<<<<<<<<<<<
  *         self._nsmap = nsmap
  *         self._namespace = None if namespace is None else u"{%s}" % namespace
  */
-    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_2) {
       __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
       __pyx_t_3 = ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
     } else {
-      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
       __pyx_t_3 = ((PyObject *)__pyx_t_4);
       __pyx_t_4 = 0;
     }
-    __Pyx_DECREF(__pyx_v_nsmap);
-    __pyx_v_nsmap = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_nsmap, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1232
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1229
  *         if nsmap is None:
  *             nsmap = _DEFAULT_NSMAP if annotate else {}
  *         self._nsmap = nsmap             # <<<<<<<<<<<<<<
@@ -15888,7 +15810,7 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   __Pyx_DECREF(__pyx_v_self->_nsmap);
   __pyx_v_self->_nsmap = __pyx_v_nsmap;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1233
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1230
  *             nsmap = _DEFAULT_NSMAP if annotate else {}
  *         self._nsmap = nsmap
  *         self._namespace = None if namespace is None else u"{%s}" % namespace             # <<<<<<<<<<<<<<
@@ -15900,7 +15822,7 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
     __Pyx_INCREF(Py_None);
     __pyx_t_3 = Py_None;
   } else {
-    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_namespace); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_namespace); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1230; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_4));
     __pyx_t_3 = ((PyObject *)__pyx_t_4);
     __pyx_t_4 = 0;
@@ -15911,17 +15833,17 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   __pyx_v_self->_namespace = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1234
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1231
  *         self._nsmap = nsmap
  *         self._namespace = None if namespace is None else u"{%s}" % namespace
  *         self._annotate = annotate             # <<<<<<<<<<<<<<
  *         if makeelement is not None:
  *             assert callable(makeelement)
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1234; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1231; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_self->_annotate = __pyx_t_2;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1235
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1232
  *         self._namespace = None if namespace is None else u"{%s}" % namespace
  *         self._annotate = annotate
  *         if makeelement is not None:             # <<<<<<<<<<<<<<
@@ -15932,7 +15854,7 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1236
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1233
  *         self._annotate = annotate
  *         if makeelement is not None:
  *             assert callable(makeelement)             # <<<<<<<<<<<<<<
@@ -15940,14 +15862,14 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
  *         else:
  */
     #ifndef CYTHON_WITHOUT_ASSERTIONS
-    __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_makeelement); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyCallable_Check(__pyx_v_makeelement); if (unlikely(__pyx_t_1 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (unlikely(!(__pyx_t_1 != 0))) {
       PyErr_SetNone(PyExc_AssertionError);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1236; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1233; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
     #endif
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1237
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1234
  *         if makeelement is not None:
  *             assert callable(makeelement)
  *             self._makeelement = makeelement             # <<<<<<<<<<<<<<
@@ -15963,7 +15885,7 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1239
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1236
  *             self._makeelement = makeelement
  *         else:
  *             self._makeelement = None             # <<<<<<<<<<<<<<
@@ -15978,14 +15900,14 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1240
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1237
  *         else:
  *             self._makeelement = None
  *         self._cache = {}             # <<<<<<<<<<<<<<
  * 
  *     @cython.final
  */
-  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1240; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyDict_New(); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1237; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_3));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_3));
   __Pyx_GOTREF(__pyx_v_self->_cache);
@@ -16006,7 +15928,7 @@ static int __pyx_pf_4lxml_9objectify_12ElementMaker___init__(struct __pyx_obj_4l
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1243
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1240
  * 
  *     @cython.final
  *     cdef _build_element_maker(self, tag):             # <<<<<<<<<<<<<<
@@ -16030,20 +15952,20 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_build_element_maker", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1245
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1242
  *     cdef _build_element_maker(self, tag):
  *         cdef _ObjectifyElementMakerCaller element_maker
  *         element_maker = _ObjectifyElementMakerCaller.__new__(_ObjectifyElementMakerCaller)             # <<<<<<<<<<<<<<
  *         if self._namespace is not None and tag[0] != u"{":
  *             element_maker._tag = self._namespace + tag
  */
-  __pyx_t_1 = __pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller(((PyTypeObject *)((PyObject*)__pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1245; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_4lxml_9objectify__ObjectifyElementMakerCaller)))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1242; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_element_maker = ((struct __pyx_obj_4lxml_9objectify__ObjectifyElementMakerCaller *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1246
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1243
  *         cdef _ObjectifyElementMakerCaller element_maker
  *         element_maker = _ObjectifyElementMakerCaller.__new__(_ObjectifyElementMakerCaller)
  *         if self._namespace is not None and tag[0] != u"{":             # <<<<<<<<<<<<<<
@@ -16052,11 +15974,11 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
  */
   __pyx_t_2 = (__pyx_v_self->_namespace != Py_None);
   if (__pyx_t_2) {
-    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_tag, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_tag, 0, sizeof(long), PyInt_FromLong, 0, 0, 1); if (!__pyx_t_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_u_27), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_kp_u_27), Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1246; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1243; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     __pyx_t_5 = __pyx_t_4;
   } else {
@@ -16064,14 +15986,14 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   }
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1247
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1244
  *         element_maker = _ObjectifyElementMakerCaller.__new__(_ObjectifyElementMakerCaller)
  *         if self._namespace is not None and tag[0] != u"{":
  *             element_maker._tag = self._namespace + tag             # <<<<<<<<<<<<<<
  *         else:
  *             element_maker._tag = tag
  */
-    __pyx_t_3 = PyNumber_Add(__pyx_v_self->_namespace, __pyx_v_tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1247; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyNumber_Add(__pyx_v_self->_namespace, __pyx_v_tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1244; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
     __Pyx_GIVEREF(__pyx_t_3);
     __Pyx_GOTREF(__pyx_v_element_maker->_tag);
@@ -16082,7 +16004,7 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1249
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1246
  *             element_maker._tag = self._namespace + tag
  *         else:
  *             element_maker._tag = tag             # <<<<<<<<<<<<<<
@@ -16097,7 +16019,7 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1250
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1247
  *         else:
  *             element_maker._tag = tag
  *         element_maker._nsmap = self._nsmap             # <<<<<<<<<<<<<<
@@ -16112,7 +16034,7 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   __pyx_v_element_maker->_nsmap = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1251
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1248
  *             element_maker._tag = tag
  *         element_maker._nsmap = self._nsmap
  *         element_maker._annotate = self._annotate             # <<<<<<<<<<<<<<
@@ -16122,7 +16044,7 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   __pyx_t_5 = __pyx_v_self->_annotate;
   __pyx_v_element_maker->_annotate = __pyx_t_5;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1252
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1249
  *         element_maker._nsmap = self._nsmap
  *         element_maker._annotate = self._annotate
  *         element_maker._element_factory = self._makeelement             # <<<<<<<<<<<<<<
@@ -16137,7 +16059,7 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   __pyx_v_element_maker->_element_factory = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1253
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1250
  *         element_maker._annotate = self._annotate
  *         element_maker._element_factory = self._makeelement
  *         if len(self._cache) > 200:             # <<<<<<<<<<<<<<
@@ -16148,14 +16070,14 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
   __Pyx_INCREF(__pyx_t_3);
   if (unlikely(__pyx_t_3 == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_6 = PyDict_Size(__pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1253; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = PyDict_Size(__pyx_t_3); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1250; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_t_5 = ((__pyx_t_6 > 200) != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1254
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1251
  *         element_maker._element_factory = self._makeelement
  *         if len(self._cache) > 200:
  *             self._cache.clear()             # <<<<<<<<<<<<<<
@@ -16164,14 +16086,14 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
  */
     if (unlikely(((PyObject *)__pyx_v_self->_cache) == Py_None)) {
       PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "clear");
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     }
-    __pyx_t_7 = __Pyx_PyDict_Clear(__pyx_v_self->_cache); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1254; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyDict_Clear(__pyx_v_self->_cache); if (unlikely(__pyx_t_7 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1251; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1255
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1252
  *         if len(self._cache) > 200:
  *             self._cache.clear()
  *         self._cache[tag] = element_maker             # <<<<<<<<<<<<<<
@@ -16180,11 +16102,11 @@ static PyObject *__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(st
  */
   if (unlikely(((PyObject *)__pyx_v_self->_cache) == Py_None)) {
     PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  if (PyDict_SetItem(((PyObject *)__pyx_v_self->_cache), __pyx_v_tag, ((PyObject *)__pyx_v_element_maker)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1255; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(((PyObject *)__pyx_v_self->_cache), __pyx_v_tag, ((PyObject *)__pyx_v_element_maker)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1252; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1256
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1253
  *             self._cache.clear()
  *         self._cache[tag] = element_maker
  *         return element_maker             # <<<<<<<<<<<<<<
@@ -16221,7 +16143,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_12ElementMaker_3__getattr__(PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1258
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1255
  *         return element_maker
  * 
  *     def __getattr__(self, tag):             # <<<<<<<<<<<<<<
@@ -16243,7 +16165,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__getattr__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1259
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1256
  * 
  *     def __getattr__(self, tag):
  *         element_maker = self._cache.get(tag, None)             # <<<<<<<<<<<<<<
@@ -16252,14 +16174,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
  */
   if (unlikely(((PyObject *)__pyx_v_self->_cache) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_self->_cache), __pyx_v_tag, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_self->_cache), __pyx_v_tag, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1256; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_element_maker = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1260
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1257
  *     def __getattr__(self, tag):
  *         element_maker = self._cache.get(tag, None)
  *         if element_maker is None:             # <<<<<<<<<<<<<<
@@ -16270,26 +16192,26 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1261
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1258
  *         element_maker = self._cache.get(tag, None)
  *         if element_maker is None:
  *             if is_special_method(tag):             # <<<<<<<<<<<<<<
  *                 return object.__getattr__(self, tag)
  *             return self._build_element_maker(tag)
  */
-    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_INCREF(__pyx_v_tag);
     PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_tag);
     __Pyx_GIVEREF(__pyx_v_tag);
-    __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify_is_special_method, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify_is_special_method, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1261; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1258; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1262
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1259
  *         if element_maker is None:
  *             if is_special_method(tag):
  *                 return object.__getattr__(self, tag)             # <<<<<<<<<<<<<<
@@ -16297,9 +16219,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
  *         return element_maker
  */
       __Pyx_XDECREF(__pyx_r);
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_object, __pyx_n_s____getattr__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_builtin_object, __pyx_n_s____getattr__); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_INCREF(((PyObject *)__pyx_v_self));
       PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_self));
@@ -16307,7 +16229,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
       __Pyx_INCREF(__pyx_v_tag);
       PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_tag);
       __Pyx_GIVEREF(__pyx_v_tag);
-      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1262; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1259; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
@@ -16318,7 +16240,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1263
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1260
  *             if is_special_method(tag):
  *                 return object.__getattr__(self, tag)
  *             return self._build_element_maker(tag)             # <<<<<<<<<<<<<<
@@ -16326,7 +16248,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
  * 
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1260; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_r = __pyx_t_5;
     __pyx_t_5 = 0;
@@ -16335,7 +16257,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_2__getattr__(struct __
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1264
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1261
  *                 return object.__getattr__(self, tag)
  *             return self._build_element_maker(tag)
  *         return element_maker             # <<<<<<<<<<<<<<
@@ -16406,7 +16328,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_12ElementMaker_5__call__(PyObject *__
       }
       if (unlikely(kw_args > 0)) {
         const Py_ssize_t used_pos_args = (pos_args < 1) ? pos_args : 1;
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v_kwargs, values, used_pos_args, "__call__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) < 1) {
       goto __pyx_L5_argtuple_error;
@@ -16417,7 +16339,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_12ElementMaker_5__call__(PyObject *__
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__call__", 0, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1263; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v_args); __pyx_v_args = 0;
   __Pyx_DECREF(__pyx_v_kwargs); __pyx_v_kwargs = 0;
@@ -16432,7 +16354,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_12ElementMaker_5__call__(PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1266
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1263
  *         return element_maker
  * 
  *     def __call__(self, tag, *args, **kwargs):             # <<<<<<<<<<<<<<
@@ -16454,7 +16376,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_4__call__(struct __pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__call__", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1267
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1264
  * 
  *     def __call__(self, tag, *args, **kwargs):
  *         element_maker = self._cache.get(tag, None)             # <<<<<<<<<<<<<<
@@ -16463,14 +16385,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_4__call__(struct __pyx
  */
   if (unlikely(((PyObject *)__pyx_v_self->_cache) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_1 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_self->_cache), __pyx_v_tag, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_self->_cache), __pyx_v_tag, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1264; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_element_maker = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1268
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1265
  *     def __call__(self, tag, *args, **kwargs):
  *         element_maker = self._cache.get(tag, None)
  *         if element_maker is None:             # <<<<<<<<<<<<<<
@@ -16481,23 +16403,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_4__call__(struct __pyx
   __pyx_t_3 = (__pyx_t_2 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1269
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1266
  *         element_maker = self._cache.get(tag, None)
  *         if element_maker is None:
  *             element_maker = self._build_element_maker(tag)             # <<<<<<<<<<<<<<
  *         return element_maker(*args, **kwargs)
  * 
  */
-    __pyx_t_1 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1269; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker(__pyx_v_self, __pyx_v_tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1266; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __Pyx_DECREF(__pyx_v_element_maker);
-    __pyx_v_element_maker = __pyx_t_1;
+    __Pyx_DECREF_SET(__pyx_v_element_maker, __pyx_t_1);
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1270
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1267
  *         if element_maker is None:
  *             element_maker = self._build_element_maker(tag)
  *         return element_maker(*args, **kwargs)             # <<<<<<<<<<<<<<
@@ -16505,11 +16426,11 @@ static PyObject *__pyx_pf_4lxml_9objectify_12ElementMaker_4__call__(struct __pyx
  * ################################################################################
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = PySequence_Tuple(((PyObject *)__pyx_v_args)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PySequence_Tuple(((PyObject *)__pyx_v_args)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __pyx_t_4 = ((PyObject *)__pyx_v_kwargs);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = PyObject_Call(__pyx_v_element_maker, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1270; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_v_element_maker, ((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1267; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -16565,7 +16486,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13enable_recursive_str(PyObject *__py
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "enable_recursive_str") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "enable_recursive_str") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -16578,7 +16499,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13enable_recursive_str(PyObject *__py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("enable_recursive_str", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("enable_recursive_str", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.enable_recursive_str", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -16589,7 +16510,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_13enable_recursive_str(PyObject *__py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1277
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1274
  * cdef bint __RECURSIVE_STR = 0 # default: off
  * 
  * def enable_recursive_str(on=True):             # <<<<<<<<<<<<<<
@@ -16606,14 +16527,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_12enable_recursive_str(CYTHON_UNUSED
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("enable_recursive_str", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1284
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1281
  *     """
  *     global __RECURSIVE_STR
  *     __RECURSIVE_STR = on             # <<<<<<<<<<<<<<
  * 
  * def dump(_Element element not None):
  */
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_on); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1284; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_on); if (unlikely((__pyx_t_1 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1281; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_4lxml_9objectify___RECURSIVE_STR = __pyx_t_1;
 
   __pyx_r = Py_None; __Pyx_INCREF(Py_None);
@@ -16638,7 +16559,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_15dump(PyObject *__pyx_self, PyObject
   PyObject *__pyx_r = 0;
   __Pyx_RefNannyDeclarations
   __Pyx_RefNannySetupContext("dump (wrapper)", 0);
-  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_8includes_11etreepublic__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_element), __pyx_ptype_4lxml_8includes_11etreepublic__Element, 0, "element", 0))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_r = __pyx_pf_4lxml_9objectify_14dump(__pyx_self, ((struct LxmlElement *)__pyx_v_element));
   goto __pyx_L0;
   __pyx_L1_error:;
@@ -16648,7 +16569,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_15dump(PyObject *__pyx_self, PyObject
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1286
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1283
  *     __RECURSIVE_STR = on
  * 
  * def dump(_Element element not None):             # <<<<<<<<<<<<<<
@@ -16665,7 +16586,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_14dump(CYTHON_UNUSED PyObject *__pyx_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("dump", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1291
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1288
  *     Return a recursively generated string representation of an element.
  *     """
  *     return _dump(element, 0)             # <<<<<<<<<<<<<<
@@ -16673,7 +16594,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_14dump(CYTHON_UNUSED PyObject *__pyx_
  * cdef object _dump(_Element element, int indent):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__dump(__pyx_v_element, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__dump(__pyx_v_element, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1288; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_r = __pyx_t_1;
   __pyx_t_1 = 0;
@@ -16691,7 +16612,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_14dump(CYTHON_UNUSED PyObject *__pyx_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1293
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1290
  *     return _dump(element, 0)
  * 
  * cdef object _dump(_Element element, int indent):             # <<<<<<<<<<<<<<
@@ -16724,22 +16645,22 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_dump", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1294
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1291
  * 
  * cdef object _dump(_Element element, int indent):
  *     indentstr = u"    " * indent             # <<<<<<<<<<<<<<
  *     if isinstance(element, ObjectifiedDataElement):
  *         value = repr(element)
  */
-  __pyx_t_1 = PyInt_FromLong(__pyx_v_indent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyInt_FromLong(__pyx_v_indent); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyNumber_Multiply(((PyObject *)__pyx_kp_u_29), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1294; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Multiply(((PyObject *)__pyx_kp_u_29), __pyx_t_1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1291; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_v_indentstr = ((PyObject*)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1295
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1292
  * cdef object _dump(_Element element, int indent):
  *     indentstr = u"    " * indent
  *     if isinstance(element, ObjectifiedDataElement):             # <<<<<<<<<<<<<<
@@ -16750,14 +16671,14 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
   __pyx_t_4 = (__pyx_t_3 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1296
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1293
  *     indentstr = u"    " * indent
  *     if isinstance(element, ObjectifiedDataElement):
  *         value = repr(element)             # <<<<<<<<<<<<<<
  *     else:
  *         value = textOf(element._c_node)
  */
-    __pyx_t_2 = PyObject_Repr(((PyObject *)__pyx_v_element)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1296; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyObject_Repr(((PyObject *)__pyx_v_element)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1293; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_value = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -16765,19 +16686,19 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1298
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1295
  *         value = repr(element)
  *     else:
  *         value = textOf(element._c_node)             # <<<<<<<<<<<<<<
  *         if value is not None:
  *             if not value.strip():
  */
-    __pyx_t_2 = textOf(__pyx_v_element->_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1298; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = textOf(__pyx_v_element->_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1295; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_value = __pyx_t_2;
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1299
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1296
  *     else:
  *         value = textOf(element._c_node)
  *         if value is not None:             # <<<<<<<<<<<<<<
@@ -16788,24 +16709,24 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
     __pyx_t_3 = (__pyx_t_4 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1300
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1297
  *         value = textOf(element._c_node)
  *         if value is not None:
  *             if not value.strip():             # <<<<<<<<<<<<<<
  *                 value = None
  *             else:
  */
-      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s__strip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s__strip); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1297; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_t_4 = ((!__pyx_t_3) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1301
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1298
  *         if value is not None:
  *             if not value.strip():
  *                 value = None             # <<<<<<<<<<<<<<
@@ -16813,23 +16734,21 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
  *                 value = repr(value)
  */
         __Pyx_INCREF(Py_None);
-        __Pyx_DECREF(__pyx_v_value);
-        __pyx_v_value = Py_None;
+        __Pyx_DECREF_SET(__pyx_v_value, Py_None);
         goto __pyx_L5;
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1303
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1300
  *                 value = None
  *             else:
  *                 value = repr(value)             # <<<<<<<<<<<<<<
  *     result = u"%s%s = %s [%s]\n" % (indentstr, element.tag,
  *                                     value, _typename(element))
  */
-        __pyx_t_1 = PyObject_Repr(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyObject_Repr(__pyx_v_value); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1300; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
-        __Pyx_DECREF(__pyx_v_value);
-        __pyx_v_value = __pyx_t_1;
+        __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1);
         __pyx_t_1 = 0;
       }
       __pyx_L5:;
@@ -16839,26 +16758,26 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1304
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1301
  *             else:
  *                 value = repr(value)
  *     result = u"%s%s = %s [%s]\n" % (indentstr, element.tag,             # <<<<<<<<<<<<<<
  *                                     value, _typename(element))
  *     xsi_ns    = u"{%s}" % XML_SCHEMA_INSTANCE_NS
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__tag); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1305
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1302
  *                 value = repr(value)
  *     result = u"%s%s = %s [%s]\n" % (indentstr, element.tag,
  *                                     value, _typename(element))             # <<<<<<<<<<<<<<
  *     xsi_ns    = u"{%s}" % XML_SCHEMA_INSTANCE_NS
  *     pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
  */
-  __pyx_t_2 = __pyx_f_4lxml_9objectify__typename(((PyObject *)__pyx_v_element)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_9objectify__typename(((PyObject *)__pyx_v_element)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1302; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_INCREF(((PyObject *)__pyx_v_indentstr));
   PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_indentstr));
@@ -16872,50 +16791,50 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_1 = 0;
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_30), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_30), ((PyObject *)__pyx_t_5)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1301; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
   __pyx_v_result = ((PyObject *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1306
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1303
  *     result = u"%s%s = %s [%s]\n" % (indentstr, element.tag,
  *                                     value, _typename(element))
  *     xsi_ns    = u"{%s}" % XML_SCHEMA_INSTANCE_NS             # <<<<<<<<<<<<<<
  *     pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
  *     for name, value in cetree.iterattributes(element, 3):
  */
-  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1303; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __pyx_v_xsi_ns = ((PyObject*)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1307
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1304
  *                                     value, _typename(element))
  *     xsi_ns    = u"{%s}" % XML_SCHEMA_INSTANCE_NS
  *     pytype_ns = u"{%s}" % PYTYPE_NAMESPACE             # <<<<<<<<<<<<<<
  *     for name, value in cetree.iterattributes(element, 3):
  *         if u'{' in name:
  */
-  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_26), __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1304; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
   __pyx_v_pytype_ns = ((PyObject*)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1308
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1305
  *     xsi_ns    = u"{%s}" % XML_SCHEMA_INSTANCE_NS
  *     pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
  *     for name, value in cetree.iterattributes(element, 3):             # <<<<<<<<<<<<<<
  *         if u'{' in name:
  *             if name == PYTYPE_ATTRIBUTE:
  */
-  __pyx_t_2 = iterattributes(__pyx_v_element, 3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = iterattributes(__pyx_v_element, 3); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   if (PyList_CheckExact(__pyx_t_2) || PyTuple_CheckExact(__pyx_t_2)) {
     __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
     __pyx_t_7 = NULL;
   } else {
-    __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext;
   }
@@ -16924,23 +16843,23 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
     if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_5)) {
       if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_5)) {
       if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_2 = __pyx_t_7(__pyx_t_5);
       if (unlikely(!__pyx_t_2)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
@@ -16956,7 +16875,7 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
       if (unlikely(size != 2)) {
         if (size > 2) __Pyx_RaiseTooManyValuesError(2);
         else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       #if CYTHON_COMPILING_IN_CPYTHON
       if (likely(PyTuple_CheckExact(sequence))) {
@@ -16969,16 +16888,16 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
       __Pyx_INCREF(__pyx_t_1);
       __Pyx_INCREF(__pyx_t_8);
       #else
-      __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       #endif
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
     } else
     {
       Py_ssize_t index = -1;
-      __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_9 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_9)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_9);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       __pyx_t_10 = Py_TYPE(__pyx_t_9)->tp_iternext;
@@ -16986,7 +16905,7 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
       __Pyx_GOTREF(__pyx_t_1);
       index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_9); if (unlikely(!__pyx_t_8)) goto __pyx_L8_unpacking_failed;
       __Pyx_GOTREF(__pyx_t_8);
-      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_9), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_10 = NULL;
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       goto __pyx_L9_unpacking_done;
@@ -16994,55 +16913,53 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
       __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
       __pyx_t_10 = NULL;
       if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1305; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L9_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_1;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_1);
     __pyx_t_1 = 0;
-    __Pyx_DECREF(__pyx_v_value);
-    __pyx_v_value = __pyx_t_8;
+    __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_8);
     __pyx_t_8 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1309
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1306
  *     pytype_ns = u"{%s}" % PYTYPE_NAMESPACE
  *     for name, value in cetree.iterattributes(element, 3):
  *         if u'{' in name:             # <<<<<<<<<<<<<<
  *             if name == PYTYPE_ATTRIBUTE:
  *                 if value == TREE_PYTYPE_NAME:
  */
-    __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_27), __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1309; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_27), __pyx_v_name, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1306; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = (__pyx_t_4 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1310
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1307
  *     for name, value in cetree.iterattributes(element, 3):
  *         if u'{' in name:
  *             if name == PYTYPE_ATTRIBUTE:             # <<<<<<<<<<<<<<
  *                 if value == TREE_PYTYPE_NAME:
  *                     continue
  */
-      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
-      __pyx_t_8 = PyObject_RichCompare(__pyx_v_name, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyObject_RichCompare(__pyx_v_name, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1310; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1307; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1311
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1308
  *         if u'{' in name:
  *             if name == PYTYPE_ATTRIBUTE:
  *                 if value == TREE_PYTYPE_NAME:             # <<<<<<<<<<<<<<
  *                     continue
  *                 else:
  */
-        __pyx_t_8 = PyObject_RichCompare(__pyx_v_value, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PyObject_RichCompare(__pyx_v_value, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1308; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1312
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1309
  *             if name == PYTYPE_ATTRIBUTE:
  *                 if value == TREE_PYTYPE_NAME:
  *                     continue             # <<<<<<<<<<<<<<
@@ -17054,16 +16971,16 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
         }
         /*else*/ {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1314
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1311
  *                     continue
  *                 else:
  *                     name = name.replace(pytype_ns, u'py:')             # <<<<<<<<<<<<<<
  *             name = name.replace(xsi_ns, u'xsi:')
  *         result += u"%s  * %s = %r\n" % (indentstr, name, value)
  */
-          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__replace); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__replace); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_8);
-          __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_2);
           __Pyx_INCREF(((PyObject *)__pyx_v_pytype_ns));
           PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_pytype_ns));
@@ -17071,12 +16988,11 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
           __Pyx_INCREF(((PyObject *)__pyx_kp_u_31));
           PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_kp_u_31));
           __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_31));
-          __pyx_t_1 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1314; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = PyObject_Call(__pyx_t_8, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1311; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_1);
           __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
           __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-          __Pyx_DECREF(__pyx_v_name);
-          __pyx_v_name = __pyx_t_1;
+          __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_1);
           __pyx_t_1 = 0;
         }
         __pyx_L12:;
@@ -17084,16 +17000,16 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
       }
       __pyx_L11:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1315
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1312
  *                 else:
  *                     name = name.replace(pytype_ns, u'py:')
  *             name = name.replace(xsi_ns, u'xsi:')             # <<<<<<<<<<<<<<
  *         result += u"%s  * %s = %r\n" % (indentstr, name, value)
  * 
  */
-      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s__replace); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_INCREF(((PyObject *)__pyx_v_xsi_ns));
       PyTuple_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_v_xsi_ns));
@@ -17101,25 +17017,24 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
       __Pyx_INCREF(((PyObject *)__pyx_kp_u_32));
       PyTuple_SET_ITEM(__pyx_t_2, 1, ((PyObject *)__pyx_kp_u_32));
       __Pyx_GIVEREF(((PyObject *)__pyx_kp_u_32));
-      __pyx_t_8 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_2), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1312; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-      __Pyx_DECREF(__pyx_v_name);
-      __pyx_v_name = __pyx_t_8;
+      __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_8);
       __pyx_t_8 = 0;
       goto __pyx_L10;
     }
     __pyx_L10:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1316
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1313
  *                     name = name.replace(pytype_ns, u'py:')
  *             name = name.replace(xsi_ns, u'xsi:')
  *         result += u"%s  * %s = %r\n" % (indentstr, name, value)             # <<<<<<<<<<<<<<
  * 
  *     indent += 1
  */
-    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_INCREF(((PyObject *)__pyx_v_indentstr));
     PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_indentstr));
@@ -17130,20 +17045,19 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
     __Pyx_INCREF(__pyx_v_value);
     PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_value);
     __Pyx_GIVEREF(__pyx_v_value);
-    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_33), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_33), ((PyObject *)__pyx_t_8)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_2));
     __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
-    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_result, ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_result, ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1313; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-    __Pyx_DECREF(__pyx_v_result);
-    __pyx_v_result = __pyx_t_8;
+    __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_8);
     __pyx_t_8 = 0;
     __pyx_L6_continue:;
   }
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1318
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1315
  *         result += u"%s  * %s = %r\n" % (indentstr, name, value)
  * 
  *     indent += 1             # <<<<<<<<<<<<<<
@@ -17152,23 +17066,23 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
  */
   __pyx_v_indent = (__pyx_v_indent + 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1319
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1316
  * 
  *     indent += 1
  *     for child in element.iterchildren():             # <<<<<<<<<<<<<<
  *         result += _dump(child, indent)
  *     if indent == 1:
  */
-  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__iterchildren); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_element), __pyx_n_s__iterchildren); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_8 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_8);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   if (PyList_CheckExact(__pyx_t_8) || PyTuple_CheckExact(__pyx_t_8)) {
     __pyx_t_5 = __pyx_t_8; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
     __pyx_t_7 = NULL;
   } else {
-    __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext;
   }
@@ -17177,52 +17091,50 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
     if (!__pyx_t_7 && PyList_CheckExact(__pyx_t_5)) {
       if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else if (!__pyx_t_7 && PyTuple_CheckExact(__pyx_t_5)) {
       if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
       #if CYTHON_COMPILING_IN_CPYTHON
-      __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_8); __pyx_t_6++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #else
-      __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       #endif
     } else {
       __pyx_t_8 = __pyx_t_7(__pyx_t_5);
       if (unlikely(!__pyx_t_8)) {
         if (PyErr_Occurred()) {
           if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1316; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         break;
       }
       __Pyx_GOTREF(__pyx_t_8);
     }
-    __Pyx_XDECREF(__pyx_v_child);
-    __pyx_v_child = __pyx_t_8;
+    __Pyx_XDECREF_SET(__pyx_v_child, __pyx_t_8);
     __pyx_t_8 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1320
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1317
  *     indent += 1
  *     for child in element.iterchildren():
  *         result += _dump(child, indent)             # <<<<<<<<<<<<<<
  *     if indent == 1:
  *         return result[:-1] # strip last '\n'
  */
-    if (!(likely(((__pyx_v_child) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_child, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_8 = __pyx_f_4lxml_9objectify__dump(((struct LxmlElement *)__pyx_v_child), __pyx_v_indent); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (!(likely(((__pyx_v_child) == Py_None) || likely(__Pyx_TypeTest(__pyx_v_child, __pyx_ptype_4lxml_8includes_11etreepublic__Element))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = __pyx_f_4lxml_9objectify__dump(((struct LxmlElement *)__pyx_v_child), __pyx_v_indent); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
-    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_result, __pyx_t_8); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1317; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
-    __Pyx_DECREF(__pyx_v_result);
-    __pyx_v_result = __pyx_t_2;
+    __Pyx_DECREF_SET(__pyx_v_result, __pyx_t_2);
     __pyx_t_2 = 0;
   }
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1321
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1318
  *     for child in element.iterchildren():
  *         result += _dump(child, indent)
  *     if indent == 1:             # <<<<<<<<<<<<<<
@@ -17232,7 +17144,7 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
   __pyx_t_3 = ((__pyx_v_indent == 1) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1322
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1319
  *         result += _dump(child, indent)
  *     if indent == 1:
  *         return result[:-1] # strip last '\n'             # <<<<<<<<<<<<<<
@@ -17240,7 +17152,7 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
  *         return result
  */
     __Pyx_XDECREF(__pyx_r);
-    __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_result, 0, -1, NULL, NULL, &__pyx_k_slice_34, 0, 1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_GetSlice(__pyx_v_result, 0, -1, NULL, NULL, &__pyx_k_slice_34, 0, 1, 1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __pyx_r = __pyx_t_5;
     __pyx_t_5 = 0;
@@ -17249,7 +17161,7 @@ static PyObject *__pyx_f_4lxml_9objectify__dump(struct LxmlElement *__pyx_v_elem
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1324
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1321
  *         return result[:-1] # strip last '\n'
  *     else:
  *         return result             # <<<<<<<<<<<<<<
@@ -17298,7 +17210,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_17__unpickleElementTree(PyObject *__p
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1330
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1327
  * # Pickle support for objectified ElementTree
  * 
  * def __unpickleElementTree(data):             # <<<<<<<<<<<<<<
@@ -17318,7 +17230,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_16__unpickleElementTree(CYTHON_UNUSED
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("__unpickleElementTree", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1331
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1328
  * 
  * def __unpickleElementTree(data):
  *     return etree.ElementTree(fromstring(data))             # <<<<<<<<<<<<<<
@@ -17326,25 +17238,25 @@ static PyObject *__pyx_pf_4lxml_9objectify_16__unpickleElementTree(CYTHON_UNUSED
  * cdef _setupPickle(elementTreeReduceFunction):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__ElementTree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__ElementTree); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__fromstring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s__fromstring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_data);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_data);
   __Pyx_GIVEREF(__pyx_v_data);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1331; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1328; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -17367,7 +17279,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_16__unpickleElementTree(CYTHON_UNUSED
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1333
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1330
  *     return etree.ElementTree(fromstring(data))
  * 
  * cdef _setupPickle(elementTreeReduceFunction):             # <<<<<<<<<<<<<<
@@ -17389,7 +17301,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_setupPickle", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1334
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1331
  * 
  * cdef _setupPickle(elementTreeReduceFunction):
  *     if python.IS_PYTHON3:             # <<<<<<<<<<<<<<
@@ -17399,14 +17311,14 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
   __pyx_t_1 = (IS_PYTHON3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1335
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1332
  * cdef _setupPickle(elementTreeReduceFunction):
  *     if python.IS_PYTHON3:
  *         import copyreg             # <<<<<<<<<<<<<<
  *     else:
  *         import copy_reg as copyreg
  */
-    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__copyreg), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__copyreg), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1332; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_copyreg = __pyx_t_2;
     __pyx_t_2 = 0;
@@ -17414,42 +17326,42 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1337
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1334
  *         import copyreg
  *     else:
  *         import copy_reg as copyreg             # <<<<<<<<<<<<<<
  *     copyreg.pickle(etree._ElementTree,
  *                    elementTreeReduceFunction, __unpickleElementTree)
  */
-    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__copy_reg), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1337; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__copy_reg), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1334; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
     __pyx_v_copyreg = __pyx_t_2;
     __pyx_t_2 = 0;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1338
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1335
  *     else:
  *         import copy_reg as copyreg
  *     copyreg.pickle(etree._ElementTree,             # <<<<<<<<<<<<<<
  *                    elementTreeReduceFunction, __unpickleElementTree)
  * 
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_copyreg, __pyx_n_s__pickle); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_copyreg, __pyx_n_s__pickle); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s___ElementTree); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s___ElementTree); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1339
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1336
  *         import copy_reg as copyreg
  *     copyreg.pickle(etree._ElementTree,
  *                    elementTreeReduceFunction, __unpickleElementTree)             # <<<<<<<<<<<<<<
  * 
  * def pickleReduceElementTree(obj):
  */
-  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_35); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_GetModuleGlobalName(__pyx_n_s_35); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1336; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
   __Pyx_GIVEREF(__pyx_t_3);
@@ -17460,7 +17372,7 @@ static PyObject *__pyx_f_4lxml_9objectify__setupPickle(PyObject *__pyx_v_element
   __Pyx_GIVEREF(__pyx_t_4);
   __pyx_t_3 = 0;
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1335; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
@@ -17494,7 +17406,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_19pickleReduceElementTree(PyObject *_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1341
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1338
  *                    elementTreeReduceFunction, __unpickleElementTree)
  * 
  * def pickleReduceElementTree(obj):             # <<<<<<<<<<<<<<
@@ -17514,7 +17426,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_18pickleReduceElementTree(CYTHON_UNUS
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("pickleReduceElementTree", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1342
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1339
  * 
  * def pickleReduceElementTree(obj):
  *     return (__unpickleElementTree, (etree.tostring(obj),))             # <<<<<<<<<<<<<<
@@ -17522,25 +17434,25 @@ static PyObject *__pyx_pf_4lxml_9objectify_18pickleReduceElementTree(CYTHON_UNUS
  * _setupPickle(pickleReduceElementTree)
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_35); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s_35); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__tostring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__tostring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_obj);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_obj);
   __Pyx_GIVEREF(__pyx_v_obj);
-  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1339; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
@@ -17586,7 +17498,7 @@ static int __pyx_pw_4lxml_9objectify_27ObjectifyElementClassLookup_1__init__(PyO
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__tree_class,&__pyx_n_s__empty_data_class,0};
     PyObject* values[2] = {0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1356
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1353
  *     cdef object empty_data_class
  *     cdef object tree_class
  *     def __init__(self, tree_class=None, empty_data_class=None):             # <<<<<<<<<<<<<<
@@ -17618,7 +17530,7 @@ static int __pyx_pw_4lxml_9objectify_27ObjectifyElementClassLookup_1__init__(PyO
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -17633,7 +17545,7 @@ static int __pyx_pw_4lxml_9objectify_27ObjectifyElementClassLookup_1__init__(PyO
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1356; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("__init__", 0, 0, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1353; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.ObjectifyElementClassLookup.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -17653,7 +17565,7 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
   __Pyx_INCREF(__pyx_v_tree_class);
   __Pyx_INCREF(__pyx_v_empty_data_class);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1365
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1362
  *         empty data elements (defauls to StringElement).
  *         """
  *         self._lookup_function = _lookupElementClass             # <<<<<<<<<<<<<<
@@ -17662,7 +17574,7 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
  */
   __pyx_v_self->__pyx_base._lookup_function = __pyx_f_4lxml_9objectify__lookupElementClass;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1366
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1363
  *         """
  *         self._lookup_function = _lookupElementClass
  *         if tree_class is None:             # <<<<<<<<<<<<<<
@@ -17673,7 +17585,7 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1367
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1364
  *         self._lookup_function = _lookupElementClass
  *         if tree_class is None:
  *             tree_class = ObjectifiedElement             # <<<<<<<<<<<<<<
@@ -17681,13 +17593,12 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
  *         if empty_data_class is None:
  */
     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedElement)));
-    __Pyx_DECREF(__pyx_v_tree_class);
-    __pyx_v_tree_class = ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedElement));
+    __Pyx_DECREF_SET(__pyx_v_tree_class, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedElement)));
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1368
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1365
  *         if tree_class is None:
  *             tree_class = ObjectifiedElement
  *         self.tree_class = tree_class             # <<<<<<<<<<<<<<
@@ -17700,7 +17611,7 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
   __Pyx_DECREF(__pyx_v_self->tree_class);
   __pyx_v_self->tree_class = __pyx_v_tree_class;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1369
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1366
  *             tree_class = ObjectifiedElement
  *         self.tree_class = tree_class
  *         if empty_data_class is None:             # <<<<<<<<<<<<<<
@@ -17711,7 +17622,7 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1370
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1367
  *         self.tree_class = tree_class
  *         if empty_data_class is None:
  *             empty_data_class = StringElement             # <<<<<<<<<<<<<<
@@ -17719,13 +17630,12 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
  * 
  */
     __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement)));
-    __Pyx_DECREF(__pyx_v_empty_data_class);
-    __pyx_v_empty_data_class = ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement));
+    __Pyx_DECREF_SET(__pyx_v_empty_data_class, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_StringElement)));
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1371
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1368
  *         if empty_data_class is None:
  *             empty_data_class = StringElement
  *         self.empty_data_class = empty_data_class             # <<<<<<<<<<<<<<
@@ -17745,7 +17655,7 @@ static int __pyx_pf_4lxml_9objectify_27ObjectifyElementClassLookup___init__(stru
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1373
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1370
  *         self.empty_data_class = empty_data_class
  * 
  * cdef object _lookupElementClass(state, _Document doc, tree.xmlNode* c_node):             # <<<<<<<<<<<<<<
@@ -17774,7 +17684,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_lookupElementClass", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1376
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1373
  *     cdef ObjectifyElementClassLookup lookup
  *     cdef python.PyObject* dict_result
  *     lookup = <ObjectifyElementClassLookup>state             # <<<<<<<<<<<<<<
@@ -17784,7 +17694,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_9objectify_ObjectifyElementClassLookup *)__pyx_v_state)));
   __pyx_v_lookup = ((struct __pyx_obj_4lxml_9objectify_ObjectifyElementClassLookup *)__pyx_v_state);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1378
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1375
  *     lookup = <ObjectifyElementClassLookup>state
  *     # if element has children => no data class
  *     if cetree.hasChild(c_node):             # <<<<<<<<<<<<<<
@@ -17794,7 +17704,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   __pyx_t_1 = (hasChild(__pyx_v_c_node) != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1379
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1376
  *     # if element has children => no data class
  *     if cetree.hasChild(c_node):
  *         return lookup.tree_class             # <<<<<<<<<<<<<<
@@ -17809,22 +17719,22 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1383
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1380
  *     # if element is defined as xsi:nil, return NoneElement class
  *     if u"true" == cetree.attributeValueFromNsName(
  *         c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"nil"):             # <<<<<<<<<<<<<<
  *         return NoneElement
  * 
  */
-  __pyx_t_2 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__nil))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__nil))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_n_u__true), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_RichCompare(((PyObject *)__pyx_n_u__true), __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
-  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1382; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1379; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1384
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1381
  *     if u"true" == cetree.attributeValueFromNsName(
  *         c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"nil"):
  *         return NoneElement             # <<<<<<<<<<<<<<
@@ -17839,19 +17749,19 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1388
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1385
  *     # check for Python type hint
  *     value = cetree.attributeValueFromNsName(
  *         c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)             # <<<<<<<<<<<<<<
  *     if value is not None:
  *         if value == TREE_PYTYPE_NAME:
  */
-  __pyx_t_3 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1384; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_v_value = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1389
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1386
  *     value = cetree.attributeValueFromNsName(
  *         c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
  *     if value is not None:             # <<<<<<<<<<<<<<
@@ -17862,19 +17772,19 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   __pyx_t_4 = (__pyx_t_1 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1390
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1387
  *         c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
  *     if value is not None:
  *         if value == TREE_PYTYPE_NAME:             # <<<<<<<<<<<<<<
  *             return lookup.tree_class
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, value)
  */
-    __pyx_t_3 = PyObject_RichCompare(__pyx_v_value, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1390; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = PyObject_RichCompare(__pyx_v_value, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1387; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1391
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1388
  *     if value is not None:
  *         if value == TREE_PYTYPE_NAME:
  *             return lookup.tree_class             # <<<<<<<<<<<<<<
@@ -17889,7 +17799,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1392
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1389
  *         if value == TREE_PYTYPE_NAME:
  *             return lookup.tree_class
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, value)             # <<<<<<<<<<<<<<
@@ -17901,7 +17811,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
     __pyx_v_dict_result = PyDict_GetItem(__pyx_t_3, __pyx_v_value);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1393
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1390
  *             return lookup.tree_class
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, value)
  *         if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -17911,7 +17821,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
     __pyx_t_4 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1394
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1391
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, value)
  *         if dict_result is not NULL:
  *             return (<PyType>dict_result)._type             # <<<<<<<<<<<<<<
@@ -17929,20 +17839,19 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1399
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1396
  *     # check for XML Schema type hint
  *     value = cetree.attributeValueFromNsName(
  *         c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")             # <<<<<<<<<<<<<<
  * 
  *     if value is not None:
  */
-  __pyx_t_3 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__type))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1398; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__type))); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1395; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __Pyx_DECREF(__pyx_v_value);
-  __pyx_v_value = __pyx_t_3;
+  __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_3);
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1401
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1398
  *         c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
  * 
  *     if value is not None:             # <<<<<<<<<<<<<<
@@ -17953,7 +17862,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   __pyx_t_1 = (__pyx_t_4 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1402
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1399
  * 
  *     if value is not None:
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)             # <<<<<<<<<<<<<<
@@ -17965,7 +17874,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
     __pyx_v_dict_result = PyDict_GetItem(__pyx_t_3, __pyx_v_value);
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1403
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1400
  *     if value is not None:
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  *         if dict_result is NULL and u':' in value:             # <<<<<<<<<<<<<<
@@ -17974,23 +17883,23 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
  */
     __pyx_t_1 = ((__pyx_v_dict_result == NULL) != 0);
     if (__pyx_t_1) {
-      __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_36), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1403; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_36), __pyx_v_value, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1400; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_5 = (__pyx_t_4 != 0);
     } else {
       __pyx_t_5 = __pyx_t_1;
     }
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1404
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1401
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  *         if dict_result is NULL and u':' in value:
  *             prefix, value = value.split(u':', 1)             # <<<<<<<<<<<<<<
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  *         if dict_result is not NULL:
  */
-      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s__split); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_value, __pyx_n_s__split); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_37), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_k_tuple_37), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
       if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
@@ -18003,7 +17912,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -18016,16 +17925,16 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
         __Pyx_INCREF(__pyx_t_3);
         __Pyx_INCREF(__pyx_t_6);
         #else
-        __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_3);
-        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
         #endif
         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_7);
         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
         __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -18033,7 +17942,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
         __Pyx_GOTREF(__pyx_t_3);
         index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L10_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_6);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_8 = NULL;
         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
         goto __pyx_L11_unpacking_done;
@@ -18041,16 +17950,15 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
         __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
         __pyx_t_8 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L11_unpacking_done:;
       }
       __pyx_v_prefix = __pyx_t_3;
       __pyx_t_3 = 0;
-      __Pyx_DECREF(__pyx_v_value);
-      __pyx_v_value = __pyx_t_6;
+      __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_6);
       __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1405
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1402
  *         if dict_result is NULL and u':' in value:
  *             prefix, value = value.split(u':', 1)
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)             # <<<<<<<<<<<<<<
@@ -18065,7 +17973,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
     }
     __pyx_L9:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1406
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1403
  *             prefix, value = value.split(u':', 1)
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  *         if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -18075,7 +17983,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
     __pyx_t_5 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1407
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1404
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  *         if dict_result is not NULL:
  *             return (<PyType>dict_result)._type             # <<<<<<<<<<<<<<
@@ -18093,19 +18001,19 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   }
   __pyx_L8:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1410
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1407
  * 
  *     # otherwise determine class based on text content type
  *     el_class = _guessElementClass(c_node)             # <<<<<<<<<<<<<<
  *     if el_class is not None:
  *         return el_class
  */
-  __pyx_t_2 = __pyx_f_4lxml_9objectify__guessElementClass(__pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1410; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_9objectify__guessElementClass(__pyx_v_c_node); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1407; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_v_el_class = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1411
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1408
  *     # otherwise determine class based on text content type
  *     el_class = _guessElementClass(c_node)
  *     if el_class is not None:             # <<<<<<<<<<<<<<
@@ -18116,7 +18024,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   __pyx_t_1 = (__pyx_t_5 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1412
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1409
  *     el_class = _guessElementClass(c_node)
  *     if el_class is not None:
  *         return el_class             # <<<<<<<<<<<<<<
@@ -18131,7 +18039,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   }
   __pyx_L13:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1415
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1412
  * 
  *     # if element is a root node => default to tree node
  *     if c_node.parent is NULL or not tree._isElement(c_node.parent):             # <<<<<<<<<<<<<<
@@ -18147,7 +18055,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   }
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1416
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1413
  *     # if element is a root node => default to tree node
  *     if c_node.parent is NULL or not tree._isElement(c_node.parent):
  *         return lookup.tree_class             # <<<<<<<<<<<<<<
@@ -18162,7 +18070,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   }
   __pyx_L14:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1418
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1415
  *         return lookup.tree_class
  * 
  *     return lookup.empty_data_class             # <<<<<<<<<<<<<<
@@ -18193,7 +18101,7 @@ static PyObject *__pyx_f_4lxml_9objectify__lookupElementClass(PyObject *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1424
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1421
  * # Type annotations
  * 
  * cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype):             # <<<<<<<<<<<<<<
@@ -18218,7 +18126,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_check_type", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1425
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1422
  * 
  * cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype):
  *     if pytype is None:             # <<<<<<<<<<<<<<
@@ -18229,7 +18137,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1426
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1423
  * cdef PyType _check_type(tree.xmlNode* c_node, PyType pytype):
  *     if pytype is None:
  *         return None             # <<<<<<<<<<<<<<
@@ -18244,19 +18152,19 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1427
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1424
  *     if pytype is None:
  *         return None
  *     value = textOf(c_node)             # <<<<<<<<<<<<<<
  *     try:
  *         pytype.type_check(value)
  */
-  __pyx_t_3 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1427; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1424; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_v_value = __pyx_t_3;
   __pyx_t_3 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1428
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1425
  *         return None
  *     value = textOf(c_node)
  *     try:             # <<<<<<<<<<<<<<
@@ -18270,24 +18178,24 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
     __Pyx_XGOTREF(__pyx_t_6);
     /*try:*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1429
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1426
  *     value = textOf(c_node)
  *     try:
  *         pytype.type_check(value)             # <<<<<<<<<<<<<<
  *         return pytype
  *     except IGNORABLE_ERRORS:
  */
-      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_v_value);
       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_value);
       __Pyx_GIVEREF(__pyx_v_value);
-      __pyx_t_7 = PyObject_Call(__pyx_v_pytype->type_check, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1429; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
+      __pyx_t_7 = PyObject_Call(__pyx_v_pytype->type_check, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1426; __pyx_clineno = __LINE__; goto __pyx_L4_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1430
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1427
  *     try:
  *         pytype.type_check(value)
  *         return pytype             # <<<<<<<<<<<<<<
@@ -18313,7 +18221,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
     __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
     __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1431
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1428
  *         pytype.type_check(value)
  *         return pytype
  *     except IGNORABLE_ERRORS:             # <<<<<<<<<<<<<<
@@ -18338,7 +18246,7 @@ static struct __pyx_obj_4lxml_9objectify_PyType *__pyx_f_4lxml_9objectify__check
     __pyx_L11_try_end:;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1434
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1431
  *         # could not be parsed as the specified type => ignore
  *         pass
  *     return None             # <<<<<<<<<<<<<<
@@ -18385,7 +18293,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_21pyannotate(PyObject *__pyx_self, Py
     values[1] = __pyx_k_38;
     values[2] = __pyx_k_39;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1437
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1434
  * 
  * def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False,
  *              empty_pytype=None):             # <<<<<<<<<<<<<<
@@ -18415,7 +18323,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_21pyannotate(PyObject *__pyx_self, Py
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pyannotate") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "pyannotate") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -18429,7 +18337,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_21pyannotate(PyObject *__pyx_self, Py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("pyannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("pyannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.pyannotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -18440,7 +18348,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_21pyannotate(PyObject *__pyx_self, Py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1436
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1433
  *     return None
  * 
  * def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False,             # <<<<<<<<<<<<<<
@@ -18460,28 +18368,28 @@ static PyObject *__pyx_pf_4lxml_9objectify_20pyannotate(CYTHON_UNUSED PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("pyannotate", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1456
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1453
  *     """
  *     cdef _Element  element
  *     element = cetree.rootNodeOrRaise(element_or_tree)             # <<<<<<<<<<<<<<
  *     _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
  * 
  */
-  __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1453; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_element = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1457
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1454
  *     cdef _Element  element
  *     element = cetree.rootNodeOrRaise(element_or_tree)
  *     _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)             # <<<<<<<<<<<<<<
  * 
  * def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False,
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_xsi); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, 0, 1, __pyx_t_2, __pyx_t_3, Py_None, __pyx_v_empty_pytype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1457; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_xsi); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, 0, 1, __pyx_t_2, __pyx_t_3, Py_None, __pyx_v_empty_pytype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1454; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -18519,7 +18427,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_23xsiannotate(PyObject *__pyx_self, P
     values[1] = __pyx_k_40;
     values[2] = __pyx_k_41;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1460
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1457
  * 
  * def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False,
  *                 empty_type=None):             # <<<<<<<<<<<<<<
@@ -18549,7 +18457,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_23xsiannotate(PyObject *__pyx_self, P
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "xsiannotate") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "xsiannotate") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -18563,7 +18471,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_23xsiannotate(PyObject *__pyx_self, P
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("xsiannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("xsiannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.xsiannotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -18574,7 +18482,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_23xsiannotate(PyObject *__pyx_self, P
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1459
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1456
  *     _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
  * 
  * def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False,             # <<<<<<<<<<<<<<
@@ -18594,28 +18502,28 @@ static PyObject *__pyx_pf_4lxml_9objectify_22xsiannotate(CYTHON_UNUSED PyObject
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("xsiannotate", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1484
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1481
  *     """
  *     cdef _Element  element
  *     element = cetree.rootNodeOrRaise(element_or_tree)             # <<<<<<<<<<<<<<
  *     _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
  * 
  */
-  __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1481; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_element = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1485
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1482
  *     cdef _Element  element
  *     element = cetree.rootNodeOrRaise(element_or_tree)
  *     _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)             # <<<<<<<<<<<<<<
  * 
  * def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False,
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_pytype); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, 1, 0, __pyx_t_2, __pyx_t_3, __pyx_v_empty_type, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1485; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_pytype); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, 1, 0, __pyx_t_2, __pyx_t_3, __pyx_v_empty_type, Py_None); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1482; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -18656,7 +18564,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_25annotate(PyObject *__pyx_self, PyOb
     values[1] = __pyx_k_42;
     values[2] = __pyx_k_43;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1488
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1485
  * 
  * def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False,
  *              empty_pytype=None, empty_type=None, annotate_xsi=0,             # <<<<<<<<<<<<<<
@@ -18689,7 +18597,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_25annotate(PyObject *__pyx_self, PyOb
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "annotate") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "annotate") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -18706,7 +18614,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_25annotate(PyObject *__pyx_self, PyOb
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("annotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("annotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.annotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -18717,7 +18625,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_25annotate(PyObject *__pyx_self, PyOb
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1487
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1484
  *     _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
  * 
  * def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False,             # <<<<<<<<<<<<<<
@@ -18739,38 +18647,38 @@ static PyObject *__pyx_pf_4lxml_9objectify_24annotate(CYTHON_UNUSED PyObject *__
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("annotate", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1521
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1518
  *     """
  *     cdef _Element  element
  *     element = cetree.rootNodeOrRaise(element_or_tree)             # <<<<<<<<<<<<<<
  *     _annotate(element, annotate_xsi, annotate_pytype, ignore_xsi,
  *               ignore_old, empty_type, empty_pytype)
  */
-  __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1521; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = ((PyObject *)rootNodeOrRaise(__pyx_v_element_or_tree)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1518; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_element = ((struct LxmlElement *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1522
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1519
  *     cdef _Element  element
  *     element = cetree.rootNodeOrRaise(element_or_tree)
  *     _annotate(element, annotate_xsi, annotate_pytype, ignore_xsi,             # <<<<<<<<<<<<<<
  *               ignore_old, empty_type, empty_pytype)
  * 
  */
-  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate_xsi); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_annotate_pytype); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_xsi); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_annotate_xsi); if (unlikely((__pyx_t_2 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_annotate_pytype); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_xsi); if (unlikely((__pyx_t_4 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1523
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1520
  *     element = cetree.rootNodeOrRaise(element_or_tree)
  *     _annotate(element, annotate_xsi, annotate_pytype, ignore_xsi,
  *               ignore_old, empty_type, empty_pytype)             # <<<<<<<<<<<<<<
  * 
  * 
  */
-  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1523; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_v_empty_type, __pyx_v_empty_pytype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1522; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_v_ignore_old); if (unlikely((__pyx_t_5 == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1520; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__annotate(__pyx_v_element, __pyx_t_2, __pyx_t_3, __pyx_t_4, __pyx_t_5, __pyx_v_empty_type, __pyx_v_empty_pytype); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1519; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
@@ -18787,7 +18695,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_24annotate(CYTHON_UNUSED PyObject *__
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1526
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1523
  * 
  * 
  * cdef _annotate(_Element element, bint annotate_xsi, bint annotate_pytype,             # <<<<<<<<<<<<<<
@@ -18817,7 +18725,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   __Pyx_INCREF(__pyx_v_empty_type_name);
   __Pyx_INCREF(__pyx_v_empty_pytype_name);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1533
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1530
  *     cdef PyType empty_pytype, StrType, NoneType
  * 
  *     if not annotate_xsi and not annotate_pytype:             # <<<<<<<<<<<<<<
@@ -18833,7 +18741,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1534
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1531
  * 
  *     if not annotate_xsi and not annotate_pytype:
  *         return             # <<<<<<<<<<<<<<
@@ -18847,7 +18755,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1536
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1533
  *         return
  * 
  *     if empty_type_name is not None:             # <<<<<<<<<<<<<<
@@ -18858,7 +18766,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1537
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1534
  * 
  *     if empty_type_name is not None:
  *         if isinstance(empty_type_name, bytes):             # <<<<<<<<<<<<<<
@@ -18869,7 +18777,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
     __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1538
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1535
  *     if empty_type_name is not None:
  *         if isinstance(empty_type_name, bytes):
  *             empty_type_name = (<bytes>empty_type_name).decode("ascii")             # <<<<<<<<<<<<<<
@@ -18878,18 +18786,17 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  */
       if (unlikely(__pyx_v_empty_type_name == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_empty_type_name)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1538; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_empty_type_name)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1535; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-      __Pyx_DECREF(__pyx_v_empty_type_name);
-      __pyx_v_empty_type_name = ((PyObject *)__pyx_t_4);
+      __Pyx_DECREF_SET(__pyx_v_empty_type_name, ((PyObject *)__pyx_t_4));
       __pyx_t_4 = 0;
       goto __pyx_L5;
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1539
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1536
  *         if isinstance(empty_type_name, bytes):
  *             empty_type_name = (<bytes>empty_type_name).decode("ascii")
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, empty_type_name)             # <<<<<<<<<<<<<<
@@ -18903,7 +18810,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
     goto __pyx_L4;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1540
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1537
  *             empty_type_name = (<bytes>empty_type_name).decode("ascii")
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, empty_type_name)
  *     elif empty_pytype_name is not None:             # <<<<<<<<<<<<<<
@@ -18914,7 +18821,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1541
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1538
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, empty_type_name)
  *     elif empty_pytype_name is not None:
  *         if isinstance(empty_pytype_name, bytes):             # <<<<<<<<<<<<<<
@@ -18925,7 +18832,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
     __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1542
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1539
  *     elif empty_pytype_name is not None:
  *         if isinstance(empty_pytype_name, bytes):
  *             empty_pytype_name = (<bytes>empty_pytype_name).decode("ascii")             # <<<<<<<<<<<<<<
@@ -18934,18 +18841,17 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  */
       if (unlikely(__pyx_v_empty_pytype_name == Py_None)) {
         PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "decode");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_empty_pytype_name)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1542; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_empty_pytype_name)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1539; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-      __Pyx_DECREF(__pyx_v_empty_pytype_name);
-      __pyx_v_empty_pytype_name = ((PyObject *)__pyx_t_4);
+      __Pyx_DECREF_SET(__pyx_v_empty_pytype_name, ((PyObject *)__pyx_t_4));
       __pyx_t_4 = 0;
       goto __pyx_L6;
     }
     __pyx_L6:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1543
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1540
  *         if isinstance(empty_pytype_name, bytes):
  *             empty_pytype_name = (<bytes>empty_pytype_name).decode("ascii")
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, empty_pytype_name)             # <<<<<<<<<<<<<<
@@ -18960,7 +18866,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1545
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1542
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, empty_pytype_name)
  *     else:
  *         dict_result = NULL             # <<<<<<<<<<<<<<
@@ -18971,7 +18877,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1546
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1543
  *     else:
  *         dict_result = NULL
  *     if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -18981,7 +18887,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   __pyx_t_3 = ((__pyx_v_dict_result != NULL) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1547
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1544
  *         dict_result = NULL
  *     if dict_result is not NULL:
  *         empty_pytype = <PyType>dict_result             # <<<<<<<<<<<<<<
@@ -18994,7 +18900,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1549
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1546
  *         empty_pytype = <PyType>dict_result
  *     else:
  *         empty_pytype = None             # <<<<<<<<<<<<<<
@@ -19006,7 +18912,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   }
   __pyx_L7:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1551
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1548
  *         empty_pytype = None
  * 
  *     StrType  = _PYTYPE_DICT.get(u'str')             # <<<<<<<<<<<<<<
@@ -19015,15 +18921,15 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_4 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), ((PyObject *)__pyx_n_u__str), Py_None); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), ((PyObject *)__pyx_n_u__str), Py_None); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_9objectify_PyType))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1551; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_9objectify_PyType))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1548; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_StrType = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1552
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1549
  * 
  *     StrType  = _PYTYPE_DICT.get(u'str')
  *     NoneType = _PYTYPE_DICT.get(u'NoneType')             # <<<<<<<<<<<<<<
@@ -19032,15 +18938,15 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  */
   if (unlikely(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT) == Py_None)) {
     PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%s'", "get");
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
-  __pyx_t_4 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), ((PyObject *)__pyx_n_u__NoneType), Py_None); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyDict_GetItemDefault(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT), ((PyObject *)__pyx_n_u__NoneType), Py_None); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_9objectify_PyType))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1552; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_4lxml_9objectify_PyType))))) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1549; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_v_NoneType = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1554
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1551
  *     NoneType = _PYTYPE_DICT.get(u'NoneType')
  * 
  *     doc = element._doc             # <<<<<<<<<<<<<<
@@ -19052,7 +18958,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   __pyx_v_doc = ((struct LxmlDocument *)__pyx_t_4);
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1555
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1552
  * 
  *     doc = element._doc
  *     c_node = element._c_node             # <<<<<<<<<<<<<<
@@ -19062,7 +18968,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   __pyx_t_5 = __pyx_v_element->_c_node;
   __pyx_v_c_node = __pyx_t_5;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1556
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1553
  *     doc = element._doc
  *     c_node = element._c_node
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_node, c_node, 1)             # <<<<<<<<<<<<<<
@@ -19071,7 +18977,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
  */
   BEGIN_FOR_EACH_ELEMENT_FROM(__pyx_v_c_node, __pyx_v_c_node, 1);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1557
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1554
  *     c_node = element._c_node
  *     tree.BEGIN_FOR_EACH_ELEMENT_FROM(c_node, c_node, 1)
  *     if c_node.type == tree.XML_ELEMENT_NODE:             # <<<<<<<<<<<<<<
@@ -19081,19 +18987,19 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   __pyx_t_3 = ((__pyx_v_c_node->type == XML_ELEMENT_NODE) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1560
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1557
  *         _annotate_element(c_node, doc, annotate_xsi, annotate_pytype,
  *                           ignore_xsi, ignore_pytype,
  *                           empty_type_name, empty_pytype, StrType, NoneType)             # <<<<<<<<<<<<<<
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  * 
  */
-    __pyx_t_6 = __pyx_f_4lxml_9objectify__annotate_element(__pyx_v_c_node, __pyx_v_doc, __pyx_v_annotate_xsi, __pyx_v_annotate_pytype, __pyx_v_ignore_xsi, __pyx_v_ignore_pytype, __pyx_v_empty_type_name, __pyx_v_empty_pytype, __pyx_v_StrType, __pyx_v_NoneType); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1558; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_9objectify__annotate_element(__pyx_v_c_node, __pyx_v_doc, __pyx_v_annotate_xsi, __pyx_v_annotate_pytype, __pyx_v_ignore_xsi, __pyx_v_ignore_pytype, __pyx_v_empty_type_name, __pyx_v_empty_pytype, __pyx_v_StrType, __pyx_v_NoneType); if (unlikely(__pyx_t_6 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1555; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     goto __pyx_L8;
   }
   __pyx_L8:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1561
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1558
  *                           ignore_xsi, ignore_pytype,
  *                           empty_type_name, empty_pytype, StrType, NoneType)
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)             # <<<<<<<<<<<<<<
@@ -19120,7 +19026,7 @@ static PyObject *__pyx_f_4lxml_9objectify__annotate(struct LxmlElement *__pyx_v_
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1563
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1560
  *     tree.END_FOR_EACH_ELEMENT_FROM(c_node)
  * 
  * cdef int _annotate_element(tree.xmlNode* c_node, _Document doc,             # <<<<<<<<<<<<<<
@@ -19154,7 +19060,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_annotate_element", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1570
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1567
  *     cdef tree.xmlNs*   c_ns
  *     cdef python.PyObject* dict_result
  *     cdef PyType pytype = None             # <<<<<<<<<<<<<<
@@ -19164,7 +19070,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   __Pyx_INCREF(Py_None);
   __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)Py_None);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1571
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1568
  *     cdef python.PyObject* dict_result
  *     cdef PyType pytype = None
  *     typename = None             # <<<<<<<<<<<<<<
@@ -19174,7 +19080,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   __Pyx_INCREF(Py_None);
   __pyx_v_typename = Py_None;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1572
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1569
  *     cdef PyType pytype = None
  *     typename = None
  *     istree = 0             # <<<<<<<<<<<<<<
@@ -19183,22 +19089,22 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
   __pyx_v_istree = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1576
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1573
  *     # if element is defined as xsi:nil, represent it as None
  *     if cetree.attributeValueFromNsName(
  *         c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"nil") == "true":             # <<<<<<<<<<<<<<
  *         pytype = NoneType
  * 
  */
-  __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__nil))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1575; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__nil))); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1572; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__true), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, ((PyObject *)__pyx_n_s__true), Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1576; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1573; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1577
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1574
  *     if cetree.attributeValueFromNsName(
  *         c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"nil") == "true":
  *         pytype = NoneType             # <<<<<<<<<<<<<<
@@ -19206,13 +19112,12 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *     if  pytype is None and not ignore_xsi:
  */
     __Pyx_INCREF(((PyObject *)__pyx_v_NoneType));
-    __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-    __pyx_v_pytype = __pyx_v_NoneType;
+    __Pyx_DECREF_SET(__pyx_v_pytype, __pyx_v_NoneType);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1579
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1576
  *         pytype = NoneType
  * 
  *     if  pytype is None and not ignore_xsi:             # <<<<<<<<<<<<<<
@@ -19228,20 +19133,19 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1582
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1579
  *         # check that old xsi type value is valid
  *         typename = cetree.attributeValueFromNsName(
  *             c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")             # <<<<<<<<<<<<<<
  *         if typename is not None:
  *             dict_result = python.PyDict_GetItem(
  */
-    __pyx_t_2 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__type))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1581; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_2 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__type))); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1578; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_v_typename);
-    __pyx_v_typename = __pyx_t_2;
+    __Pyx_DECREF_SET(__pyx_v_typename, __pyx_t_2);
     __pyx_t_2 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1583
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1580
  *         typename = cetree.attributeValueFromNsName(
  *             c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")
  *         if typename is not None:             # <<<<<<<<<<<<<<
@@ -19252,7 +19156,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     __pyx_t_3 = (__pyx_t_5 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1585
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1582
  *         if typename is not None:
  *             dict_result = python.PyDict_GetItem(
  *                 _SCHEMA_TYPE_DICT, typename)             # <<<<<<<<<<<<<<
@@ -19264,7 +19168,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       __pyx_v_dict_result = PyDict_GetItem(__pyx_t_2, __pyx_v_typename);
       __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1586
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1583
  *             dict_result = python.PyDict_GetItem(
  *                 _SCHEMA_TYPE_DICT, typename)
  *             if dict_result is NULL and u':' in typename:             # <<<<<<<<<<<<<<
@@ -19273,23 +19177,23 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
       __pyx_t_3 = ((__pyx_v_dict_result == NULL) != 0);
       if (__pyx_t_3) {
-        __pyx_t_5 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_36), __pyx_v_typename, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1586; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_5 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_36), __pyx_v_typename, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1583; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_4 = (__pyx_t_5 != 0);
       } else {
         __pyx_t_4 = __pyx_t_3;
       }
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1587
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1584
  *                 _SCHEMA_TYPE_DICT, typename)
  *             if dict_result is NULL and u':' in typename:
  *                 prefix, typename = typename.split(u':', 1)             # <<<<<<<<<<<<<<
  *                 dict_result = python.PyDict_GetItem(
  *                     _SCHEMA_TYPE_DICT, typename)
  */
-        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s__split); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename, __pyx_n_s__split); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_2);
-        __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_44), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyObject_Call(__pyx_t_2, ((PyObject *)__pyx_k_tuple_44), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_1);
         __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
         if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
@@ -19302,7 +19206,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           if (unlikely(size != 2)) {
             if (size > 2) __Pyx_RaiseTooManyValuesError(2);
             else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           #if CYTHON_COMPILING_IN_CPYTHON
           if (likely(PyTuple_CheckExact(sequence))) {
@@ -19315,16 +19219,16 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           __Pyx_INCREF(__pyx_t_2);
           __Pyx_INCREF(__pyx_t_6);
           #else
-          __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_2);
-          __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_6);
           #endif
           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         } else
         {
           Py_ssize_t index = -1;
-          __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_7);
           __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
           __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -19332,7 +19236,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           __Pyx_GOTREF(__pyx_t_2);
           index = 1; __pyx_t_6 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_6)) goto __pyx_L7_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_6);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_t_8 = NULL;
           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
           goto __pyx_L8_unpacking_done;
@@ -19340,16 +19244,15 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
           __pyx_t_8 = NULL;
           if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L8_unpacking_done:;
         }
         __pyx_v_prefix = __pyx_t_2;
         __pyx_t_2 = 0;
-        __Pyx_DECREF(__pyx_v_typename);
-        __pyx_v_typename = __pyx_t_6;
+        __Pyx_DECREF_SET(__pyx_v_typename, __pyx_t_6);
         __pyx_t_6 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1589
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1586
  *                 prefix, typename = typename.split(u':', 1)
  *                 dict_result = python.PyDict_GetItem(
  *                     _SCHEMA_TYPE_DICT, typename)             # <<<<<<<<<<<<<<
@@ -19364,7 +19267,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       }
       __pyx_L6:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1590
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1587
  *                 dict_result = python.PyDict_GetItem(
  *                     _SCHEMA_TYPE_DICT, typename)
  *             if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -19374,7 +19277,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       __pyx_t_4 = ((__pyx_v_dict_result != NULL) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1591
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1588
  *                     _SCHEMA_TYPE_DICT, typename)
  *             if dict_result is not NULL:
  *                 pytype = <PyType>dict_result             # <<<<<<<<<<<<<<
@@ -19382,10 +19285,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     # StrType does not have a typecheck but is the default
  */
         __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_dict_result)));
-        __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-        __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_dict_result);
+        __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_dict_result));
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1592
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1589
  *             if dict_result is not NULL:
  *                 pytype = <PyType>dict_result
  *                 if pytype is not StrType:             # <<<<<<<<<<<<<<
@@ -19396,20 +19298,19 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
         __pyx_t_3 = (__pyx_t_4 != 0);
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1596
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1593
  *                     # anyway, so just accept it if given as type
  *                     # information
  *                     pytype = _check_type(c_node, pytype)             # <<<<<<<<<<<<<<
  *                     if pytype is None:
  *                         typename = None
  */
-          __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__check_type(__pyx_v_c_node, __pyx_v_pytype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1596; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__check_type(__pyx_v_c_node, __pyx_v_pytype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1593; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_1);
-          __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-          __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1);
+          __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1));
           __pyx_t_1 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1597
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1594
  *                     # information
  *                     pytype = _check_type(c_node, pytype)
  *                     if pytype is None:             # <<<<<<<<<<<<<<
@@ -19420,7 +19321,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           __pyx_t_4 = (__pyx_t_3 != 0);
           if (__pyx_t_4) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1598
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1595
  *                     pytype = _check_type(c_node, pytype)
  *                     if pytype is None:
  *                         typename = None             # <<<<<<<<<<<<<<
@@ -19428,8 +19329,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *     if pytype is None and not ignore_pytype:
  */
             __Pyx_INCREF(Py_None);
-            __Pyx_DECREF(__pyx_v_typename);
-            __pyx_v_typename = Py_None;
+            __Pyx_DECREF_SET(__pyx_v_typename, Py_None);
             goto __pyx_L11;
           }
           __pyx_L11:;
@@ -19446,7 +19346,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1600
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1597
  *                         typename = None
  * 
  *     if pytype is None and not ignore_pytype:             # <<<<<<<<<<<<<<
@@ -19462,19 +19362,19 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1603
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1600
  *         # check that old pytype value is valid
  *         old_pytypename = cetree.attributeValueFromNsName(
  *             c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)             # <<<<<<<<<<<<<<
  *         if old_pytypename is not None:
  *             if old_pytypename == TREE_PYTYPE_NAME:
  */
-    __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = attributeValueFromNsName(__pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1599; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __pyx_v_old_pytypename = __pyx_t_1;
     __pyx_t_1 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1604
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1601
  *         old_pytypename = cetree.attributeValueFromNsName(
  *             c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
  *         if old_pytypename is not None:             # <<<<<<<<<<<<<<
@@ -19485,19 +19385,19 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     __pyx_t_4 = (__pyx_t_5 != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1605
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1602
  *             c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)
  *         if old_pytypename is not None:
  *             if old_pytypename == TREE_PYTYPE_NAME:             # <<<<<<<<<<<<<<
  *                 if not cetree.hasChild(c_node):
  *                     # only case where we should keep it,
  */
-      __pyx_t_1 = PyObject_RichCompare(__pyx_v_old_pytypename, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1605; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = PyObject_RichCompare(__pyx_v_old_pytypename, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1602; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1606
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1603
  *         if old_pytypename is not None:
  *             if old_pytypename == TREE_PYTYPE_NAME:
  *                 if not cetree.hasChild(c_node):             # <<<<<<<<<<<<<<
@@ -19507,7 +19407,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
         __pyx_t_4 = ((!(hasChild(__pyx_v_c_node) != 0)) != 0);
         if (__pyx_t_4) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1609
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1606
  *                     # only case where we should keep it,
  *                     # everything else is clear enough
  *                     pytype = TREE_PYTYPE             # <<<<<<<<<<<<<<
@@ -19515,8 +19415,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                 if old_pytypename == 'none':
  */
           __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE));
-          __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-          __pyx_v_pytype = __pyx_v_4lxml_9objectify_TREE_PYTYPE;
+          __Pyx_DECREF_SET(__pyx_v_pytype, __pyx_v_4lxml_9objectify_TREE_PYTYPE);
           goto __pyx_L15;
         }
         __pyx_L15:;
@@ -19524,19 +19423,19 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1611
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1608
  *                     pytype = TREE_PYTYPE
  *             else:
  *                 if old_pytypename == 'none':             # <<<<<<<<<<<<<<
  *                     # transition from lxml 1.x
  *                     old_pytypename = "NoneType"
  */
-        __pyx_t_1 = PyObject_RichCompare(__pyx_v_old_pytypename, ((PyObject *)__pyx_n_s__none), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1611; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = PyObject_RichCompare(__pyx_v_old_pytypename, ((PyObject *)__pyx_n_s__none), Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1608; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
         if (__pyx_t_4) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1613
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1610
  *                 if old_pytypename == 'none':
  *                     # transition from lxml 1.x
  *                     old_pytypename = "NoneType"             # <<<<<<<<<<<<<<
@@ -19544,13 +19443,12 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                     _PYTYPE_DICT, old_pytypename)
  */
           __Pyx_INCREF(((PyObject *)__pyx_n_s__NoneType));
-          __Pyx_DECREF(__pyx_v_old_pytypename);
-          __pyx_v_old_pytypename = ((PyObject *)__pyx_n_s__NoneType);
+          __Pyx_DECREF_SET(__pyx_v_old_pytypename, ((PyObject *)__pyx_n_s__NoneType));
           goto __pyx_L16;
         }
         __pyx_L16:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1615
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1612
  *                     old_pytypename = "NoneType"
  *                 dict_result = python.PyDict_GetItem(
  *                     _PYTYPE_DICT, old_pytypename)             # <<<<<<<<<<<<<<
@@ -19562,7 +19460,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
         __pyx_v_dict_result = PyDict_GetItem(__pyx_t_1, __pyx_v_old_pytypename);
         __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1616
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1613
  *                 dict_result = python.PyDict_GetItem(
  *                     _PYTYPE_DICT, old_pytypename)
  *                 if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -19572,7 +19470,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
         __pyx_t_4 = ((__pyx_v_dict_result != NULL) != 0);
         if (__pyx_t_4) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1617
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1614
  *                     _PYTYPE_DICT, old_pytypename)
  *                 if dict_result is not NULL:
  *                     pytype = <PyType>dict_result             # <<<<<<<<<<<<<<
@@ -19580,10 +19478,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                         # StrType does not have a typecheck but is the
  */
           __Pyx_INCREF(((PyObject *)((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_dict_result)));
-          __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-          __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_dict_result);
+          __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_dict_result));
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1618
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1615
  *                 if dict_result is not NULL:
  *                     pytype = <PyType>dict_result
  *                     if pytype is not StrType:             # <<<<<<<<<<<<<<
@@ -19594,17 +19491,16 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           __pyx_t_5 = (__pyx_t_4 != 0);
           if (__pyx_t_5) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1622
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1619
  *                         # default anyway, so just accept it if given as
  *                         # type information
  *                         pytype = _check_type(c_node, pytype)             # <<<<<<<<<<<<<<
  * 
  *     if pytype is None:
  */
-            __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__check_type(__pyx_v_c_node, __pyx_v_pytype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1622; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_1 = ((PyObject *)__pyx_f_4lxml_9objectify__check_type(__pyx_v_c_node, __pyx_v_pytype)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1619; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_1);
-            __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-            __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1);
+            __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_1));
             __pyx_t_1 = 0;
             goto __pyx_L18;
           }
@@ -19621,7 +19517,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   __pyx_L12:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1624
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1621
  *                         pytype = _check_type(c_node, pytype)
  * 
  *     if pytype is None:             # <<<<<<<<<<<<<<
@@ -19632,7 +19528,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   __pyx_t_4 = (__pyx_t_5 != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1626
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1623
  *     if pytype is None:
  *         # try to guess type
  *         if not cetree.hasChild(c_node):             # <<<<<<<<<<<<<<
@@ -19642,26 +19538,25 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     __pyx_t_4 = ((!(hasChild(__pyx_v_c_node) != 0)) != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1628
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1625
  *         if not cetree.hasChild(c_node):
  *             # element has no children => data class
  *             pytype = _guessPyType(textOf(c_node), StrType)             # <<<<<<<<<<<<<<
  *         else:
  *             istree = 1
  */
-      __pyx_t_1 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = textOf(__pyx_v_c_node); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__guessPyType(__pyx_t_1, __pyx_v_StrType)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1628; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__guessPyType(__pyx_t_1, __pyx_v_StrType)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1625; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-      __pyx_v_pytype = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_6);
+      __Pyx_DECREF_SET(__pyx_v_pytype, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_6));
       __pyx_t_6 = 0;
       goto __pyx_L20;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1630
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1627
  *             pytype = _guessPyType(textOf(c_node), StrType)
  *         else:
  *             istree = 1             # <<<<<<<<<<<<<<
@@ -19675,7 +19570,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   __pyx_L19:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1632
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1629
  *             istree = 1
  * 
  *     if pytype is None:             # <<<<<<<<<<<<<<
@@ -19686,7 +19581,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   __pyx_t_5 = (__pyx_t_4 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1634
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1631
  *     if pytype is None:
  *         # use default type for empty elements
  *         if cetree.hasText(c_node):             # <<<<<<<<<<<<<<
@@ -19696,7 +19591,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     __pyx_t_5 = (hasText(__pyx_v_c_node) != 0);
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1635
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1632
  *         # use default type for empty elements
  *         if cetree.hasText(c_node):
  *             pytype = StrType             # <<<<<<<<<<<<<<
@@ -19704,13 +19599,12 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *             pytype = empty_pytype
  */
       __Pyx_INCREF(((PyObject *)__pyx_v_StrType));
-      __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-      __pyx_v_pytype = __pyx_v_StrType;
+      __Pyx_DECREF_SET(__pyx_v_pytype, __pyx_v_StrType);
       goto __pyx_L22;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1637
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1634
  *             pytype = StrType
  *         else:
  *             pytype = empty_pytype             # <<<<<<<<<<<<<<
@@ -19718,10 +19612,9 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                 typename = empty_type_name
  */
       __Pyx_INCREF(((PyObject *)__pyx_v_empty_pytype));
-      __Pyx_DECREF(((PyObject *)__pyx_v_pytype));
-      __pyx_v_pytype = __pyx_v_empty_pytype;
+      __Pyx_DECREF_SET(__pyx_v_pytype, __pyx_v_empty_pytype);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1638
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1635
  *         else:
  *             pytype = empty_pytype
  *             if typename is None:             # <<<<<<<<<<<<<<
@@ -19732,7 +19625,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       __pyx_t_4 = (__pyx_t_5 != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1639
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1636
  *             pytype = empty_pytype
  *             if typename is None:
  *                 typename = empty_type_name             # <<<<<<<<<<<<<<
@@ -19740,8 +19633,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *     if pytype is not None:
  */
         __Pyx_INCREF(__pyx_v_empty_type_name);
-        __Pyx_DECREF(__pyx_v_typename);
-        __pyx_v_typename = __pyx_v_empty_type_name;
+        __Pyx_DECREF_SET(__pyx_v_typename, __pyx_v_empty_type_name);
         goto __pyx_L23;
       }
       __pyx_L23:;
@@ -19751,7 +19643,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   __pyx_L21:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1641
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1638
  *                 typename = empty_type_name
  * 
  *     if pytype is not None:             # <<<<<<<<<<<<<<
@@ -19762,7 +19654,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   __pyx_t_5 = (__pyx_t_4 != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1642
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1639
  * 
  *     if pytype is not None:
  *         if typename is None:             # <<<<<<<<<<<<<<
@@ -19773,7 +19665,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     __pyx_t_4 = (__pyx_t_5 != 0);
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1643
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1640
  *     if pytype is not None:
  *         if typename is None:
  *             if not istree:             # <<<<<<<<<<<<<<
@@ -19783,7 +19675,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       __pyx_t_4 = ((!(__pyx_v_istree != 0)) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1644
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1641
  *         if typename is None:
  *             if not istree:
  *                 if python.PyList_GET_SIZE(pytype._schema_types) > 0:             # <<<<<<<<<<<<<<
@@ -19796,7 +19688,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         if (__pyx_t_4) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1647
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1644
  *                     # pytype->xsi:type is a 1:n mapping
  *                     # simply take the first
  *                     typename = pytype._schema_types[0]             # <<<<<<<<<<<<<<
@@ -19805,12 +19697,11 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
           if (unlikely(((PyObject *)__pyx_v_pytype->_schema_types) == Py_None)) {
             PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
-          __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_pytype->_schema_types), 0, sizeof(long), PyInt_FromLong, 1, 0, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1647; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_pytype->_schema_types), 0, sizeof(long), PyInt_FromLong, 1, 0, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1644; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_6);
-          __Pyx_DECREF(__pyx_v_typename);
-          __pyx_v_typename = __pyx_t_6;
+          __Pyx_DECREF_SET(__pyx_v_typename, __pyx_t_6);
           __pyx_t_6 = 0;
           goto __pyx_L27;
         }
@@ -19821,18 +19712,18 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       goto __pyx_L25;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1648
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1645
  *                     # simply take the first
  *                     typename = pytype._schema_types[0]
  *         elif typename not in pytype._schema_types:             # <<<<<<<<<<<<<<
  *             typename = pytype._schema_types[0]
  * 
  */
-    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_typename, ((PyObject *)__pyx_v_pytype->_schema_types), Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1648; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = (__Pyx_PySequence_Contains(__pyx_v_typename, ((PyObject *)__pyx_v_pytype->_schema_types), Py_NE)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1645; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_5 = (__pyx_t_4 != 0);
     if (__pyx_t_5) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1649
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1646
  *                     typename = pytype._schema_types[0]
  *         elif typename not in pytype._schema_types:
  *             typename = pytype._schema_types[0]             # <<<<<<<<<<<<<<
@@ -19841,12 +19732,11 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
       if (unlikely(((PyObject *)__pyx_v_pytype->_schema_types) == Py_None)) {
         PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
-      __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_pytype->_schema_types), 0, sizeof(long), PyInt_FromLong, 1, 0, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1649; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_GetItemInt_List(((PyObject *)__pyx_v_pytype->_schema_types), 0, sizeof(long), PyInt_FromLong, 1, 0, 1); if (!__pyx_t_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1646; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_DECREF(__pyx_v_typename);
-      __pyx_v_typename = __pyx_t_6;
+      __Pyx_DECREF_SET(__pyx_v_typename, __pyx_t_6);
       __pyx_t_6 = 0;
       goto __pyx_L25;
     }
@@ -19855,7 +19745,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   __pyx_L24:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1651
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1648
  *             typename = pytype._schema_types[0]
  * 
  *     if annotate_xsi:             # <<<<<<<<<<<<<<
@@ -19865,7 +19755,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   __pyx_t_5 = (__pyx_v_annotate_xsi != 0);
   if (__pyx_t_5) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1652
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1649
  * 
  *     if annotate_xsi:
  *         if typename is None or istree:             # <<<<<<<<<<<<<<
@@ -19880,7 +19770,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     }
     if (__pyx_t_4) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1654
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1651
  *         if typename is None or istree:
  *             cetree.delAttributeFromNsName(
  *                 c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>"type")             # <<<<<<<<<<<<<<
@@ -19892,19 +19782,19 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1657
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1654
  *         else:
  *             # update or create attribute
  *             typename_utf8 = cetree.utf8(typename)             # <<<<<<<<<<<<<<
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  *                 doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')
  */
-      __pyx_t_6 = ((PyObject *)utf8(__pyx_v_typename)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1657; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = ((PyObject *)utf8(__pyx_v_typename)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1654; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __pyx_v_typename_utf8 = __pyx_t_6;
       __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1659
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1656
  *             typename_utf8 = cetree.utf8(typename)
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  *                 doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')             # <<<<<<<<<<<<<<
@@ -19913,7 +19803,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
       __pyx_v_c_ns = findOrBuildNodeNsPrefix(__pyx_v_doc, __pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_NS, ((unsigned char *)((unsigned char *)__pyx_k__xsd)));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1660
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1657
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  *                 doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')
  *             if c_ns is not NULL:             # <<<<<<<<<<<<<<
@@ -19923,27 +19813,27 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       __pyx_t_4 = ((__pyx_v_c_ns != NULL) != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1661
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1658
  *                 doc, c_node, _XML_SCHEMA_NS, <unsigned char*>'xsd')
  *             if c_ns is not NULL:
  *                 if b':' in typename_utf8:             # <<<<<<<<<<<<<<
  *                     prefix, name = typename_utf8.split(b':', 1)
  *                     if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
  */
-        __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_b_36), __pyx_v_typename_utf8, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1661; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_b_36), __pyx_v_typename_utf8, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1658; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_5 = (__pyx_t_4 != 0);
         if (__pyx_t_5) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1662
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1659
  *             if c_ns is not NULL:
  *                 if b':' in typename_utf8:
  *                     prefix, name = typename_utf8.split(b':', 1)             # <<<<<<<<<<<<<<
  *                     if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
  *                         typename_utf8 = name
  */
-          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename_utf8, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_typename_utf8, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_6);
-          __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_45), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_45), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_1);
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
           if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
@@ -19956,7 +19846,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
             if (unlikely(size != 2)) {
               if (size > 2) __Pyx_RaiseTooManyValuesError(2);
               else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             }
             #if CYTHON_COMPILING_IN_CPYTHON
             if (likely(PyTuple_CheckExact(sequence))) {
@@ -19969,16 +19859,16 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
             __Pyx_INCREF(__pyx_t_6);
             __Pyx_INCREF(__pyx_t_2);
             #else
-            __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_6);
-            __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_2);
             #endif
             __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
           } else
           {
             Py_ssize_t index = -1;
-            __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_7);
             __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
             __pyx_t_8 = Py_TYPE(__pyx_t_7)->tp_iternext;
@@ -19986,7 +19876,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
             __Pyx_GOTREF(__pyx_t_6);
             index = 1; __pyx_t_2 = __pyx_t_8(__pyx_t_7); if (unlikely(!__pyx_t_2)) goto __pyx_L32_unpacking_failed;
             __Pyx_GOTREF(__pyx_t_2);
-            if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_7), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __pyx_t_8 = NULL;
             __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
             goto __pyx_L33_unpacking_done;
@@ -19994,16 +19884,15 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
             __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
             __pyx_t_8 = NULL;
             if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __pyx_L33_unpacking_done:;
           }
-          __Pyx_XDECREF(__pyx_v_prefix);
-          __pyx_v_prefix = __pyx_t_6;
+          __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_6);
           __pyx_t_6 = 0;
           __pyx_v_name = __pyx_t_2;
           __pyx_t_2 = 0;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1663
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1660
  *                 if b':' in typename_utf8:
  *                     prefix, name = typename_utf8.split(b':', 1)
  *                     if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':             # <<<<<<<<<<<<<<
@@ -20019,7 +19908,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           }
           if (__pyx_t_3) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1664
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1661
  *                     prefix, name = typename_utf8.split(b':', 1)
  *                     if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
  *                         typename_utf8 = name             # <<<<<<<<<<<<<<
@@ -20027,12 +19916,11 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  *                         typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name
  */
             __Pyx_INCREF(__pyx_v_name);
-            __Pyx_DECREF(__pyx_v_typename_utf8);
-            __pyx_v_typename_utf8 = __pyx_v_name;
+            __Pyx_DECREF_SET(__pyx_v_typename_utf8, __pyx_v_name);
             goto __pyx_L34;
           }
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1665
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1662
  *                     if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
  *                         typename_utf8 = name
  *                     elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0:             # <<<<<<<<<<<<<<
@@ -20042,23 +19930,22 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           __pyx_t_3 = ((xmlStrcmp((const xmlChar*)PyBytes_AS_STRING(__pyx_v_prefix), __pyx_v_c_ns->prefix) != 0) != 0);
           if (__pyx_t_3) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1666
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1663
  *                         typename_utf8 = name
  *                     elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0:
  *                         typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name             # <<<<<<<<<<<<<<
  *                 elif c_ns.prefix is not NULL and c_ns.prefix[0] != c'\0':
  *                     typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + typename_utf8
  */
-            __pyx_t_1 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_1 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-            __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_kp_b_36)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_kp_b_36)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(((PyObject *)__pyx_t_2));
             __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-            __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_t_2), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1666; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_t_2), __pyx_v_name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1663; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_1);
             __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-            __Pyx_DECREF(__pyx_v_typename_utf8);
-            __pyx_v_typename_utf8 = __pyx_t_1;
+            __Pyx_DECREF_SET(__pyx_v_typename_utf8, __pyx_t_1);
             __pyx_t_1 = 0;
             goto __pyx_L34;
           }
@@ -20066,7 +19953,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
           goto __pyx_L31;
         }
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1667
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1664
  *                     elif tree.xmlStrcmp(_xcstr(prefix), c_ns.prefix) != 0:
  *                         typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name
  *                 elif c_ns.prefix is not NULL and c_ns.prefix[0] != c'\0':             # <<<<<<<<<<<<<<
@@ -20082,23 +19969,22 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
         }
         if (__pyx_t_4) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1668
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1665
  *                         typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + name
  *                 elif c_ns.prefix is not NULL and c_ns.prefix[0] != c'\0':
  *                     typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + typename_utf8             # <<<<<<<<<<<<<<
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  *                 doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')
  */
-          __pyx_t_1 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = __Pyx_PyBytes_FromUString(((unsigned char *)__pyx_v_c_ns->prefix)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-          __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_kp_b_36)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_2 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_kp_b_36)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(((PyObject *)__pyx_t_2));
           __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
-          __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_t_2), __pyx_v_typename_utf8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1668; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_1 = PyNumber_Add(((PyObject *)__pyx_t_2), __pyx_v_typename_utf8); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1665; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_1);
           __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
-          __Pyx_DECREF(__pyx_v_typename_utf8);
-          __pyx_v_typename_utf8 = __pyx_t_1;
+          __Pyx_DECREF_SET(__pyx_v_typename_utf8, __pyx_t_1);
           __pyx_t_1 = 0;
           goto __pyx_L31;
         }
@@ -20107,7 +19993,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       }
       __pyx_L30:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1670
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1667
  *                     typename_utf8 = (<unsigned char*>c_ns.prefix) + b':' + typename_utf8
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  *                 doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')             # <<<<<<<<<<<<<<
@@ -20116,7 +20002,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
       __pyx_v_c_ns = findOrBuildNodeNsPrefix(__pyx_v_doc, __pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__xsi)));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1671
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1668
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  *                 doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')
  *             tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"type", _xcstr(typename_utf8))             # <<<<<<<<<<<<<<
@@ -20130,7 +20016,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   __pyx_L28:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1673
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1670
  *             tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"type", _xcstr(typename_utf8))
  * 
  *     if annotate_pytype:             # <<<<<<<<<<<<<<
@@ -20140,7 +20026,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   __pyx_t_4 = (__pyx_v_annotate_pytype != 0);
   if (__pyx_t_4) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1674
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1671
  * 
  *     if annotate_pytype:
  *         if pytype is None:             # <<<<<<<<<<<<<<
@@ -20151,7 +20037,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     __pyx_t_3 = (__pyx_t_4 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1677
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1674
  *             # delete attribute if it exists
  *             cetree.delAttributeFromNsName(
  *                 c_node, _PYTYPE_NAMESPACE, _PYTYPE_ATTRIBUTE_NAME)             # <<<<<<<<<<<<<<
@@ -20163,7 +20049,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1681
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1678
  *             # update or create attribute
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  *                 doc, c_node, _PYTYPE_NAMESPACE, <unsigned char*>'py')             # <<<<<<<<<<<<<<
@@ -20172,7 +20058,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
       __pyx_v_c_ns = findOrBuildNodeNsPrefix(__pyx_v_doc, __pyx_v_c_node, __pyx_v_4lxml_9objectify__PYTYPE_NAMESPACE, ((unsigned char *)((unsigned char *)__pyx_k__py)));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1682
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1679
  *             c_ns = cetree.findOrBuildNodeNsPrefix(
  *                 doc, c_node, _PYTYPE_NAMESPACE, <unsigned char*>'py')
  *             pytype_name = cetree.utf8(pytype.name)             # <<<<<<<<<<<<<<
@@ -20181,13 +20067,13 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
       __pyx_t_1 = __pyx_v_pytype->name;
       __Pyx_INCREF(__pyx_t_1);
-      __pyx_t_2 = ((PyObject *)utf8(__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1682; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_2 = ((PyObject *)utf8(__pyx_t_1)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1679; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_2);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
       __pyx_v_pytype_name = ((PyObject*)__pyx_t_2);
       __pyx_t_2 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1684
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1681
  *             pytype_name = cetree.utf8(pytype.name)
  *             tree.xmlSetNsProp(c_node, c_ns, _PYTYPE_ATTRIBUTE_NAME,
  *                               _xcstr(pytype_name))             # <<<<<<<<<<<<<<
@@ -20196,7 +20082,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
       xmlSetNsProp(__pyx_v_c_node, __pyx_v_c_ns, __pyx_v_4lxml_9objectify__PYTYPE_ATTRIBUTE_NAME, (const xmlChar*)PyBytes_AS_STRING(((PyObject *)__pyx_v_pytype_name)));
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1685
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1682
  *             tree.xmlSetNsProp(c_node, c_ns, _PYTYPE_ATTRIBUTE_NAME,
  *                               _xcstr(pytype_name))
  *             if pytype is NoneType:             # <<<<<<<<<<<<<<
@@ -20207,7 +20093,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
       __pyx_t_4 = (__pyx_t_3 != 0);
       if (__pyx_t_4) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1687
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1684
  *             if pytype is NoneType:
  *                 c_ns = cetree.findOrBuildNodeNsPrefix(
  *                     doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')             # <<<<<<<<<<<<<<
@@ -20216,7 +20102,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
  */
         __pyx_v_c_ns = findOrBuildNodeNsPrefix(__pyx_v_doc, __pyx_v_c_node, __pyx_v_4lxml_9objectify__XML_SCHEMA_INSTANCE_NS, ((unsigned char *)((unsigned char *)__pyx_k__xsi)));
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1688
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1685
  *                 c_ns = cetree.findOrBuildNodeNsPrefix(
  *                     doc, c_node, _XML_SCHEMA_INSTANCE_NS, <unsigned char*>'xsi')
  *                 tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"nil", <unsigned char*>"true")             # <<<<<<<<<<<<<<
@@ -20233,7 +20119,7 @@ static int __pyx_f_4lxml_9objectify__annotate_element(xmlNode *__pyx_v_c_node, s
   }
   __pyx_L35:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1690
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1687
  *                 tree.xmlSetNsProp(c_node, c_ns, <unsigned char*>"nil", <unsigned char*>"true")
  * 
  *     return 0             # <<<<<<<<<<<<<<
@@ -20305,7 +20191,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_27deannotate(PyObject *__pyx_self, Py
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "deannotate") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "deannotate") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else if (PyTuple_GET_SIZE(__pyx_args) != 1) {
       goto __pyx_L5_argtuple_error;
@@ -20314,10 +20200,10 @@ static PyObject *__pyx_pw_4lxml_9objectify_27deannotate(PyObject *__pyx_self, Py
     }
     __pyx_v_element_or_tree = values[0];
     if (values[1]) {
-      __pyx_v_pytype = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pytype == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_pytype = __Pyx_PyObject_IsTrue(values[1]); if (unlikely((__pyx_v_pytype == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1695
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1692
  * cdef object _cleanup_namespaces = etree.cleanup_namespaces
  * 
  * def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,             # <<<<<<<<<<<<<<
@@ -20327,15 +20213,15 @@ static PyObject *__pyx_pw_4lxml_9objectify_27deannotate(PyObject *__pyx_self, Py
       __pyx_v_pytype = ((int)1);
     }
     if (values[2]) {
-      __pyx_v_xsi = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_xsi == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_xsi = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_xsi == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_xsi = ((int)1);
     }
     if (values[3]) {
-      __pyx_v_xsi_nil = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_xsi_nil == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_xsi_nil = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_xsi_nil == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1693; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1696
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1693
  * 
  * def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,
  *                bint xsi_nil=False, bint cleanup_namespaces=False):             # <<<<<<<<<<<<<<
@@ -20345,14 +20231,14 @@ static PyObject *__pyx_pw_4lxml_9objectify_27deannotate(PyObject *__pyx_self, Py
       __pyx_v_xsi_nil = ((int)0);
     }
     if (values[4]) {
-      __pyx_v_cleanup_namespaces = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_cleanup_namespaces == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1696; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      __pyx_v_cleanup_namespaces = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_cleanup_namespaces == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1693; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
     } else {
       __pyx_v_cleanup_namespaces = ((int)0);
     }
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("deannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("deannotate", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.deannotate", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -20363,7 +20249,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_27deannotate(PyObject *__pyx_self, Py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1695
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1692
  * cdef object _cleanup_namespaces = etree.cleanup_namespaces
  * 
  * def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,             # <<<<<<<<<<<<<<
@@ -20385,19 +20271,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("deannotate", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1712
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1709
  *     the tree, pass the option ``cleanup_namespaces=True``.
  *     """
  *     cdef list attribute_names = []             # <<<<<<<<<<<<<<
  * 
  *     if pytype:
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1709; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_v_attribute_names = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1714
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1711
  *     cdef list attribute_names = []
  * 
  *     if pytype:             # <<<<<<<<<<<<<<
@@ -20407,22 +20293,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
   __pyx_t_2 = (__pyx_v_pytype != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1715
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1712
  * 
  *     if pytype:
  *         attribute_names.append(PYTYPE_ATTRIBUTE)             # <<<<<<<<<<<<<<
  *     if xsi:
  *         attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
  */
-    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
-    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1715; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1712; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1716
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1713
  *     if pytype:
  *         attribute_names.append(PYTYPE_ATTRIBUTE)
  *     if xsi:             # <<<<<<<<<<<<<<
@@ -20432,7 +20318,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
   __pyx_t_2 = (__pyx_v_xsi != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1717
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1714
  *         attribute_names.append(PYTYPE_ATTRIBUTE)
  *     if xsi:
  *         attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)             # <<<<<<<<<<<<<<
@@ -20441,13 +20327,13 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  */
     __pyx_t_1 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR;
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1717; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1714; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1718
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1715
  *     if xsi:
  *         attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
  *     if xsi_nil:             # <<<<<<<<<<<<<<
@@ -20457,7 +20343,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
   __pyx_t_2 = (__pyx_v_xsi_nil != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1719
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1716
  *         attribute_names.append(XML_SCHEMA_INSTANCE_TYPE_ATTR)
  *     if xsi_nil:
  *         attribute_names.append(XML_SCHEMA_INSTANCE_NIL_ATTR)             # <<<<<<<<<<<<<<
@@ -20466,36 +20352,36 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
  */
     __pyx_t_1 = __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR;
     __Pyx_INCREF(__pyx_t_1);
-    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1719; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_attribute_names, __pyx_t_1); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1716; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1721
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1718
  *         attribute_names.append(XML_SCHEMA_INSTANCE_NIL_ATTR)
  * 
  *     _strip_attributes(element_or_tree, *attribute_names)             # <<<<<<<<<<<<<<
  *     if cleanup_namespaces:
  *         _cleanup_namespaces(element_or_tree)
  */
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_v_element_or_tree);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_element_or_tree);
   __Pyx_GIVEREF(__pyx_v_element_or_tree);
-  __pyx_t_4 = PySequence_Tuple(((PyObject *)__pyx_v_attribute_names)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PySequence_Tuple(((PyObject *)__pyx_v_attribute_names)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyNumber_Add(((PyObject *)__pyx_t_1), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_5));
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify__strip_attributes, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1721; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_v_4lxml_9objectify__strip_attributes, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1718; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1722
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1719
  * 
  *     _strip_attributes(element_or_tree, *attribute_names)
  *     if cleanup_namespaces:             # <<<<<<<<<<<<<<
@@ -20505,19 +20391,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_26deannotate(CYTHON_UNUSED PyObject *
   __pyx_t_2 = (__pyx_v_cleanup_namespaces != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1723
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1720
  *     _strip_attributes(element_or_tree, *attribute_names)
  *     if cleanup_namespaces:
  *         _cleanup_namespaces(element_or_tree)             # <<<<<<<<<<<<<<
  * 
  * ################################################################################
  */
-    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_INCREF(__pyx_v_element_or_tree);
     PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_element_or_tree);
     __Pyx_GIVEREF(__pyx_v_element_or_tree);
-    __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__cleanup_namespaces, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1723; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__cleanup_namespaces, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1720; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
     __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
@@ -20556,7 +20442,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_29set_default_parser(PyObject *__pyx_
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__new_parser,0};
     PyObject* values[1] = {0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1735
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1732
  * objectify_parser = __DEFAULT_PARSER
  * 
  * def set_default_parser(new_parser = None):             # <<<<<<<<<<<<<<
@@ -20581,7 +20467,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_29set_default_parser(PyObject *__pyx_
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_default_parser") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_default_parser") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -20594,7 +20480,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_29set_default_parser(PyObject *__pyx_
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("set_default_parser", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("set_default_parser", 0, 0, 1, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.set_default_parser", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -20616,7 +20502,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("set_default_parser", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1746
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1743
  *     """
  *     global objectify_parser
  *     if new_parser is None:             # <<<<<<<<<<<<<<
@@ -20627,7 +20513,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1747
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1744
  *     global objectify_parser
  *     if new_parser is None:
  *         objectify_parser = __DEFAULT_PARSER             # <<<<<<<<<<<<<<
@@ -20636,27 +20522,26 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
  */
     __Pyx_INCREF(__pyx_v_4lxml_9objectify___DEFAULT_PARSER);
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_objectify_parser);
-    __Pyx_DECREF(__pyx_v_4lxml_9objectify_objectify_parser);
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_objectify_parser, __pyx_v_4lxml_9objectify___DEFAULT_PARSER);
     __Pyx_GIVEREF(__pyx_v_4lxml_9objectify___DEFAULT_PARSER);
-    __pyx_v_4lxml_9objectify_objectify_parser = __pyx_v_4lxml_9objectify___DEFAULT_PARSER;
     goto __pyx_L3;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1748
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1745
  *     if new_parser is None:
  *         objectify_parser = __DEFAULT_PARSER
  *     elif isinstance(new_parser, etree.XMLParser):             # <<<<<<<<<<<<<<
  *         objectify_parser = new_parser
  *     else:
  */
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
-  __pyx_t_2 = PyObject_IsInstance(__pyx_v_new_parser, __pyx_t_3); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_IsInstance(__pyx_v_new_parser, __pyx_t_3); if (unlikely(__pyx_t_2 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1745; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1749
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1746
  *         objectify_parser = __DEFAULT_PARSER
  *     elif isinstance(new_parser, etree.XMLParser):
  *         objectify_parser = new_parser             # <<<<<<<<<<<<<<
@@ -20665,14 +20550,13 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
  */
     __Pyx_INCREF(__pyx_v_new_parser);
     __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_objectify_parser);
-    __Pyx_DECREF(__pyx_v_4lxml_9objectify_objectify_parser);
+    __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_objectify_parser, __pyx_v_new_parser);
     __Pyx_GIVEREF(__pyx_v_new_parser);
-    __pyx_v_4lxml_9objectify_objectify_parser = __pyx_v_new_parser;
     goto __pyx_L3;
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1751
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1748
  *         objectify_parser = new_parser
  *     else:
  *         raise TypeError, u"parser must inherit from lxml.etree.XMLParser"             # <<<<<<<<<<<<<<
@@ -20680,7 +20564,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_28set_default_parser(CYTHON_UNUSED Py
  * def makeparser(**kw):
  */
     __Pyx_Raise(__pyx_builtin_TypeError, ((PyObject *)__pyx_kp_u_46), 0, 0);
-    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1751; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1748; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   }
   __pyx_L3:;
 
@@ -20717,7 +20601,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_31makeparser(PyObject *__pyx_self, Py
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1753
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1750
  *         raise TypeError, u"parser must inherit from lxml.etree.XMLParser"
  * 
  * def makeparser(**kw):             # <<<<<<<<<<<<<<
@@ -20739,73 +20623,73 @@ static PyObject *__pyx_pf_4lxml_9objectify_30makeparser(CYTHON_UNUSED PyObject *
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("makeparser", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1763
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1760
  *     ``remove_blank_text`` boolean keyword option yourself.
  *     """
  *     if 'remove_blank_text' not in kw:             # <<<<<<<<<<<<<<
  *         kw['remove_blank_text'] = True
  *     parser = etree.XMLParser(**kw)
  */
-  __pyx_t_1 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_n_s__remove_blank_text), ((PyObject *)__pyx_v_kw), Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = (__Pyx_PyDict_Contains(((PyObject *)__pyx_n_s__remove_blank_text), ((PyObject *)__pyx_v_kw), Py_NE)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1760; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1764
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1761
  *     """
  *     if 'remove_blank_text' not in kw:
  *         kw['remove_blank_text'] = True             # <<<<<<<<<<<<<<
  *     parser = etree.XMLParser(**kw)
  *     parser.set_element_class_lookup( ObjectifyElementClassLookup() )
  */
-    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    if (PyDict_SetItem(((PyObject *)__pyx_v_kw), ((PyObject *)__pyx_n_s__remove_blank_text), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1764; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyDict_SetItem(((PyObject *)__pyx_v_kw), ((PyObject *)__pyx_n_s__remove_blank_text), __pyx_t_3) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1761; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1765
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1762
  *     if 'remove_blank_text' not in kw:
  *         kw['remove_blank_text'] = True
  *     parser = etree.XMLParser(**kw)             # <<<<<<<<<<<<<<
  *     parser.set_element_class_lookup( ObjectifyElementClassLookup() )
  *     return parser
  */
-  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __pyx_t_4 = ((PyObject *)__pyx_v_kw);
   __Pyx_INCREF(__pyx_t_4);
-  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1765; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_t_3, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1762; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
   __pyx_v_parser = __pyx_t_5;
   __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1766
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1763
  *         kw['remove_blank_text'] = True
  *     parser = etree.XMLParser(**kw)
  *     parser.set_element_class_lookup( ObjectifyElementClassLookup() )             # <<<<<<<<<<<<<<
  *     return parser
  * 
  */
-  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_47); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_parser, __pyx_n_s_47); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
   __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1766; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1763; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1767
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1764
  *     parser = etree.XMLParser(**kw)
  *     parser.set_element_class_lookup( ObjectifyElementClassLookup() )
  *     return parser             # <<<<<<<<<<<<<<
@@ -20832,7 +20716,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_30makeparser(CYTHON_UNUSED PyObject *
   return __pyx_r;
 }
 
-/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1769
+/* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1766
  *     return parser
  * 
  * cdef _Element _makeElement(tag, text, attrib, nsmap):             # <<<<<<<<<<<<<<
@@ -20850,7 +20734,7 @@ static struct LxmlElement *__pyx_f_4lxml_9objectify__makeElement(PyObject *__pyx
   int __pyx_clineno = 0;
   __Pyx_RefNannySetupContext("_makeElement", 0);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1770
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1767
  * 
  * cdef _Element _makeElement(tag, text, attrib, nsmap):
  *     return cetree.makeElement(tag, None, objectify_parser, text, None, attrib, nsmap)             # <<<<<<<<<<<<<<
@@ -20860,7 +20744,7 @@ static struct LxmlElement *__pyx_f_4lxml_9objectify__makeElement(PyObject *__pyx
   __Pyx_XDECREF(((PyObject *)__pyx_r));
   __pyx_t_1 = __pyx_v_4lxml_9objectify_objectify_parser;
   __Pyx_INCREF(__pyx_t_1);
-  __pyx_t_2 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)Py_None), __pyx_t_1, __pyx_v_text, Py_None, __pyx_v_attrib, __pyx_v_nsmap)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1770; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = ((PyObject *)makeElement(__pyx_v_tag, ((struct LxmlDocument *)Py_None), __pyx_t_1, __pyx_v_text, Py_None, __pyx_v_attrib, __pyx_v_nsmap)); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1767; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __pyx_r = ((struct LxmlElement *)__pyx_t_2);
@@ -20898,7 +20782,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_33fromstring(PyObject *__pyx_self, Py
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xml,&__pyx_n_s__parser,&__pyx_n_s__base_url,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1780
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1777
  * SubElement = etree.SubElement
  * 
  * def fromstring(xml, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
@@ -20933,7 +20817,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_33fromstring(PyObject *__pyx_self, Py
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstring") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "fromstring") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -20949,7 +20833,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_33fromstring(PyObject *__pyx_self, Py
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("fromstring", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("fromstring", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.fromstring", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -20974,7 +20858,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_32fromstring(CYTHON_UNUSED PyObject *
   __Pyx_RefNannySetupContext("fromstring", 0);
   __Pyx_INCREF(__pyx_v_parser);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1792
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1789
  *     (DTD, XInclude, ...).
  *     """
  *     if parser is None:             # <<<<<<<<<<<<<<
@@ -20985,7 +20869,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_32fromstring(CYTHON_UNUSED PyObject *
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1793
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1790
  *     """
  *     if parser is None:
  *         parser = objectify_parser             # <<<<<<<<<<<<<<
@@ -20993,13 +20877,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_32fromstring(CYTHON_UNUSED PyObject *
  * 
  */
     __Pyx_INCREF(__pyx_v_4lxml_9objectify_objectify_parser);
-    __Pyx_DECREF(__pyx_v_parser);
-    __pyx_v_parser = __pyx_v_4lxml_9objectify_objectify_parser;
+    __Pyx_DECREF_SET(__pyx_v_parser, __pyx_v_4lxml_9objectify_objectify_parser);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1794
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1791
  *     if parser is None:
  *         parser = objectify_parser
  *     return _fromstring(xml, parser, base_url=base_url)             # <<<<<<<<<<<<<<
@@ -21007,7 +20890,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_32fromstring(CYTHON_UNUSED PyObject *
  * def XML(xml, parser=None, *, base_url=None):
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_xml);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_xml);
@@ -21015,10 +20898,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_32fromstring(CYTHON_UNUSED PyObject *
   __Pyx_INCREF(__pyx_v_parser);
   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
   __Pyx_GIVEREF(__pyx_v_parser);
-  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1794; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1791; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -21059,7 +20942,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_35XML(PyObject *__pyx_self, PyObject
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__xml,&__pyx_n_s__parser,&__pyx_n_s__base_url,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1796
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1793
  *     return _fromstring(xml, parser, base_url=base_url)
  * 
  * def XML(xml, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
@@ -21094,7 +20977,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_35XML(PyObject *__pyx_self, PyObject
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XML") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "XML") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -21110,7 +20993,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_35XML(PyObject *__pyx_self, PyObject
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("XML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("XML", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.XML", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -21135,7 +21018,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_34XML(CYTHON_UNUSED PyObject *__pyx_s
   __Pyx_RefNannySetupContext("XML", 0);
   __Pyx_INCREF(__pyx_v_parser);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1808
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1805
  *     (DTD, XInclude, ...).
  *     """
  *     if parser is None:             # <<<<<<<<<<<<<<
@@ -21146,7 +21029,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_34XML(CYTHON_UNUSED PyObject *__pyx_s
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1809
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1806
  *     """
  *     if parser is None:
  *         parser = objectify_parser             # <<<<<<<<<<<<<<
@@ -21154,13 +21037,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_34XML(CYTHON_UNUSED PyObject *__pyx_s
  * 
  */
     __Pyx_INCREF(__pyx_v_4lxml_9objectify_objectify_parser);
-    __Pyx_DECREF(__pyx_v_parser);
-    __pyx_v_parser = __pyx_v_4lxml_9objectify_objectify_parser;
+    __Pyx_DECREF_SET(__pyx_v_parser, __pyx_v_4lxml_9objectify_objectify_parser);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1810
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1807
  *     if parser is None:
  *         parser = objectify_parser
  *     return _fromstring(xml, parser, base_url=base_url)             # <<<<<<<<<<<<<<
@@ -21168,7 +21050,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_34XML(CYTHON_UNUSED PyObject *__pyx_s
  * cdef object _parse
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_xml);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_xml);
@@ -21176,10 +21058,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_34XML(CYTHON_UNUSED PyObject *__pyx_s
   __Pyx_INCREF(__pyx_v_parser);
   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
   __Pyx_GIVEREF(__pyx_v_parser);
-  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__fromstring, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1807; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -21220,7 +21102,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_37parse(PyObject *__pyx_self, PyObjec
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s__f,&__pyx_n_s__parser,&__pyx_n_s__base_url,0};
     PyObject* values[3] = {0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1815
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1812
  * _parse = etree.parse
  * 
  * def parse(f, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
@@ -21255,7 +21137,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_37parse(PyObject *__pyx_self, PyObjec
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1815; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "parse") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -21271,7 +21153,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_37parse(PyObject *__pyx_self, PyObjec
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1815; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("parse", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_AddTraceback("lxml.objectify.parse", __pyx_clineno, __pyx_lineno, __pyx_filename);
   __Pyx_RefNannyFinishContext();
@@ -21296,7 +21178,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_36parse(CYTHON_UNUSED PyObject *__pyx
   __Pyx_RefNannySetupContext("parse", 0);
   __Pyx_INCREF(__pyx_v_parser);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1826
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1823
  *     up external entities (DTD, XInclude, ...) with relative paths.
  *     """
  *     if parser is None:             # <<<<<<<<<<<<<<
@@ -21307,7 +21189,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_36parse(CYTHON_UNUSED PyObject *__pyx
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1827
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1824
  *     """
  *     if parser is None:
  *         parser = objectify_parser             # <<<<<<<<<<<<<<
@@ -21315,13 +21197,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_36parse(CYTHON_UNUSED PyObject *__pyx
  * 
  */
     __Pyx_INCREF(__pyx_v_4lxml_9objectify_objectify_parser);
-    __Pyx_DECREF(__pyx_v_parser);
-    __pyx_v_parser = __pyx_v_4lxml_9objectify_objectify_parser;
+    __Pyx_DECREF_SET(__pyx_v_parser, __pyx_v_4lxml_9objectify_objectify_parser);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1828
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1825
  *     if parser is None:
  *         parser = objectify_parser
  *     return _parse(f, parser, base_url=base_url)             # <<<<<<<<<<<<<<
@@ -21329,7 +21210,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_36parse(CYTHON_UNUSED PyObject *__pyx
  * cdef dict _DEFAULT_NSMAP = {
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_3);
   __Pyx_INCREF(__pyx_v_f);
   PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_f);
@@ -21337,10 +21218,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_36parse(CYTHON_UNUSED PyObject *__pyx
   __Pyx_INCREF(__pyx_v_parser);
   PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_parser);
   __Pyx_GIVEREF(__pyx_v_parser);
-  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyDict_New(); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_4));
-  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__parse, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1828; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_4, ((PyObject *)__pyx_n_s__base_url), __pyx_v_base_url) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = PyObject_Call(__pyx_v_4lxml_9objectify__parse, ((PyObject *)__pyx_t_3), ((PyObject *)__pyx_t_4)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1825; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -21385,7 +21266,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_39Element(PyObject *__pyx_self, PyObj
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___tag,&__pyx_n_s__attrib,&__pyx_n_s__nsmap,&__pyx_n_s___pytype,0};
     PyObject* values[4] = {0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1838
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1835
  * E = ElementMaker()
  * 
  * def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes):             # <<<<<<<<<<<<<<
@@ -21427,7 +21308,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_39Element(PyObject *__pyx_self, PyObj
         if (value) { values[index] = value; kw_args--; }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__attributes, values, pos_args, "Element") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__attributes, values, pos_args, "Element") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -21445,7 +21326,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_39Element(PyObject *__pyx_self, PyObj
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("Element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("Element", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__attributes); __pyx_v__attributes = 0;
   __Pyx_AddTraceback("lxml.objectify.Element", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -21475,7 +21356,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
   __Pyx_INCREF(__pyx_v__pytype);
   __Pyx_INCREF(__pyx_v__attributes);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1846
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1843
  *     NOTE: requires parser based element class lookup activated in lxml.etree!
  *     """
  *     if attrib is not None:             # <<<<<<<<<<<<<<
@@ -21486,7 +21367,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1847
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1844
  *     """
  *     if attrib is not None:
  *         if python.PyDict_Size(_attributes):             # <<<<<<<<<<<<<<
@@ -21496,40 +21377,39 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
     __pyx_t_2 = (PyDict_Size(__pyx_v__attributes) != 0);
     if (__pyx_t_2) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1848
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1845
  *     if attrib is not None:
  *         if python.PyDict_Size(_attributes):
  *             attrib = dict(attrib)             # <<<<<<<<<<<<<<
  *             attrib.update(_attributes)
  *         _attributes = attrib
  */
-      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_v_attrib);
       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_attrib);
       __Pyx_GIVEREF(__pyx_v_attrib);
-      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1848; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1845; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
-      __Pyx_DECREF(__pyx_v_attrib);
-      __pyx_v_attrib = __pyx_t_4;
+      __Pyx_DECREF_SET(__pyx_v_attrib, __pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1849
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1846
  *         if python.PyDict_Size(_attributes):
  *             attrib = dict(attrib)
  *             attrib.update(_attributes)             # <<<<<<<<<<<<<<
  *         _attributes = attrib
  *     if _pytype is None:
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
       __Pyx_INCREF(__pyx_v__attributes);
       PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v__attributes);
       __Pyx_GIVEREF(__pyx_v__attributes);
-      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1849; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_3), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1846; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_3)); __pyx_t_3 = 0;
@@ -21538,7 +21418,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
     }
     __pyx_L4:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1850
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1847
  *             attrib = dict(attrib)
  *             attrib.update(_attributes)
  *         _attributes = attrib             # <<<<<<<<<<<<<<
@@ -21546,13 +21426,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
  *         _pytype = TREE_PYTYPE_NAME
  */
     __Pyx_INCREF(__pyx_v_attrib);
-    __Pyx_DECREF(__pyx_v__attributes);
-    __pyx_v__attributes = __pyx_v_attrib;
+    __Pyx_DECREF_SET(__pyx_v__attributes, __pyx_v_attrib);
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1851
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1848
  *             attrib.update(_attributes)
  *         _attributes = attrib
  *     if _pytype is None:             # <<<<<<<<<<<<<<
@@ -21563,7 +21442,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
   __pyx_t_1 = (__pyx_t_2 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1852
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1849
  *         _attributes = attrib
  *     if _pytype is None:
  *         _pytype = TREE_PYTYPE_NAME             # <<<<<<<<<<<<<<
@@ -21571,13 +21450,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
  *         nsmap = _DEFAULT_NSMAP
  */
     __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME));
-    __Pyx_DECREF(__pyx_v__pytype);
-    __pyx_v__pytype = ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME);
+    __Pyx_DECREF_SET(__pyx_v__pytype, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME));
     goto __pyx_L5;
   }
   __pyx_L5:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1853
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1850
  *     if _pytype is None:
  *         _pytype = TREE_PYTYPE_NAME
  *     if nsmap is None:             # <<<<<<<<<<<<<<
@@ -21588,7 +21466,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1854
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1851
  *         _pytype = TREE_PYTYPE_NAME
  *     if nsmap is None:
  *         nsmap = _DEFAULT_NSMAP             # <<<<<<<<<<<<<<
@@ -21596,25 +21474,24 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
  *     return _makeElement(_tag, None, _attributes, nsmap)
  */
     __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
-    __Pyx_DECREF(__pyx_v_nsmap);
-    __pyx_v_nsmap = ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
+    __Pyx_DECREF_SET(__pyx_v_nsmap, ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
     goto __pyx_L6;
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1855
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1852
  *     if nsmap is None:
  *         nsmap = _DEFAULT_NSMAP
  *     _attributes[PYTYPE_ATTRIBUTE] = _pytype             # <<<<<<<<<<<<<<
  *     return _makeElement(_tag, None, _attributes, nsmap)
  * 
  */
-  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
-  if (PyObject_SetItem(__pyx_v__attributes, __pyx_t_5, __pyx_v__pytype) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyObject_SetItem(__pyx_v__attributes, __pyx_t_5, __pyx_v__pytype) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1852; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1856
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1853
  *         nsmap = _DEFAULT_NSMAP
  *     _attributes[PYTYPE_ATTRIBUTE] = _pytype
  *     return _makeElement(_tag, None, _attributes, nsmap)             # <<<<<<<<<<<<<<
@@ -21622,7 +21499,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_38Element(CYTHON_UNUSED PyObject *__p
  * def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None,
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_v__tag, Py_None, __pyx_v__attributes, __pyx_v_nsmap)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1856; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_5 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(__pyx_v__tag, Py_None, __pyx_v__attributes, __pyx_v_nsmap)); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1853; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_5);
   __pyx_r = __pyx_t_5;
   __pyx_t_5 = 0;
@@ -21669,7 +21546,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_41DataElement(PyObject *__pyx_self, P
     static PyObject **__pyx_pyargnames[] = {&__pyx_n_s___value,&__pyx_n_s__attrib,&__pyx_n_s__nsmap,&__pyx_n_s___pytype,&__pyx_n_s___xsi,0};
     PyObject* values[5] = {0,0,0,0,0};
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1858
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1855
  *     return _makeElement(_tag, None, _attributes, nsmap)
  * 
  * def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None,             # <<<<<<<<<<<<<<
@@ -21714,7 +21591,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_41DataElement(PyObject *__pyx_self, P
         }
       }
       if (unlikely(kw_args > 0)) {
-        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__attributes, values, pos_args, "DataElement") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, __pyx_v__attributes, values, pos_args, "DataElement") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
       }
     } else {
       switch (PyTuple_GET_SIZE(__pyx_args)) {
@@ -21733,7 +21610,7 @@ static PyObject *__pyx_pw_4lxml_9objectify_41DataElement(PyObject *__pyx_self, P
   }
   goto __pyx_L4_argument_unpacking_done;
   __pyx_L5_argtuple_error:;
-  __Pyx_RaiseArgtupleInvalid("DataElement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __Pyx_RaiseArgtupleInvalid("DataElement", 0, 1, 3, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
   __pyx_L3_error:;
   __Pyx_DECREF(__pyx_v__attributes); __pyx_v__attributes = 0;
   __Pyx_AddTraceback("lxml.objectify.DataElement", __pyx_clineno, __pyx_lineno, __pyx_filename);
@@ -21779,7 +21656,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __Pyx_INCREF(__pyx_v__xsi);
   __Pyx_INCREF(__pyx_v__attributes);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1874
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1871
  *     """
  *     cdef python.PyObject* dict_result
  *     if nsmap is None:             # <<<<<<<<<<<<<<
@@ -21790,7 +21667,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __pyx_t_2 = (__pyx_t_1 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1875
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1872
  *     cdef python.PyObject* dict_result
  *     if nsmap is None:
  *         nsmap = _DEFAULT_NSMAP             # <<<<<<<<<<<<<<
@@ -21798,13 +21675,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         if _attributes:
  */
     __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
-    __Pyx_DECREF(__pyx_v_nsmap);
-    __pyx_v_nsmap = ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP);
+    __Pyx_DECREF_SET(__pyx_v_nsmap, ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
     goto __pyx_L3;
   }
   __pyx_L3:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1876
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1873
  *     if nsmap is None:
  *         nsmap = _DEFAULT_NSMAP
  *     if attrib is not None and attrib:             # <<<<<<<<<<<<<<
@@ -21813,57 +21689,56 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
   __pyx_t_2 = (__pyx_v_attrib != Py_None);
   if (__pyx_t_2) {
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_attrib); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1873; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = __pyx_t_1;
   } else {
     __pyx_t_3 = __pyx_t_2;
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1877
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1874
  *         nsmap = _DEFAULT_NSMAP
  *     if attrib is not None and attrib:
  *         if _attributes:             # <<<<<<<<<<<<<<
  *             attrib = dict(attrib)
  *             attrib.update(_attributes)
  */
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1877; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1874; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1878
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1875
  *     if attrib is not None and attrib:
  *         if _attributes:
  *             attrib = dict(attrib)             # <<<<<<<<<<<<<<
  *             attrib.update(_attributes)
  *         _attributes = attrib
  */
-      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_attrib);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_attrib);
       __Pyx_GIVEREF(__pyx_v_attrib);
-      __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1878; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1875; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-      __Pyx_DECREF(__pyx_v_attrib);
-      __pyx_v_attrib = __pyx_t_5;
+      __Pyx_DECREF_SET(__pyx_v_attrib, __pyx_t_5);
       __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1879
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1876
  *         if _attributes:
  *             attrib = dict(attrib)
  *             attrib.update(_attributes)             # <<<<<<<<<<<<<<
  *         _attributes = attrib
  *     if isinstance(_value, ObjectifiedElement):
  */
-      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_attrib, __pyx_n_s__update); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v__attributes);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v__attributes);
       __Pyx_GIVEREF(__pyx_v__attributes);
-      __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1879; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1876; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
@@ -21872,7 +21747,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     }
     __pyx_L5:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1880
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1877
  *             attrib = dict(attrib)
  *             attrib.update(_attributes)
  *         _attributes = attrib             # <<<<<<<<<<<<<<
@@ -21880,13 +21755,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         if _pytype is None:
  */
     __Pyx_INCREF(__pyx_v_attrib);
-    __Pyx_DECREF(__pyx_v__attributes);
-    __pyx_v__attributes = __pyx_v_attrib;
+    __Pyx_DECREF_SET(__pyx_v__attributes, __pyx_v_attrib);
     goto __pyx_L4;
   }
   __pyx_L4:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1881
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1878
  *             attrib.update(_attributes)
  *         _attributes = attrib
  *     if isinstance(_value, ObjectifiedElement):             # <<<<<<<<<<<<<<
@@ -21897,7 +21771,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __pyx_t_2 = (__pyx_t_3 != 0);
   if (__pyx_t_2) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1882
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1879
  *         _attributes = attrib
  *     if isinstance(_value, ObjectifiedElement):
  *         if _pytype is None:             # <<<<<<<<<<<<<<
@@ -21908,7 +21782,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     __pyx_t_3 = (__pyx_t_2 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1883
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1880
  *     if isinstance(_value, ObjectifiedElement):
  *         if _pytype is None:
  *             if _xsi is None and not _attributes and nsmap is _DEFAULT_NSMAP:             # <<<<<<<<<<<<<<
@@ -21917,7 +21791,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
       __pyx_t_3 = (__pyx_v__xsi == Py_None);
       if ((__pyx_t_3 != 0)) {
-        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1883; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v__attributes); if (unlikely(__pyx_t_2 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1880; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_1 = ((!__pyx_t_2) != 0);
         if (__pyx_t_1) {
           __pyx_t_2 = (__pyx_v_nsmap == ((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
@@ -21931,7 +21805,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       }
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1885
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1882
  *             if _xsi is None and not _attributes and nsmap is _DEFAULT_NSMAP:
  *                 # special case: no change!
  *                 return _value.__copy__()             # <<<<<<<<<<<<<<
@@ -21939,9 +21813,9 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         # reuse existing nsmap unless redefined in nsmap parameter
  */
         __Pyx_XDECREF(__pyx_r);
-        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s____copy__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s____copy__); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
-        __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1882; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         __pyx_r = __pyx_t_4;
@@ -21957,7 +21831,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   }
   __pyx_L6:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1886
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1883
  *                 # special case: no change!
  *                 return _value.__copy__()
  *     if isinstance(_value, ObjectifiedDataElement):             # <<<<<<<<<<<<<<
@@ -21968,19 +21842,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __pyx_t_3 = (__pyx_t_1 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1888
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1885
  *     if isinstance(_value, ObjectifiedDataElement):
  *         # reuse existing nsmap unless redefined in nsmap parameter
  *         temp = _value.nsmap             # <<<<<<<<<<<<<<
  *         if temp is not None and temp:
  *             temp = dict(temp)
  */
-    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s__nsmap); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s__nsmap); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1885; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __pyx_v_temp = __pyx_t_4;
     __pyx_t_4 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1889
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1886
  *         # reuse existing nsmap unless redefined in nsmap parameter
  *         temp = _value.nsmap
  *         if temp is not None and temp:             # <<<<<<<<<<<<<<
@@ -21989,53 +21863,52 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
     __pyx_t_3 = (__pyx_v_temp != Py_None);
     if (__pyx_t_3) {
-      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1889; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1886; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_7 = __pyx_t_1;
     } else {
       __pyx_t_7 = __pyx_t_3;
     }
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1890
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1887
  *         temp = _value.nsmap
  *         if temp is not None and temp:
  *             temp = dict(temp)             # <<<<<<<<<<<<<<
  *             temp.update(nsmap)
  *             nsmap = temp
  */
-      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_temp);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_temp);
       __Pyx_GIVEREF(__pyx_v_temp);
-      __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1890; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1887; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-      __Pyx_DECREF(__pyx_v_temp);
-      __pyx_v_temp = __pyx_t_6;
+      __Pyx_DECREF_SET(__pyx_v_temp, __pyx_t_6);
       __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1891
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1888
  *         if temp is not None and temp:
  *             temp = dict(temp)
  *             temp.update(nsmap)             # <<<<<<<<<<<<<<
  *             nsmap = temp
  *         # reuse existing attributes unless redefined in attrib/_attributes
  */
-      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s__update); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s__update); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_nsmap);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_nsmap);
       __Pyx_GIVEREF(__pyx_v_nsmap);
-      __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1892
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1889
  *             temp = dict(temp)
  *             temp.update(nsmap)
  *             nsmap = temp             # <<<<<<<<<<<<<<
@@ -22043,26 +21916,24 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         temp = _value.attrib
  */
       __Pyx_INCREF(__pyx_v_temp);
-      __Pyx_DECREF(__pyx_v_nsmap);
-      __pyx_v_nsmap = __pyx_v_temp;
+      __Pyx_DECREF_SET(__pyx_v_nsmap, __pyx_v_temp);
       goto __pyx_L10;
     }
     __pyx_L10:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1894
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1891
  *             nsmap = temp
  *         # reuse existing attributes unless redefined in attrib/_attributes
  *         temp = _value.attrib             # <<<<<<<<<<<<<<
  *         if temp is not None and temp:
  *             temp = dict(temp)
  */
-    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s__attrib); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v__value, __pyx_n_s__attrib); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
-    __Pyx_DECREF(__pyx_v_temp);
-    __pyx_v_temp = __pyx_t_5;
+    __Pyx_DECREF_SET(__pyx_v_temp, __pyx_t_5);
     __pyx_t_5 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1895
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1892
  *         # reuse existing attributes unless redefined in attrib/_attributes
  *         temp = _value.attrib
  *         if temp is not None and temp:             # <<<<<<<<<<<<<<
@@ -22071,53 +21942,52 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
     __pyx_t_7 = (__pyx_v_temp != Py_None);
     if (__pyx_t_7) {
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1895; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_temp); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1892; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_t_1 = __pyx_t_3;
     } else {
       __pyx_t_1 = __pyx_t_7;
     }
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1896
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1893
  *         temp = _value.attrib
  *         if temp is not None and temp:
  *             temp = dict(temp)             # <<<<<<<<<<<<<<
  *             temp.update(_attributes)
  *             _attributes = temp
  */
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_v_temp);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_temp);
       __Pyx_GIVEREF(__pyx_v_temp);
-      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1896; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(((PyObject *)((PyObject*)(&PyDict_Type))), ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1893; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
-      __Pyx_DECREF(__pyx_v_temp);
-      __pyx_v_temp = __pyx_t_4;
+      __Pyx_DECREF_SET(__pyx_v_temp, __pyx_t_4);
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1897
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1894
  *         if temp is not None and temp:
  *             temp = dict(temp)
  *             temp.update(_attributes)             # <<<<<<<<<<<<<<
  *             _attributes = temp
  *         # reuse existing xsi:type or py:pytype attributes, unless provided as
  */
-      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_temp, __pyx_n_s__update); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
-      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyTuple_New(1); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_INCREF(__pyx_v__attributes);
       PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v__attributes);
       __Pyx_GIVEREF(__pyx_v__attributes);
-      __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1897; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_5), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1894; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1898
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1895
  *             temp = dict(temp)
  *             temp.update(_attributes)
  *             _attributes = temp             # <<<<<<<<<<<<<<
@@ -22125,13 +21995,12 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         # arguments
  */
       __Pyx_INCREF(__pyx_v_temp);
-      __Pyx_DECREF(__pyx_v__attributes);
-      __pyx_v__attributes = __pyx_v_temp;
+      __Pyx_DECREF_SET(__pyx_v__attributes, __pyx_v_temp);
       goto __pyx_L11;
     }
     __pyx_L11:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1901
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1898
  *         # reuse existing xsi:type or py:pytype attributes, unless provided as
  *         # arguments
  *         if _xsi is None and _pytype is None:             # <<<<<<<<<<<<<<
@@ -22147,7 +22016,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     }
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1903
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1900
  *         if _xsi is None and _pytype is None:
  *             dict_result = python.PyDict_GetItem(_attributes,
  *                                                 XML_SCHEMA_INSTANCE_TYPE_ATTR)             # <<<<<<<<<<<<<<
@@ -22159,7 +22028,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_v_dict_result = PyDict_GetItem(__pyx_v__attributes, __pyx_t_6);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1904
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1901
  *             dict_result = python.PyDict_GetItem(_attributes,
  *                                                 XML_SCHEMA_INSTANCE_TYPE_ATTR)
  *             if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -22169,7 +22038,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_t_3 = ((__pyx_v_dict_result != NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1905
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1902
  *                                                 XML_SCHEMA_INSTANCE_TYPE_ATTR)
  *             if dict_result is not NULL:
  *                 _xsi = <object>dict_result             # <<<<<<<<<<<<<<
@@ -22177,25 +22046,24 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             if dict_result is not NULL:
  */
         __Pyx_INCREF(((PyObject *)__pyx_v_dict_result));
-        __Pyx_DECREF(__pyx_v__xsi);
-        __pyx_v__xsi = ((PyObject *)__pyx_v_dict_result);
+        __Pyx_DECREF_SET(__pyx_v__xsi, ((PyObject *)__pyx_v_dict_result));
         goto __pyx_L13;
       }
       __pyx_L13:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1906
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1903
  *             if dict_result is not NULL:
  *                 _xsi = <object>dict_result
  *             dict_result = python.PyDict_GetItem(_attributes, PYTYPE_ATTRIBUTE)             # <<<<<<<<<<<<<<
  *             if dict_result is not NULL:
  *                 _pytype = <object>dict_result
  */
-      __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1906; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1903; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __pyx_v_dict_result = PyDict_GetItem(__pyx_v__attributes, __pyx_t_6);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1907
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1904
  *                 _xsi = <object>dict_result
  *             dict_result = python.PyDict_GetItem(_attributes, PYTYPE_ATTRIBUTE)
  *             if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -22205,7 +22073,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_t_3 = ((__pyx_v_dict_result != NULL) != 0);
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1908
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1905
  *             dict_result = python.PyDict_GetItem(_attributes, PYTYPE_ATTRIBUTE)
  *             if dict_result is not NULL:
  *                 _pytype = <object>dict_result             # <<<<<<<<<<<<<<
@@ -22213,8 +22081,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *     if _xsi is not None:
  */
         __Pyx_INCREF(((PyObject *)__pyx_v_dict_result));
-        __Pyx_DECREF(__pyx_v__pytype);
-        __pyx_v__pytype = ((PyObject *)__pyx_v_dict_result);
+        __Pyx_DECREF_SET(__pyx_v__pytype, ((PyObject *)__pyx_v_dict_result));
         goto __pyx_L14;
       }
       __pyx_L14:;
@@ -22225,7 +22092,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   }
   __pyx_L9:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1910
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1907
  *                 _pytype = <object>dict_result
  * 
  *     if _xsi is not None:             # <<<<<<<<<<<<<<
@@ -22236,27 +22103,27 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __pyx_t_1 = (__pyx_t_3 != 0);
   if (__pyx_t_1) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1911
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1908
  * 
  *     if _xsi is not None:
  *         if u':' in _xsi:             # <<<<<<<<<<<<<<
  *             prefix, name = _xsi.split(u':', 1)
  *             ns = nsmap.get(prefix)
  */
-    __pyx_t_1 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_36), __pyx_v__xsi, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = (__Pyx_PySequence_Contains(((PyObject *)__pyx_kp_u_36), __pyx_v__xsi, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1908; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __pyx_t_3 = (__pyx_t_1 != 0);
     if (__pyx_t_3) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1912
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1909
  *     if _xsi is not None:
  *         if u':' in _xsi:
  *             prefix, name = _xsi.split(u':', 1)             # <<<<<<<<<<<<<<
  *             ns = nsmap.get(prefix)
  *             if ns != XML_SCHEMA_NS:
  */
-      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__xsi, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v__xsi, __pyx_n_s__split); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_48), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_k_tuple_48), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
@@ -22269,7 +22136,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
         if (unlikely(size != 2)) {
           if (size > 2) __Pyx_RaiseTooManyValuesError(2);
           else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         }
         #if CYTHON_COMPILING_IN_CPYTHON
         if (likely(PyTuple_CheckExact(sequence))) {
@@ -22282,16 +22149,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
         __Pyx_INCREF(__pyx_t_6);
         __Pyx_INCREF(__pyx_t_4);
         #else
-        __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
-        __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_4);
         #endif
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       } else
       {
         Py_ssize_t index = -1;
-        __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_8);
         __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
         __pyx_t_9 = Py_TYPE(__pyx_t_8)->tp_iternext;
@@ -22299,7 +22166,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
         __Pyx_GOTREF(__pyx_t_6);
         index = 1; __pyx_t_4 = __pyx_t_9(__pyx_t_8); if (unlikely(!__pyx_t_4)) goto __pyx_L17_unpacking_failed;
         __Pyx_GOTREF(__pyx_t_4);
-        if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_8), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_t_9 = NULL;
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         goto __pyx_L18_unpacking_done;
@@ -22307,7 +22174,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
         __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
         __pyx_t_9 = NULL;
         if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L18_unpacking_done:;
       }
       __pyx_v_prefix = __pyx_t_6;
@@ -22315,40 +22182,40 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_v_name = __pyx_t_4;
       __pyx_t_4 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1913
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1910
  *         if u':' in _xsi:
  *             prefix, name = _xsi.split(u':', 1)
  *             ns = nsmap.get(prefix)             # <<<<<<<<<<<<<<
  *             if ns != XML_SCHEMA_NS:
  *                 raise ValueError, u"XSD types require the XSD namespace"
  */
-      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__get); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_5);
-      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_INCREF(__pyx_v_prefix);
       PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_prefix);
       __Pyx_GIVEREF(__pyx_v_prefix);
-      __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1913; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_Call(__pyx_t_5, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1910; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
       __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
       __pyx_v_ns = __pyx_t_6;
       __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1914
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1911
  *             prefix, name = _xsi.split(u':', 1)
  *             ns = nsmap.get(prefix)
  *             if ns != XML_SCHEMA_NS:             # <<<<<<<<<<<<<<
  *                 raise ValueError, u"XSD types require the XSD namespace"
  *         elif nsmap is _DEFAULT_NSMAP:
  */
-      __pyx_t_6 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1914; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1911; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       if (__pyx_t_3) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1915
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1912
  *             ns = nsmap.get(prefix)
  *             if ns != XML_SCHEMA_NS:
  *                 raise ValueError, u"XSD types require the XSD namespace"             # <<<<<<<<<<<<<<
@@ -22356,14 +22223,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *             name = _xsi
  */
         __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_49), 0, 0);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         goto __pyx_L19;
       }
       __pyx_L19:;
       goto __pyx_L16;
     }
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1916
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1913
  *             if ns != XML_SCHEMA_NS:
  *                 raise ValueError, u"XSD types require the XSD namespace"
  *         elif nsmap is _DEFAULT_NSMAP:             # <<<<<<<<<<<<<<
@@ -22374,7 +22241,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     __pyx_t_1 = (__pyx_t_3 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1917
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1914
  *                 raise ValueError, u"XSD types require the XSD namespace"
  *         elif nsmap is _DEFAULT_NSMAP:
  *             name = _xsi             # <<<<<<<<<<<<<<
@@ -22384,23 +22251,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __Pyx_INCREF(__pyx_v__xsi);
       __pyx_v_name = __pyx_v__xsi;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1918
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1915
  *         elif nsmap is _DEFAULT_NSMAP:
  *             name = _xsi
  *             _xsi = u'xsd:' + _xsi             # <<<<<<<<<<<<<<
  *         else:
  *             name = _xsi
  */
-      __pyx_t_6 = PyNumber_Add(((PyObject *)__pyx_kp_u_50), __pyx_v__xsi); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = PyNumber_Add(((PyObject *)__pyx_kp_u_50), __pyx_v__xsi); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1915; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __Pyx_DECREF(__pyx_v__xsi);
-      __pyx_v__xsi = __pyx_t_6;
+      __Pyx_DECREF_SET(__pyx_v__xsi, __pyx_t_6);
       __pyx_t_6 = 0;
       goto __pyx_L16;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1920
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1917
  *             _xsi = u'xsd:' + _xsi
  *         else:
  *             name = _xsi             # <<<<<<<<<<<<<<
@@ -22410,23 +22276,23 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __Pyx_INCREF(__pyx_v__xsi);
       __pyx_v_name = __pyx_v__xsi;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1921
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1918
  *         else:
  *             name = _xsi
  *             for prefix, ns in nsmap.items():             # <<<<<<<<<<<<<<
  *                 if ns == XML_SCHEMA_NS:
  *                     if prefix is not None and prefix:
  */
-      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_nsmap, __pyx_n_s__items); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_6);
-      __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_4 = PyObject_Call(__pyx_t_6, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_4);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
       if (PyList_CheckExact(__pyx_t_4) || PyTuple_CheckExact(__pyx_t_4)) {
         __pyx_t_6 = __pyx_t_4; __Pyx_INCREF(__pyx_t_6); __pyx_t_10 = 0;
         __pyx_t_11 = NULL;
       } else {
-        __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_10 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
         __pyx_t_11 = Py_TYPE(__pyx_t_6)->tp_iternext;
       }
@@ -22435,23 +22301,23 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
         if (!__pyx_t_11 && PyList_CheckExact(__pyx_t_6)) {
           if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_6)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
         } else if (!__pyx_t_11 && PyTuple_CheckExact(__pyx_t_6)) {
           if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
           #if CYTHON_COMPILING_IN_CPYTHON
-          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #else
-          __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           #endif
         } else {
           __pyx_t_4 = __pyx_t_11(__pyx_t_6);
           if (unlikely(!__pyx_t_4)) {
             if (PyErr_Occurred()) {
               if (likely(PyErr_ExceptionMatches(PyExc_StopIteration))) PyErr_Clear();
-              else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+              else {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             }
             break;
           }
@@ -22467,7 +22333,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
           if (unlikely(size != 2)) {
             if (size > 2) __Pyx_RaiseTooManyValuesError(2);
             else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
-            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           }
           #if CYTHON_COMPILING_IN_CPYTHON
           if (likely(PyTuple_CheckExact(sequence))) {
@@ -22480,16 +22346,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
           __Pyx_INCREF(__pyx_t_5);
           __Pyx_INCREF(__pyx_t_8);
           #else
-          __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_5);
-          __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_8);
           #endif
           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
         } else
         {
           Py_ssize_t index = -1;
-          __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_12);
           __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
           __pyx_t_9 = Py_TYPE(__pyx_t_12)->tp_iternext;
@@ -22497,7 +22363,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
           __Pyx_GOTREF(__pyx_t_5);
           index = 1; __pyx_t_8 = __pyx_t_9(__pyx_t_12); if (unlikely(!__pyx_t_8)) goto __pyx_L22_unpacking_failed;
           __Pyx_GOTREF(__pyx_t_8);
-          if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_12), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          if (__Pyx_IternextUnpackEndCheck(__pyx_t_9(__pyx_t_12), 2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_t_9 = NULL;
           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
           goto __pyx_L23_unpacking_done;
@@ -22505,29 +22371,27 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
           __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
           __pyx_t_9 = NULL;
           if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
-          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1918; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __pyx_L23_unpacking_done:;
         }
-        __Pyx_XDECREF(__pyx_v_prefix);
-        __pyx_v_prefix = __pyx_t_5;
+        __Pyx_XDECREF_SET(__pyx_v_prefix, __pyx_t_5);
         __pyx_t_5 = 0;
-        __Pyx_XDECREF(__pyx_v_ns);
-        __pyx_v_ns = __pyx_t_8;
+        __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_8);
         __pyx_t_8 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1922
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1919
  *             name = _xsi
  *             for prefix, ns in nsmap.items():
  *                 if ns == XML_SCHEMA_NS:             # <<<<<<<<<<<<<<
  *                     if prefix is not None and prefix:
  *                         _xsi = prefix + u':' + _xsi
  */
-        __pyx_t_4 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1922; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_4 = PyObject_RichCompare(__pyx_v_ns, __pyx_v_4lxml_9objectify_XML_SCHEMA_NS, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1919; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
         if (__pyx_t_1) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1923
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1920
  *             for prefix, ns in nsmap.items():
  *                 if ns == XML_SCHEMA_NS:
  *                     if prefix is not None and prefix:             # <<<<<<<<<<<<<<
@@ -22536,33 +22400,32 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
           __pyx_t_1 = (__pyx_v_prefix != Py_None);
           if (__pyx_t_1) {
-            __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1923; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v_prefix); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1920; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __pyx_t_7 = __pyx_t_3;
           } else {
             __pyx_t_7 = __pyx_t_1;
           }
           if (__pyx_t_7) {
 
-            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1924
+            /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1921
  *                 if ns == XML_SCHEMA_NS:
  *                     if prefix is not None and prefix:
  *                         _xsi = prefix + u':' + _xsi             # <<<<<<<<<<<<<<
  *                     break
  *             else:
  */
-            __pyx_t_4 = PyNumber_Add(__pyx_v_prefix, ((PyObject *)__pyx_kp_u_36)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_4 = PyNumber_Add(__pyx_v_prefix, ((PyObject *)__pyx_kp_u_36)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_4);
-            __pyx_t_8 = PyNumber_Add(__pyx_t_4, __pyx_v__xsi); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+            __pyx_t_8 = PyNumber_Add(__pyx_t_4, __pyx_v__xsi); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1921; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
             __Pyx_GOTREF(__pyx_t_8);
             __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-            __Pyx_DECREF(__pyx_v__xsi);
-            __pyx_v__xsi = __pyx_t_8;
+            __Pyx_DECREF_SET(__pyx_v__xsi, __pyx_t_8);
             __pyx_t_8 = 0;
             goto __pyx_L25;
           }
           __pyx_L25:;
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1925
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1922
  *                     if prefix is not None and prefix:
  *                         _xsi = prefix + u':' + _xsi
  *                     break             # <<<<<<<<<<<<<<
@@ -22576,7 +22439,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       }
       /*else*/ {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1927
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1924
  *                     break
  *             else:
  *                 raise ValueError, u"XSD types require the XSD namespace"             # <<<<<<<<<<<<<<
@@ -22584,23 +22447,23 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         if _pytype is None:
  */
         __Pyx_Raise(__pyx_builtin_ValueError, ((PyObject *)__pyx_kp_u_49), 0, 0);
-        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1927; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1924; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       }
       __pyx_L21_break:;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     }
     __pyx_L16:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1928
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1925
  *             else:
  *                 raise ValueError, u"XSD types require the XSD namespace"
  *         _attributes[XML_SCHEMA_INSTANCE_TYPE_ATTR] = _xsi             # <<<<<<<<<<<<<<
  *         if _pytype is None:
  *             # allow using unregistered or even wrong xsi:type names
  */
-    if (PyObject_SetItem(__pyx_v__attributes, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR, __pyx_v__xsi) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1928; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    if (PyObject_SetItem(__pyx_v__attributes, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR, __pyx_v__xsi) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1925; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1929
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1926
  *                 raise ValueError, u"XSD types require the XSD namespace"
  *         _attributes[XML_SCHEMA_INSTANCE_TYPE_ATTR] = _xsi
  *         if _pytype is None:             # <<<<<<<<<<<<<<
@@ -22611,7 +22474,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     __pyx_t_1 = (__pyx_t_7 != 0);
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1931
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1928
  *         if _pytype is None:
  *             # allow using unregistered or even wrong xsi:type names
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, _xsi)             # <<<<<<<<<<<<<<
@@ -22623,7 +22486,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_v_dict_result = PyDict_GetItem(__pyx_t_6, __pyx_v__xsi);
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1932
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1929
  *             # allow using unregistered or even wrong xsi:type names
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, _xsi)
  *             if dict_result is NULL:             # <<<<<<<<<<<<<<
@@ -22633,7 +22496,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_t_1 = ((__pyx_v_dict_result == NULL) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1933
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1930
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, _xsi)
  *             if dict_result is NULL:
  *                 dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, name)             # <<<<<<<<<<<<<<
@@ -22648,7 +22511,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       }
       __pyx_L28:;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1934
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1931
  *             if dict_result is NULL:
  *                 dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, name)
  *             if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -22658,7 +22521,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_t_1 = ((__pyx_v_dict_result != NULL) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1935
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1932
  *                 dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, name)
  *             if dict_result is not NULL:
  *                 _pytype = (<PyType>dict_result).name             # <<<<<<<<<<<<<<
@@ -22667,8 +22530,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
         __pyx_t_6 = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_dict_result)->name;
         __Pyx_INCREF(__pyx_t_6);
-        __Pyx_DECREF(__pyx_v__pytype);
-        __pyx_v__pytype = __pyx_t_6;
+        __Pyx_DECREF_SET(__pyx_v__pytype, __pyx_t_6);
         __pyx_t_6 = 0;
         goto __pyx_L29;
       }
@@ -22680,7 +22542,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   }
   __pyx_L15:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1937
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1934
  *                 _pytype = (<PyType>dict_result).name
  * 
  *     if _pytype is None:             # <<<<<<<<<<<<<<
@@ -22691,23 +22553,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __pyx_t_7 = (__pyx_t_1 != 0);
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1938
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1935
  * 
  *     if _pytype is None:
  *         _pytype = _pytypename(_value)             # <<<<<<<<<<<<<<
  * 
  *     if _value is None and _pytype != u"str":
  */
-    __pyx_t_6 = __pyx_f_4lxml_9objectify__pytypename(__pyx_v__value); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = __pyx_f_4lxml_9objectify__pytypename(__pyx_v__value); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1935; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
-    __Pyx_DECREF(__pyx_v__pytype);
-    __pyx_v__pytype = __pyx_t_6;
+    __Pyx_DECREF_SET(__pyx_v__pytype, __pyx_t_6);
     __pyx_t_6 = 0;
     goto __pyx_L30;
   }
   __pyx_L30:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1940
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1937
  *         _pytype = _pytypename(_value)
  * 
  *     if _value is None and _pytype != u"str":             # <<<<<<<<<<<<<<
@@ -22716,8 +22577,8 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
   __pyx_t_7 = (__pyx_v__value == Py_None);
   if (__pyx_t_7) {
-    __pyx_t_6 = PyObject_RichCompare(__pyx_v__pytype, ((PyObject *)__pyx_n_u__str), Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1940; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyObject_RichCompare(__pyx_v__pytype, ((PyObject *)__pyx_n_u__str), Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1937; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
     __pyx_t_3 = __pyx_t_1;
   } else {
@@ -22725,14 +22586,14 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   }
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1941
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1938
  * 
  *     if _value is None and _pytype != u"str":
  *         _pytype = _pytype or u"NoneType"             # <<<<<<<<<<<<<<
  *         strval = None
  *     elif python._isString(_value):
  */
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__pytype); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1941; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_v__pytype); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1938; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (!__pyx_t_3) {
       __Pyx_INCREF(((PyObject *)__pyx_n_u__NoneType));
       __pyx_t_6 = __pyx_n_u__NoneType;
@@ -22740,11 +22601,10 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __Pyx_INCREF(__pyx_v__pytype);
       __pyx_t_6 = __pyx_v__pytype;
     }
-    __Pyx_DECREF(__pyx_v__pytype);
-    __pyx_v__pytype = __pyx_t_6;
+    __Pyx_DECREF_SET(__pyx_v__pytype, __pyx_t_6);
     __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1942
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1939
  *     if _value is None and _pytype != u"str":
  *         _pytype = _pytype or u"NoneType"
  *         strval = None             # <<<<<<<<<<<<<<
@@ -22756,7 +22616,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     goto __pyx_L31;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1943
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1940
  *         _pytype = _pytype or u"NoneType"
  *         strval = None
  *     elif python._isString(_value):             # <<<<<<<<<<<<<<
@@ -22766,7 +22626,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __pyx_t_3 = (_isString(__pyx_v__value) != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1944
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1941
  *         strval = None
  *     elif python._isString(_value):
  *         strval = _value             # <<<<<<<<<<<<<<
@@ -22778,7 +22638,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     goto __pyx_L31;
   }
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1945
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1942
  *     elif python._isString(_value):
  *         strval = _value
  *     elif isinstance(_value, bool):             # <<<<<<<<<<<<<<
@@ -22787,22 +22647,22 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
   __pyx_t_6 = ((PyObject*)&PyBool_Type);
   __Pyx_INCREF(__pyx_t_6);
-  __pyx_t_3 = PyObject_IsInstance(__pyx_v__value, __pyx_t_6); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1945; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_3 = PyObject_IsInstance(__pyx_v__value, __pyx_t_6); if (unlikely(__pyx_t_3 == -1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1942; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
   __pyx_t_7 = (__pyx_t_3 != 0);
   if (__pyx_t_7) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1946
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1943
  *         strval = _value
  *     elif isinstance(_value, bool):
  *         if _value:             # <<<<<<<<<<<<<<
  *             strval = u"true"
  *         else:
  */
-    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v__value); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1946; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v__value); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1943; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1947
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1944
  *     elif isinstance(_value, bool):
  *         if _value:
  *             strval = u"true"             # <<<<<<<<<<<<<<
@@ -22815,7 +22675,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1949
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1946
  *             strval = u"true"
  *         else:
  *             strval = u"false"             # <<<<<<<<<<<<<<
@@ -22830,7 +22690,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   }
   /*else*/ {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1951
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1948
  *             strval = u"false"
  *     else:
  *         stringify = unicode             # <<<<<<<<<<<<<<
@@ -22840,7 +22700,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     __Pyx_INCREF(((PyObject *)((PyObject*)(&PyUnicode_Type))));
     __pyx_v_stringify = ((PyObject *)((PyObject*)(&PyUnicode_Type)));
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1952
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1949
  *     else:
  *         stringify = unicode
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, _pytype)             # <<<<<<<<<<<<<<
@@ -22852,7 +22712,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     __pyx_v_dict_result = PyDict_GetItem(__pyx_t_6, __pyx_v__pytype);
     __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1953
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1950
  *         stringify = unicode
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, _pytype)
  *         if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -22862,7 +22722,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     __pyx_t_7 = ((__pyx_v_dict_result != NULL) != 0);
     if (__pyx_t_7) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1954
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1951
  *         dict_result = python.PyDict_GetItem(_PYTYPE_DICT, _pytype)
  *         if dict_result is not NULL:
  *             stringify = (<PyType>dict_result).stringify             # <<<<<<<<<<<<<<
@@ -22871,26 +22731,25 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  */
       __pyx_t_6 = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_v_dict_result)->stringify;
       __Pyx_INCREF(__pyx_t_6);
-      __Pyx_DECREF(__pyx_v_stringify);
-      __pyx_v_stringify = __pyx_t_6;
+      __Pyx_DECREF_SET(__pyx_v_stringify, __pyx_t_6);
       __pyx_t_6 = 0;
       goto __pyx_L33;
     }
     __pyx_L33:;
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1955
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1952
  *         if dict_result is not NULL:
  *             stringify = (<PyType>dict_result).stringify
  *         strval = stringify(_value)             # <<<<<<<<<<<<<<
  * 
  *     if _pytype is not None:
  */
-    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_6);
     __Pyx_INCREF(__pyx_v__value);
     PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_v__value);
     __Pyx_GIVEREF(__pyx_v__value);
-    __pyx_t_8 = PyObject_Call(__pyx_v_stringify, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PyObject_Call(__pyx_v_stringify, ((PyObject *)__pyx_t_6), NULL); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1952; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_8);
     __Pyx_DECREF(((PyObject *)__pyx_t_6)); __pyx_t_6 = 0;
     __pyx_v_strval = __pyx_t_8;
@@ -22898,7 +22757,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   }
   __pyx_L31:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1957
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1954
  *         strval = stringify(_value)
  * 
  *     if _pytype is not None:             # <<<<<<<<<<<<<<
@@ -22909,19 +22768,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   __pyx_t_3 = (__pyx_t_7 != 0);
   if (__pyx_t_3) {
 
-    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1958
+    /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1955
  * 
  *     if _pytype is not None:
  *         if _pytype == u"NoneType" or _pytype == u"none":             # <<<<<<<<<<<<<<
  *             strval = None
  *             _attributes[XML_SCHEMA_INSTANCE_NIL_ATTR] = u"true"
  */
-    __pyx_t_8 = PyObject_RichCompare(__pyx_v__pytype, ((PyObject *)__pyx_n_u__NoneType), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_8 = PyObject_RichCompare(__pyx_v__pytype, ((PyObject *)__pyx_n_u__NoneType), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
     if (!__pyx_t_3) {
-      __pyx_t_8 = PyObject_RichCompare(__pyx_v__pytype, ((PyObject *)__pyx_n_u__none), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1958; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_8 = PyObject_RichCompare(__pyx_v__pytype, ((PyObject *)__pyx_n_u__none), Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1955; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
       __pyx_t_1 = __pyx_t_7;
     } else {
@@ -22929,7 +22788,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
     }
     if (__pyx_t_1) {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1959
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1956
  *     if _pytype is not None:
  *         if _pytype == u"NoneType" or _pytype == u"none":
  *             strval = None             # <<<<<<<<<<<<<<
@@ -22937,22 +22796,21 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  *         else:
  */
       __Pyx_INCREF(Py_None);
-      __Pyx_DECREF(__pyx_v_strval);
-      __pyx_v_strval = Py_None;
+      __Pyx_DECREF_SET(__pyx_v_strval, Py_None);
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1960
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1957
  *         if _pytype == u"NoneType" or _pytype == u"none":
  *             strval = None
  *             _attributes[XML_SCHEMA_INSTANCE_NIL_ATTR] = u"true"             # <<<<<<<<<<<<<<
  *         else:
  *             # check if type information from arguments is valid
  */
-      if (PyObject_SetItem(__pyx_v__attributes, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR, ((PyObject *)__pyx_n_u__true)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+      if (PyObject_SetItem(__pyx_v__attributes, __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR, ((PyObject *)__pyx_n_u__true)) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       goto __pyx_L35;
     }
     /*else*/ {
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1963
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1960
  *         else:
  *             # check if type information from arguments is valid
  *             dict_result = python.PyDict_GetItem(_PYTYPE_DICT, _pytype)             # <<<<<<<<<<<<<<
@@ -22964,7 +22822,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_v_dict_result = PyDict_GetItem(__pyx_t_8, __pyx_v__pytype);
       __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 
-      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1964
+      /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1961
  *             # check if type information from arguments is valid
  *             dict_result = python.PyDict_GetItem(_PYTYPE_DICT, _pytype)
  *             if dict_result is not NULL:             # <<<<<<<<<<<<<<
@@ -22974,7 +22832,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
       __pyx_t_1 = ((__pyx_v_dict_result != NULL) != 0);
       if (__pyx_t_1) {
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1965
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1962
  *             dict_result = python.PyDict_GetItem(_PYTYPE_DICT, _pytype)
  *             if dict_result is not NULL:
  *                 type_check = (<PyType>dict_result).type_check             # <<<<<<<<<<<<<<
@@ -22986,7 +22844,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
         __pyx_v_type_check = __pyx_t_8;
         __pyx_t_8 = 0;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1966
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1963
  *             if dict_result is not NULL:
  *                 type_check = (<PyType>dict_result).type_check
  *                 if type_check is not None:             # <<<<<<<<<<<<<<
@@ -22997,19 +22855,19 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
         __pyx_t_3 = (__pyx_t_1 != 0);
         if (__pyx_t_3) {
 
-          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1967
+          /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1964
  *                 type_check = (<PyType>dict_result).type_check
  *                 if type_check is not None:
  *                     type_check(strval)             # <<<<<<<<<<<<<<
  * 
  *                 _attributes[PYTYPE_ATTRIBUTE] = _pytype
  */
-          __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_8);
           __Pyx_INCREF(__pyx_v_strval);
           PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_strval);
           __Pyx_GIVEREF(__pyx_v_strval);
-          __pyx_t_6 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1967; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+          __pyx_t_6 = PyObject_Call(__pyx_v_type_check, ((PyObject *)__pyx_t_8), NULL); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1964; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
           __Pyx_GOTREF(__pyx_t_6);
           __Pyx_DECREF(((PyObject *)__pyx_t_8)); __pyx_t_8 = 0;
           __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
@@ -23017,16 +22875,16 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
         }
         __pyx_L37:;
 
-        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1969
+        /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1966
  *                     type_check(strval)
  * 
  *                 _attributes[PYTYPE_ATTRIBUTE] = _pytype             # <<<<<<<<<<<<<<
  * 
  *     return _makeElement(u"value", strval, _attributes, nsmap)
  */
-        __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        __pyx_t_6 = __Pyx_GetModuleGlobalName(__pyx_n_s__PYTYPE_ATTRIBUTE); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_6);
-        if (PyObject_SetItem(__pyx_v__attributes, __pyx_t_6, __pyx_v__pytype) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1969; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+        if (PyObject_SetItem(__pyx_v__attributes, __pyx_t_6, __pyx_v__pytype) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1966; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
         goto __pyx_L36;
       }
@@ -23037,7 +22895,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
   }
   __pyx_L34:;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1971
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1968
  *                 _attributes[PYTYPE_ATTRIBUTE] = _pytype
  * 
  *     return _makeElement(u"value", strval, _attributes, nsmap)             # <<<<<<<<<<<<<<
@@ -23045,7 +22903,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_40DataElement(CYTHON_UNUSED PyObject
  * 
  */
   __Pyx_XDECREF(__pyx_r);
-  __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(((PyObject *)__pyx_n_u__value), __pyx_v_strval, __pyx_v__attributes, __pyx_v_nsmap)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1971; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_6 = ((PyObject *)__pyx_f_4lxml_9objectify__makeElement(((PyObject *)__pyx_n_u__value), __pyx_v_strval, __pyx_v__attributes, __pyx_v_nsmap)); if (unlikely(!__pyx_t_6)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1968; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_6);
   __pyx_r = __pyx_t_6;
   __pyx_t_6 = 0;
@@ -23483,8 +23341,7 @@ static PyObject *__pyx_pf_4lxml_9objectify_10ObjectPath_6__call__(struct __pyx_o
  */
     __pyx_t_2 = PyTuple_GET_ITEM(__pyx_v_default, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 49; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_2);
-    __Pyx_DECREF(__pyx_v_default);
-    __pyx_v_default = __pyx_t_2;
+    __Pyx_DECREF_SET(__pyx_v_default, __pyx_t_2);
     __pyx_t_2 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":50
@@ -24043,8 +23900,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
     }
     __pyx_t_1 = ((PyObject *)__Pyx_decode_bytes(((PyObject *)((PyObject*)__pyx_v_path)), 0, PY_SSIZE_T_MAX, NULL, NULL, PyUnicode_DecodeASCII)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 97; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(((PyObject *)__pyx_t_1));
-    __Pyx_DECREF(__pyx_v_path);
-    __pyx_v_path = ((PyObject *)__pyx_t_1);
+    __Pyx_DECREF_SET(__pyx_v_path, ((PyObject *)__pyx_t_1));
     __pyx_t_1 = 0;
     goto __pyx_L3;
   }
@@ -24062,8 +23918,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
   __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 98; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-  __Pyx_DECREF(__pyx_v_path);
-  __pyx_v_path = __pyx_t_4;
+  __Pyx_DECREF_SET(__pyx_v_path, __pyx_t_4);
   __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":99
@@ -24137,8 +23992,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
     __pyx_t_1 = PyObject_Call(__pyx_v_4lxml_9objectify___MATCH_PATH_SEGMENT, ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 103; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_1);
     __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-    __Pyx_XDECREF(__pyx_v_match);
-    __pyx_v_match = __pyx_t_1;
+    __Pyx_XDECREF_SET(__pyx_v_match, __pyx_t_1);
     __pyx_t_1 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":104
@@ -24238,17 +24092,13 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
       {__pyx_filename = __pyx_f[1]; __pyx_lineno = 107; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L9_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_dot);
-    __pyx_v_dot = __pyx_t_1;
+    __Pyx_XDECREF_SET(__pyx_v_dot, __pyx_t_1);
     __pyx_t_1 = 0;
-    __Pyx_XDECREF(__pyx_v_ns);
-    __pyx_v_ns = __pyx_t_5;
+    __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_5);
     __pyx_t_5 = 0;
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_6);
     __pyx_t_6 = 0;
-    __Pyx_XDECREF(__pyx_v_index);
-    __pyx_v_index = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_7);
     __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":108
@@ -24276,8 +24126,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  *             index = int(index)
  */
       __Pyx_INCREF(__pyx_int_0);
-      __Pyx_DECREF(__pyx_v_index);
-      __pyx_v_index = __pyx_int_0;
+      __Pyx_DECREF_SET(__pyx_v_index, __pyx_int_0);
       goto __pyx_L10;
     }
     /*else*/ {
@@ -24297,8 +24146,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
       __pyx_t_7 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_4), NULL); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(((PyObject *)__pyx_t_4)); __pyx_t_4 = 0;
-      __Pyx_DECREF(__pyx_v_index);
-      __pyx_v_index = __pyx_t_7;
+      __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_7);
       __pyx_t_7 = 0;
     }
     __pyx_L10:;
@@ -24419,8 +24267,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  */
       __pyx_t_7 = ((PyObject *)PyUnicode_AsUTF8String(__pyx_v_ns)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 122; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
-      __Pyx_DECREF(__pyx_v_ns);
-      __pyx_v_ns = __pyx_t_7;
+      __Pyx_DECREF_SET(__pyx_v_ns, __pyx_t_7);
       __pyx_t_7 = 0;
       goto __pyx_L13;
     }
@@ -24435,8 +24282,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
  */
     __pyx_t_7 = ((PyObject *)PyUnicode_AsUTF8String(__pyx_v_name)); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 123; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_7);
-    __Pyx_DECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_7;
+    __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_7);
     __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":124
@@ -24472,8 +24318,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathString(PyObject *__pyx
     __pyx_t_4 = PyObject_Call(__pyx_t_7, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 126; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_4);
     __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
-    __Pyx_DECREF(__pyx_v_path_pos);
-    __pyx_v_path_pos = __pyx_t_4;
+    __Pyx_DECREF_SET(__pyx_v_path_pos, __pyx_t_4);
     __pyx_t_4 = 0;
   }
   __pyx_L6_break:;
@@ -24646,8 +24491,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
       }
       __Pyx_GOTREF(__pyx_t_4);
     }
-    __Pyx_XDECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_4;
+    __Pyx_XDECREF_SET(__pyx_v_item, __pyx_t_4);
     __pyx_t_4 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":137
@@ -24662,8 +24506,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
     __pyx_t_5 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 137; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_5);
     __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-    __Pyx_DECREF(__pyx_v_item);
-    __pyx_v_item = __pyx_t_5;
+    __Pyx_DECREF_SET(__pyx_v_item, __pyx_t_5);
     __pyx_t_5 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":138
@@ -24692,11 +24535,9 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
  *         else:
  */
       __Pyx_INCREF(Py_None);
-      __Pyx_XDECREF(__pyx_v_ns);
-      __pyx_v_ns = Py_None;
+      __Pyx_XDECREF_SET(__pyx_v_ns, Py_None);
       __Pyx_INCREF(Py_None);
-      __Pyx_XDECREF(__pyx_v_name);
-      __pyx_v_name = Py_None;
+      __Pyx_XDECREF_SET(__pyx_v_name, Py_None);
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":141
  *             # path '.child' => ignore root
@@ -24706,8 +24547,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
  *             ns, name = cetree.getNsTag(item)
  */
       __Pyx_INCREF(__pyx_int_0);
-      __Pyx_XDECREF(__pyx_v_index);
-      __pyx_v_index = __pyx_int_0;
+      __Pyx_XDECREF_SET(__pyx_v_index, __pyx_int_0);
       goto __pyx_L5;
     }
     /*else*/ {
@@ -24769,11 +24609,9 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
         {__pyx_filename = __pyx_f[1]; __pyx_lineno = 143; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __pyx_L7_unpacking_done:;
       }
-      __Pyx_XDECREF(__pyx_v_ns);
-      __pyx_v_ns = __pyx_t_4;
+      __Pyx_XDECREF_SET(__pyx_v_ns, __pyx_t_4);
       __pyx_t_4 = 0;
-      __Pyx_XDECREF(__pyx_v_name);
-      __pyx_v_name = __pyx_t_9;
+      __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_9);
       __pyx_t_9 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":144
@@ -24812,8 +24650,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
  *                 index_end = tree.xmlStrchr(index_pos + 1, c']')
  */
         __Pyx_INCREF(__pyx_int_0);
-        __Pyx_XDECREF(__pyx_v_index);
-        __pyx_v_index = __pyx_int_0;
+        __Pyx_XDECREF_SET(__pyx_v_index, __pyx_int_0);
         goto __pyx_L8;
       }
       /*else*/ {
@@ -24867,8 +24704,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
         __pyx_t_5 = PyObject_Call(((PyObject *)((PyObject*)(&PyInt_Type))), ((PyObject *)__pyx_t_9), NULL); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 152; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(__pyx_t_5);
         __Pyx_DECREF(((PyObject *)__pyx_t_9)); __pyx_t_9 = 0;
-        __Pyx_XDECREF(__pyx_v_index);
-        __pyx_v_index = __pyx_t_5;
+        __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_5);
         __pyx_t_5 = 0;
 
         /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":153
@@ -24912,8 +24748,7 @@ static PyObject *__pyx_f_4lxml_9objectify__parseObjectPathList(PyObject *__pyx_v
         __pyx_t_5 = __Pyx_PyBytes_FromStringAndSize(((const char*)__pyx_v_c_name) + 0, (__pyx_v_index_pos - __pyx_v_c_name) - 0); if (unlikely(!__pyx_t_5)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 155; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
         __Pyx_GOTREF(((PyObject *)__pyx_t_5));
         __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_t_5)));
-        __Pyx_DECREF(__pyx_v_name);
-        __pyx_v_name = ((PyObject *)__pyx_t_5);
+        __Pyx_DECREF_SET(__pyx_v_name, ((PyObject *)__pyx_t_5));
         __Pyx_DECREF(((PyObject *)__pyx_t_5)); __pyx_t_5 = 0;
       }
       __pyx_L8:;
@@ -25171,14 +25006,11 @@ static __pyx_t_4lxml_9objectify__ObjectPath *__pyx_f_4lxml_9objectify__buildObje
       {__pyx_filename = __pyx_f[1]; __pyx_lineno = 169; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __pyx_L7_unpacking_done:;
     }
-    __Pyx_XDECREF(__pyx_v_href);
-    __pyx_v_href = __pyx_t_6;
+    __Pyx_XDECREF_SET(__pyx_v_href, __pyx_t_6);
     __pyx_t_6 = 0;
-    __Pyx_XDECREF(__pyx_v_name);
-    __pyx_v_name = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_7);
     __pyx_t_7 = 0;
-    __Pyx_XDECREF(__pyx_v_index);
-    __pyx_v_index = __pyx_t_8;
+    __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_8);
     __pyx_t_8 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":170
@@ -26087,8 +25919,7 @@ static PyObject *__pyx_f_4lxml_9objectify__createObjectPath(struct LxmlElement *
       __Pyx_GOTREF(__pyx_t_8);
       __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
       __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
-      __Pyx_XDECREF(((PyObject *)__pyx_v_child));
-      __pyx_v_child = ((struct LxmlElement *)__pyx_t_8);
+      __Pyx_XDECREF_SET(__pyx_v_child, ((struct LxmlElement *)__pyx_t_8));
       __pyx_t_8 = 0;
 
       /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":272
@@ -26259,8 +26090,7 @@ static PyObject *__pyx_f_4lxml_9objectify__buildDescendantPaths(xmlNode *__pyx_v
  */
       __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_prefix_string, ((PyObject *)__pyx_kp_u_8)); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 289; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_3);
-      __Pyx_DECREF(__pyx_v_prefix_string);
-      __pyx_v_prefix_string = __pyx_t_3;
+      __Pyx_DECREF_SET(__pyx_v_prefix_string, __pyx_t_3);
       __pyx_t_3 = 0;
       goto __pyx_L4;
     }
@@ -26275,8 +26105,7 @@ static PyObject *__pyx_f_4lxml_9objectify__buildDescendantPaths(xmlNode *__pyx_v
  */
     __pyx_t_3 = PyNumber_Add(__pyx_v_prefix_string, __pyx_v_tag); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 290; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     __Pyx_GOTREF(__pyx_t_3);
-    __Pyx_DECREF(__pyx_v_prefix_string);
-    __pyx_v_prefix_string = __pyx_t_3;
+    __Pyx_DECREF_SET(__pyx_v_prefix_string, __pyx_t_3);
     __pyx_t_3 = 0;
     goto __pyx_L3;
   }
@@ -26290,8 +26119,7 @@ static PyObject *__pyx_f_4lxml_9objectify__buildDescendantPaths(xmlNode *__pyx_v
  *     path_list = []
  */
     __Pyx_INCREF(__pyx_v_tag);
-    __Pyx_DECREF(__pyx_v_prefix_string);
-    __pyx_v_prefix_string = __pyx_v_tag;
+    __Pyx_DECREF_SET(__pyx_v_prefix_string, __pyx_v_tag);
   }
   __pyx_L3:;
 
@@ -26512,8 +26340,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
  */
       __pyx_t_1 = pyunicode(__pyx_v_c_child->name); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 315; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
-      __Pyx_XDECREF(__pyx_v_tag);
-      __pyx_v_tag = __pyx_t_1;
+      __Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_1);
       __pyx_t_1 = 0;
       goto __pyx_L8;
     }
@@ -26546,8 +26373,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
       __pyx_t_7 = PyNumber_Add(((PyObject *)__pyx_kp_u_58), __pyx_t_1); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 318; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
       __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
-      __Pyx_XDECREF(__pyx_v_tag);
-      __pyx_v_tag = __pyx_t_7;
+      __Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_7);
       __pyx_t_7 = 0;
       goto __pyx_L8;
     }
@@ -26562,8 +26388,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
  */
       __pyx_t_7 = namespacedName(__pyx_v_c_child); if (unlikely(!__pyx_t_7)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 320; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_7);
-      __Pyx_XDECREF(__pyx_v_tag);
-      __pyx_v_tag = __pyx_t_7;
+      __Pyx_XDECREF_SET(__pyx_v_tag, __pyx_t_7);
       __pyx_t_7 = 0;
     }
     __pyx_L8:;
@@ -26593,8 +26418,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
       __Pyx_INCREF(__pyx_int_0);
       __pyx_t_7 = __pyx_int_0;
     }
-    __Pyx_XDECREF(__pyx_v_count);
-    __pyx_v_count = __pyx_t_7;
+    __Pyx_XDECREF_SET(__pyx_v_count, __pyx_t_7);
     __pyx_t_7 = 0;
 
     /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":323
@@ -26630,8 +26454,7 @@ static int __pyx_f_4lxml_9objectify__recursiveBuildDescendantPaths(xmlNode *__py
       __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tag, ((PyObject *)__pyx_t_7)); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 325; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
       __Pyx_GOTREF(__pyx_t_1);
       __Pyx_DECREF(((PyObject *)__pyx_t_7)); __pyx_t_7 = 0;
-      __Pyx_DECREF(__pyx_v_tag);
-      __pyx_v_tag = __pyx_t_1;
+      __Pyx_DECREF_SET(__pyx_v_tag, __pyx_t_1);
       __pyx_t_1 = 0;
       goto __pyx_L9;
     }
@@ -26866,6 +26689,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_PyType = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify__ObjectifyElementMakerCaller(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -26977,6 +26803,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifiedElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -27133,6 +26962,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifiedElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifiedDataElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -27213,6 +27045,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifiedDataElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_NumberElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -27383,6 +27218,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_NumberElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_FloatElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -27462,6 +27300,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_FloatElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_IntElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -27541,6 +27382,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_IntElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_BoolElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -27763,6 +27607,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_BoolElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_LongElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -27842,6 +27689,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_LongElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 static struct __pyx_vtabstruct_4lxml_9objectify_ElementMaker __pyx_vtable_4lxml_9objectify_ElementMaker;
 
@@ -27973,6 +27823,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ElementMaker = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectifyElementClassLookup(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -28078,6 +27931,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ObjectifyElementClassLookup = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_NoneElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -28215,6 +28071,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_NoneElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_ObjectPath(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) {
@@ -28347,6 +28206,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_ObjectPath = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyObject *__pyx_tp_new_4lxml_9objectify_StringElement(PyTypeObject *t, PyObject *a, PyObject *k) {
@@ -28490,6 +28352,9 @@ static PyTypeObject __pyx_type_4lxml_9objectify_StringElement = {
   #if PY_VERSION_HEX >= 0x02060000
   0, /*tp_version_tag*/
   #endif
+  #if PY_VERSION_HEX >= 0x030400a1 && defined(Py_TPFLAGS_HAVE_FINALIZE)
+  0, /*tp_finalize*/
+  #endif
 };
 
 static PyMethodDef __pyx_methods[] = {
@@ -28790,8 +28655,8 @@ static int __Pyx_InitCachedBuiltins(void) {
   __pyx_builtin_AttributeError = __Pyx_GetBuiltinName(__pyx_n_s__AttributeError); if (!__pyx_builtin_AttributeError) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 437; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_oct = __Pyx_GetBuiltinName(__pyx_n_s__oct); if (!__pyx_builtin_oct) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 638; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_hex = __Pyx_GetBuiltinName(__pyx_n_s__hex); if (!__pyx_builtin_hex) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 641; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 960; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  __pyx_builtin_map = __Pyx_GetBuiltinName(__pyx_n_s__map); if (!__pyx_builtin_map) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s__enumerate); if (!__pyx_builtin_enumerate) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 957; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_builtin_map = __Pyx_GetBuiltinName(__pyx_n_s__map); if (!__pyx_builtin_map) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 995; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_builtin_MemoryError = __Pyx_GetBuiltinName(__pyx_n_s__MemoryError); if (!__pyx_builtin_MemoryError) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 167; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   return 0;
   __pyx_L1_error:;
@@ -28813,102 +28678,102 @@ static int __Pyx_InitCachedConstants(void) {
   __Pyx_GOTREF(__pyx_k_slice_10);
   __Pyx_GIVEREF(__pyx_k_slice_10);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1020
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1017
  * cdef _registerPyTypes():
  *     pytype = PyType(u'int', int, IntElement)
  *     pytype.xmlSchemaTypes = (u"integer", u"int", u"short", u"byte", u"unsignedShort",             # <<<<<<<<<<<<<<
  *                              u"unsignedByte", u"nonPositiveInteger",
  *                              u"negativeInteger", u"long", u"nonNegativeInteger",
  */
-  __pyx_k_tuple_21 = PyTuple_Pack(13, ((PyObject *)__pyx_n_u__integer), ((PyObject *)__pyx_n_u__int), ((PyObject *)__pyx_n_u__short), ((PyObject *)__pyx_n_u__byte), ((PyObject *)__pyx_n_u__unsignedShort), ((PyObject *)__pyx_n_u__unsignedByte), ((PyObject *)__pyx_n_u__nonPositiveInteger), ((PyObject *)__pyx_n_u__negativeInteger), ((PyObject *)__pyx_n_u__long), ((PyObject *)__pyx_n_u__nonNegativeInteger), ((PyObject *)__pyx_n_u__unsignedLong), ((PyObject *)__pyx_n_u__unsignedInt), ((PyObject *)__pyx_n_u__positiveInteger)); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1020; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_21 = PyTuple_Pack(13, ((PyObject *)__pyx_n_u__integer), ((PyObject *)__pyx_n_u__int), ((PyObject *)__pyx_n_u__short), ((PyObject *)__pyx_n_u__byte), ((PyObject *)__pyx_n_u__unsignedShort), ((PyObject *)__pyx_n_u__unsignedByte), ((PyObject *)__pyx_n_u__nonPositiveInteger), ((PyObject *)__pyx_n_u__negativeInteger), ((PyObject *)__pyx_n_u__long), ((PyObject *)__pyx_n_u__nonNegativeInteger), ((PyObject *)__pyx_n_u__unsignedLong), ((PyObject *)__pyx_n_u__unsignedInt), ((PyObject *)__pyx_n_u__positiveInteger)); if (unlikely(!__pyx_k_tuple_21)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1017; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_21);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_21));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1031
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1028
  * 
  *     pytype = PyType(u'float', float, FloatElement)
  *     pytype.xmlSchemaTypes = (u"double", u"float")             # <<<<<<<<<<<<<<
  *     pytype.register()
  * 
  */
-  __pyx_k_tuple_22 = PyTuple_Pack(2, ((PyObject *)__pyx_n_u__double), ((PyObject *)__pyx_n_u__float)); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1031; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_22 = PyTuple_Pack(2, ((PyObject *)__pyx_n_u__double), ((PyObject *)__pyx_n_u__float)); if (unlikely(!__pyx_k_tuple_22)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1028; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_22);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_22));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1035
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1032
  * 
  *     pytype = PyType(u'bool', __checkBool, BoolElement, __lower_bool)
  *     pytype.xmlSchemaTypes = (u"boolean",)             # <<<<<<<<<<<<<<
  *     pytype.register()
  * 
  */
-  __pyx_k_tuple_23 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__boolean)); if (unlikely(!__pyx_k_tuple_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1035; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_23 = PyTuple_Pack(1, ((PyObject *)__pyx_n_u__boolean)); if (unlikely(!__pyx_k_tuple_23)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1032; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_23);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_23));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1039
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1036
  * 
  *     pytype = PyType(u'str', None, StringElement)
  *     pytype.xmlSchemaTypes = (u"string", u"normalizedString", u"token", u"language",             # <<<<<<<<<<<<<<
  *                              u"Name", u"NCName", u"ID", u"IDREF", u"ENTITY",
  *                              u"NMTOKEN", )
  */
-  __pyx_k_tuple_24 = PyTuple_Pack(10, ((PyObject *)__pyx_n_u__string), ((PyObject *)__pyx_n_u__normalizedString), ((PyObject *)__pyx_n_u__token), ((PyObject *)__pyx_n_u__language), ((PyObject *)__pyx_n_u__Name), ((PyObject *)__pyx_n_u__NCName), ((PyObject *)__pyx_n_u__ID), ((PyObject *)__pyx_n_u__IDREF), ((PyObject *)__pyx_n_u__ENTITY), ((PyObject *)__pyx_n_u__NMTOKEN)); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1039; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_24 = PyTuple_Pack(10, ((PyObject *)__pyx_n_u__string), ((PyObject *)__pyx_n_u__normalizedString), ((PyObject *)__pyx_n_u__token), ((PyObject *)__pyx_n_u__language), ((PyObject *)__pyx_n_u__Name), ((PyObject *)__pyx_n_u__NCName), ((PyObject *)__pyx_n_u__ID), ((PyObject *)__pyx_n_u__IDREF), ((PyObject *)__pyx_n_u__ENTITY), ((PyObject *)__pyx_n_u__NMTOKEN)); if (unlikely(!__pyx_k_tuple_24)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1036; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_24);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_24));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1322
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1319
  *         result += _dump(child, indent)
  *     if indent == 1:
  *         return result[:-1] # strip last '\n'             # <<<<<<<<<<<<<<
  *     else:
  *         return result
  */
-  __pyx_k_slice_34 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_34)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1322; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_slice_34 = PySlice_New(Py_None, __pyx_int_neg_1, Py_None); if (unlikely(!__pyx_k_slice_34)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1319; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_slice_34);
   __Pyx_GIVEREF(__pyx_k_slice_34);
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1404
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1401
  *         dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  *         if dict_result is NULL and u':' in value:
  *             prefix, value = value.split(u':', 1)             # <<<<<<<<<<<<<<
  *             dict_result = python.PyDict_GetItem(_SCHEMA_TYPE_DICT, value)
  *         if dict_result is not NULL:
  */
-  __pyx_k_tuple_37 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_36), __pyx_int_1); if (unlikely(!__pyx_k_tuple_37)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1404; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_37 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_36), __pyx_int_1); if (unlikely(!__pyx_k_tuple_37)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1401; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_37);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_37));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1587
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1584
  *                 _SCHEMA_TYPE_DICT, typename)
  *             if dict_result is NULL and u':' in typename:
  *                 prefix, typename = typename.split(u':', 1)             # <<<<<<<<<<<<<<
  *                 dict_result = python.PyDict_GetItem(
  *                     _SCHEMA_TYPE_DICT, typename)
  */
-  __pyx_k_tuple_44 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_36), __pyx_int_1); if (unlikely(!__pyx_k_tuple_44)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1587; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_44 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_36), __pyx_int_1); if (unlikely(!__pyx_k_tuple_44)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1584; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_44);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_44));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1662
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1659
  *             if c_ns is not NULL:
  *                 if b':' in typename_utf8:
  *                     prefix, name = typename_utf8.split(b':', 1)             # <<<<<<<<<<<<<<
  *                     if c_ns.prefix is NULL or c_ns.prefix[0] == c'\0':
  *                         typename_utf8 = name
  */
-  __pyx_k_tuple_45 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_b_36), __pyx_int_1); if (unlikely(!__pyx_k_tuple_45)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1662; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_45 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_b_36), __pyx_int_1); if (unlikely(!__pyx_k_tuple_45)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1659; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_45);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_45));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1912
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1909
  *     if _xsi is not None:
  *         if u':' in _xsi:
  *             prefix, name = _xsi.split(u':', 1)             # <<<<<<<<<<<<<<
  *             ns = nsmap.get(prefix)
  *             if ns != XML_SCHEMA_NS:
  */
-  __pyx_k_tuple_48 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_36), __pyx_int_1); if (unlikely(!__pyx_k_tuple_48)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1912; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_48 = PyTuple_Pack(2, ((PyObject *)__pyx_kp_u_36), __pyx_int_1); if (unlikely(!__pyx_k_tuple_48)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1909; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_48);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_48));
 
@@ -28935,233 +28800,233 @@ static int __Pyx_InitCachedConstants(void) {
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_69));
   __pyx_k_codeobj_70 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_69, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s_66, 66, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_70)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":833
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":830
  *             return __parseBool(textOf(self._c_node))
  * 
  * def __checkBool(s):             # <<<<<<<<<<<<<<
  *     cdef int value = -1
  *     if s is not None:
  */
-  __pyx_k_tuple_77 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__s), ((PyObject *)__pyx_n_s__value)); if (unlikely(!__pyx_k_tuple_77)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_77 = PyTuple_Pack(2, ((PyObject *)__pyx_n_s__s), ((PyObject *)__pyx_n_s__value)); if (unlikely(!__pyx_k_tuple_77)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_77);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_77));
-  __pyx_k_codeobj_78 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s____checkBool, 833, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_78)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_78 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_77, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s____checkBool, 830, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_78)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1005
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1002
  * cdef list _TYPE_CHECKS = []
  * 
  * def __lower_bool(b):             # <<<<<<<<<<<<<<
  *     return u"true" if b else u"false"
  * 
  */
-  __pyx_k_tuple_79 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__b)); if (unlikely(!__pyx_k_tuple_79)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_79 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__b)); if (unlikely(!__pyx_k_tuple_79)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_79);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_79));
-  __pyx_k_codeobj_80 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s____lower_bool, 1005, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_80)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_80 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_79, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s____lower_bool, 1002, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_80)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1011
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1008
  *     return u"str" if python._isString(obj) else _typename(obj)
  * 
  * def pytypename(obj):             # <<<<<<<<<<<<<<
  *     u"""pytypename(obj)
  * 
  */
-  __pyx_k_tuple_81 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_81)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_81 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_81)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_81);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_81));
-  __pyx_k_codeobj_82 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__pytypename, 1011, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_82)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_82 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_81, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__pytypename, 1008, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_82)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1057
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1054
  * _registerPyTypes()
  * 
  * def getRegisteredTypes():             # <<<<<<<<<<<<<<
  *     u"""getRegisteredTypes()
  * 
  */
-  __pyx_k_tuple_83 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__types), ((PyObject *)__pyx_n_s__known), ((PyObject *)__pyx_n_s__check), ((PyObject *)__pyx_n_s__pytype), ((PyObject *)__pyx_n_s__name)); if (unlikely(!__pyx_k_tuple_83)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_83 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__types), ((PyObject *)__pyx_n_s__known), ((PyObject *)__pyx_n_s__check), ((PyObject *)__pyx_n_s__pytype), ((PyObject *)__pyx_n_s__name)); if (unlikely(!__pyx_k_tuple_83)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_83);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_83));
-  __pyx_k_codeobj_84 = (PyObject*)__Pyx_PyCode_New(0, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__getRegisteredTypes, 1057, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_84)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_84 = (PyObject*)__Pyx_PyCode_New(0, 0, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_83, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__getRegisteredTypes, 1054, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_84)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1277
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1274
  * cdef bint __RECURSIVE_STR = 0 # default: off
  * 
  * def enable_recursive_str(on=True):             # <<<<<<<<<<<<<<
  *     u"""enable_recursive_str(on=True)
  * 
  */
-  __pyx_k_tuple_85 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__on)); if (unlikely(!__pyx_k_tuple_85)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_85 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__on)); if (unlikely(!__pyx_k_tuple_85)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_85);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_85));
-  __pyx_k_codeobj_86 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s_65, 1277, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_86)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_86 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s_65, 1274, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_86)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1286
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1283
  *     __RECURSIVE_STR = on
  * 
  * def dump(_Element element not None):             # <<<<<<<<<<<<<<
  *     u"""dump(_Element element not None)
  * 
  */
-  __pyx_k_tuple_87 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_87)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_87 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_87)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_87);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_87));
-  __pyx_k_codeobj_88 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__dump, 1286, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_88)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_88 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__dump, 1283, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_88)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1330
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1327
  * # Pickle support for objectified ElementTree
  * 
  * def __unpickleElementTree(data):             # <<<<<<<<<<<<<<
  *     return etree.ElementTree(fromstring(data))
  * 
  */
-  __pyx_k_tuple_89 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__data)); if (unlikely(!__pyx_k_tuple_89)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_89 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__data)); if (unlikely(!__pyx_k_tuple_89)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_89);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_89));
-  __pyx_k_codeobj_90 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s_35, 1330, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_90)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_90 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_89, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s_35, 1327, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_90)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1341
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1338
  *                    elementTreeReduceFunction, __unpickleElementTree)
  * 
  * def pickleReduceElementTree(obj):             # <<<<<<<<<<<<<<
  *     return (__unpickleElementTree, (etree.tostring(obj),))
  * 
  */
-  __pyx_k_tuple_91 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_91)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_91 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__obj)); if (unlikely(!__pyx_k_tuple_91)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_91);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_91));
-  __pyx_k_codeobj_92 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s_93, 1341, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_92)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_92 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s_93, 1338, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_92)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1436
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1433
  *     return None
  * 
  * def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False,             # <<<<<<<<<<<<<<
  *              empty_pytype=None):
  *     u"""pyannotate(element_or_tree, ignore_old=False, ignore_xsi=False, empty_pytype=None)
  */
-  __pyx_k_tuple_94 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_xsi), ((PyObject *)__pyx_n_s__empty_pytype), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_94)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_94 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_xsi), ((PyObject *)__pyx_n_s__empty_pytype), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_94)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_94);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_94));
-  __pyx_k_codeobj_95 = (PyObject*)__Pyx_PyCode_New(4, 3, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_94, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__pyannotate, 1436, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_95)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_95 = (PyObject*)__Pyx_PyCode_New(4, 3, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_94, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__pyannotate, 1433, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_95)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1459
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1456
  *     _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
  * 
  * def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False,             # <<<<<<<<<<<<<<
  *                 empty_type=None):
  *     u"""xsiannotate(element_or_tree, ignore_old=False, ignore_pytype=False, empty_type=None)
  */
-  __pyx_k_tuple_96 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_pytype), ((PyObject *)__pyx_n_s__empty_type), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_96)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_96 = PyTuple_Pack(5, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_pytype), ((PyObject *)__pyx_n_s__empty_type), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_96)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_96);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_96));
-  __pyx_k_codeobj_97 = (PyObject*)__Pyx_PyCode_New(4, 3, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__xsiannotate, 1459, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_97)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_97 = (PyObject*)__Pyx_PyCode_New(4, 3, 5, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__xsiannotate, 1456, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_97)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1487
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1484
  *     _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
  * 
  * def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False,             # <<<<<<<<<<<<<<
  *              empty_pytype=None, empty_type=None, annotate_xsi=0,
  *              annotate_pytype=1):
  */
-  __pyx_k_tuple_98 = PyTuple_Pack(8, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_xsi), ((PyObject *)__pyx_n_s__empty_pytype), ((PyObject *)__pyx_n_s__empty_type), ((PyObject *)__pyx_n_s__annotate_xsi), ((PyObject *)__pyx_n_s__annotate_pytype), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_98)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_98 = PyTuple_Pack(8, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__ignore_old), ((PyObject *)__pyx_n_s__ignore_xsi), ((PyObject *)__pyx_n_s__empty_pytype), ((PyObject *)__pyx_n_s__empty_type), ((PyObject *)__pyx_n_s__annotate_xsi), ((PyObject *)__pyx_n_s__annotate_pytype), ((PyObject *)__pyx_n_s__element)); if (unlikely(!__pyx_k_tuple_98)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_98);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_98));
-  __pyx_k_codeobj_99 = (PyObject*)__Pyx_PyCode_New(7, 6, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__annotate, 1487, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_99)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_99 = (PyObject*)__Pyx_PyCode_New(7, 6, 8, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__annotate, 1484, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_99)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1695
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1692
  * cdef object _cleanup_namespaces = etree.cleanup_namespaces
  * 
  * def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,             # <<<<<<<<<<<<<<
  *                bint xsi_nil=False, bint cleanup_namespaces=False):
  *     u"""deannotate(element_or_tree, pytype=True, xsi=True, xsi_nil=False, cleanup_namespaces=False)
  */
-  __pyx_k_tuple_100 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__pytype), ((PyObject *)__pyx_n_s__xsi), ((PyObject *)__pyx_n_s__xsi_nil), ((PyObject *)__pyx_n_s__cleanup_namespaces), ((PyObject *)__pyx_n_s__attribute_names)); if (unlikely(!__pyx_k_tuple_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_100 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s__element_or_tree), ((PyObject *)__pyx_n_s__pytype), ((PyObject *)__pyx_n_s__xsi), ((PyObject *)__pyx_n_s__xsi_nil), ((PyObject *)__pyx_n_s__cleanup_namespaces), ((PyObject *)__pyx_n_s__attribute_names)); if (unlikely(!__pyx_k_tuple_100)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_100);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_100));
-  __pyx_k_codeobj_101 = (PyObject*)__Pyx_PyCode_New(5, 4, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_100, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__deannotate, 1695, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_101)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_101 = (PyObject*)__Pyx_PyCode_New(5, 4, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_100, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__deannotate, 1692, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_101)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1735
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1732
  * objectify_parser = __DEFAULT_PARSER
  * 
  * def set_default_parser(new_parser = None):             # <<<<<<<<<<<<<<
  *     u"""set_default_parser(new_parser = None)
  * 
  */
-  __pyx_k_tuple_102 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__new_parser)); if (unlikely(!__pyx_k_tuple_102)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_102 = PyTuple_Pack(1, ((PyObject *)__pyx_n_s__new_parser)); if (unlikely(!__pyx_k_tuple_102)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_102);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_102));
-  __pyx_k_codeobj_103 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_102, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__set_default_parser, 1735, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_103 = (PyObject*)__Pyx_PyCode_New(1, 0, 1, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_102, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__set_default_parser, 1732, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_103)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1753
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1750
  *         raise TypeError, u"parser must inherit from lxml.etree.XMLParser"
  * 
  * def makeparser(**kw):             # <<<<<<<<<<<<<<
  *     u"""makeparser(remove_blank_text=True, **kw)
  * 
  */
-  __pyx_k_tuple_104 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__kw), ((PyObject *)__pyx_n_s__kw), ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_104)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_104 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__kw), ((PyObject *)__pyx_n_s__kw), ((PyObject *)__pyx_n_s__parser)); if (unlikely(!__pyx_k_tuple_104)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_104);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_104));
-  __pyx_k_codeobj_105 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__makeparser, 1753, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_105)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_105 = (PyObject*)__Pyx_PyCode_New(0, 0, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__makeparser, 1750, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_105)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1780
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1777
  * SubElement = etree.SubElement
  * 
  * def fromstring(xml, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""fromstring(xml, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_106 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__xml), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_106)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_106 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__xml), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_106)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_106);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_106));
-  __pyx_k_codeobj_107 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__fromstring, 1780, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_107)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_107 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__fromstring, 1777, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_107)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1796
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1793
  *     return _fromstring(xml, parser, base_url=base_url)
  * 
  * def XML(xml, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""XML(xml, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_108 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__xml), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_108)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_108 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__xml), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_108)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_108);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_108));
-  __pyx_k_codeobj_109 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__XML, 1796, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_109 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__XML, 1793, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_109)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1815
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1812
  * _parse = etree.parse
  * 
  * def parse(f, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""parse(f, parser=None, base_url=None)
  * 
  */
-  __pyx_k_tuple_110 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__f), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_110 = PyTuple_Pack(3, ((PyObject *)__pyx_n_s__f), ((PyObject *)__pyx_n_s__parser), ((PyObject *)__pyx_n_s__base_url)); if (unlikely(!__pyx_k_tuple_110)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_110);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_110));
-  __pyx_k_codeobj_111 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__parse, 1815, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_111 = (PyObject*)__Pyx_PyCode_New(3, 1, 3, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__parse, 1812, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_111)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1838
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1835
  * E = ElementMaker()
  * 
  * def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes):             # <<<<<<<<<<<<<<
  *     u"""Element(_tag, attrib=None, nsmap=None, _pytype=None, **_attributes)
  * 
  */
-  __pyx_k_tuple_112 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___pytype), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s___attributes)); if (unlikely(!__pyx_k_tuple_112)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_112 = PyTuple_Pack(6, ((PyObject *)__pyx_n_s___tag), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___pytype), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s___attributes)); if (unlikely(!__pyx_k_tuple_112)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_112);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_112));
-  __pyx_k_codeobj_113 = (PyObject*)__Pyx_PyCode_New(4, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_112, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__Element, 1838, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_113 = (PyObject*)__Pyx_PyCode_New(4, 1, 6, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_112, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__Element, 1835, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_113)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1858
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1855
  *     return _makeElement(_tag, None, _attributes, nsmap)
  * 
  * def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None,             # <<<<<<<<<<<<<<
  *                 **_attributes):
  *     u"""DataElement(_value, attrib=None, nsmap=None, _pytype=None, _xsi=None, **_attributes)
  */
-  __pyx_k_tuple_114 = PyTuple_Pack(15, ((PyObject *)__pyx_n_s___value), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___pytype), ((PyObject *)__pyx_n_s___xsi), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s__dict_result), ((PyObject *)__pyx_n_s__temp), ((PyObject *)__pyx_n_s__prefix), ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__ns), ((PyObject *)__pyx_n_s__strval), ((PyObject *)__pyx_n_s__stringify), ((PyObject *)__pyx_n_s__type_check)); if (unlikely(!__pyx_k_tuple_114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_tuple_114 = PyTuple_Pack(15, ((PyObject *)__pyx_n_s___value), ((PyObject *)__pyx_n_s__attrib), ((PyObject *)__pyx_n_s__nsmap), ((PyObject *)__pyx_n_s___pytype), ((PyObject *)__pyx_n_s___xsi), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s___attributes), ((PyObject *)__pyx_n_s__dict_result), ((PyObject *)__pyx_n_s__temp), ((PyObject *)__pyx_n_s__prefix), ((PyObject *)__pyx_n_s__name), ((PyObject *)__pyx_n_s__ns), ((PyObject *)__pyx_n_s__strval), ((PyObject *)__pyx_n_s__stringify), ((PyObject *)__pyx_n_s__type_check)); if (unlikely(!__pyx_k_tuple_114)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_k_tuple_114);
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_114));
-  __pyx_k_codeobj_115 = (PyObject*)__Pyx_PyCode_New(5, 2, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__DataElement, 1858, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_115)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_k_codeobj_115 = (PyObject*)__Pyx_PyCode_New(5, 2, 15, 0, 0, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_k_tuple_114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_71, __pyx_n_s__DataElement, 1855, __pyx_empty_bytes); if (unlikely(!__pyx_k_codeobj_115)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":89
  * 
@@ -29303,13 +29168,13 @@ PyMODINIT_FUNC PyInit_objectify(void)
   /*--- Variable export code ---*/
   /*--- Function export code ---*/
   /*--- Type init code ---*/
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_PyType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "PyType", (PyObject *)&__pyx_type_4lxml_9objectify_PyType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 891; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_PyType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "PyType", (PyObject *)&__pyx_type_4lxml_9objectify_PyType) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 888; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_PyType = &__pyx_type_4lxml_9objectify_PyType;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1118; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify__ObjectifyElementMakerCaller, "__call__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1115; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__.doc = __pyx_doc_4lxml_9objectify_28_ObjectifyElementMakerCaller___call__;
@@ -29400,8 +29265,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
   if (__Pyx_SetAttrString(__pyx_m, "IntElement", (PyObject *)&__pyx_type_4lxml_9objectify_IntElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 703; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_IntElement = &__pyx_type_4lxml_9objectify_IntElement;
   __pyx_type_4lxml_9objectify_BoolElement.tp_base = __pyx_ptype_4lxml_9objectify_IntElement;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_BoolElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "BoolElement", (PyObject *)&__pyx_type_4lxml_9objectify_BoolElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 805; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_BoolElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "BoolElement", (PyObject *)&__pyx_type_4lxml_9objectify_BoolElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 802; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_BoolElement = &__pyx_type_4lxml_9objectify_BoolElement;
   __pyx_type_4lxml_9objectify_LongElement.tp_base = __pyx_ptype_4lxml_9objectify_NumberElement;
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_LongElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 707; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
@@ -29409,16 +29274,16 @@ PyMODINIT_FUNC PyInit_objectify(void)
   __pyx_ptype_4lxml_9objectify_LongElement = &__pyx_type_4lxml_9objectify_LongElement;
   __pyx_vtabptr_4lxml_9objectify_ElementMaker = &__pyx_vtable_4lxml_9objectify_ElementMaker;
   __pyx_vtable_4lxml_9objectify_ElementMaker._build_element_maker = (PyObject *(*)(struct __pyx_obj_4lxml_9objectify_ElementMaker *, PyObject *))__pyx_f_4lxml_9objectify_12ElementMaker__build_element_maker;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_ElementMaker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetVtable(__pyx_type_4lxml_9objectify_ElementMaker.tp_dict, __pyx_vtabptr_4lxml_9objectify_ElementMaker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "ElementMaker", (PyObject *)&__pyx_type_4lxml_9objectify_ElementMaker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1198; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_ElementMaker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetVtable(__pyx_type_4lxml_9objectify_ElementMaker.tp_dict, __pyx_vtabptr_4lxml_9objectify_ElementMaker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ElementMaker", (PyObject *)&__pyx_type_4lxml_9objectify_ElementMaker) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1195; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_ElementMaker = &__pyx_type_4lxml_9objectify_ElementMaker;
   __pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup = __Pyx_ImportType("lxml.etree", "ElementClassLookup", sizeof(struct LxmlElementClassLookup), 0); if (unlikely(!__pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_type_4lxml_9objectify_ObjectifyElementClassLookup.tp_base = __pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
   {
-    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    PyObject *wrapper = __Pyx_GetAttrString((PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup, "__init__"); if (unlikely(!wrapper)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
     if (Py_TYPE(wrapper) == &PyWrapperDescr_Type) {
       __pyx_wrapperbase_4lxml_9objectify_27ObjectifyElementClassLookup___init__ = *((PyWrapperDescrObject *)wrapper)->d_base;
       __pyx_wrapperbase_4lxml_9objectify_27ObjectifyElementClassLookup___init__.doc = __pyx_doc_4lxml_9objectify_27ObjectifyElementClassLookup___init__;
@@ -29426,11 +29291,11 @@ PyMODINIT_FUNC PyInit_objectify(void)
     }
   }
   #endif
-  if (__Pyx_SetAttrString(__pyx_m, "ObjectifyElementClassLookup", (PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1350; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "ObjectifyElementClassLookup", (PyObject *)&__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1347; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup = &__pyx_type_4lxml_9objectify_ObjectifyElementClassLookup;
   __pyx_type_4lxml_9objectify_NoneElement.tp_base = __pyx_ptype_4lxml_9objectify_ObjectifiedDataElement;
-  if (PyType_Ready(&__pyx_type_4lxml_9objectify_NoneElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
-  if (__Pyx_SetAttrString(__pyx_m, "NoneElement", (PyObject *)&__pyx_type_4lxml_9objectify_NoneElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyType_Ready(&__pyx_type_4lxml_9objectify_NoneElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_SetAttrString(__pyx_m, "NoneElement", (PyObject *)&__pyx_type_4lxml_9objectify_NoneElement) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __pyx_ptype_4lxml_9objectify_NoneElement = &__pyx_type_4lxml_9objectify_NoneElement;
   if (PyType_Ready(&__pyx_type_4lxml_9objectify_ObjectPath) < 0) {__pyx_filename = __pyx_f[1]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   #if CYTHON_COMPILING_IN_CPYTHON
@@ -29587,9 +29452,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_etree);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_etree);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_etree, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_9objectify_etree = __pyx_t_1;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
@@ -29624,9 +29488,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
   __pyx_t_2 = __Pyx_Import(((PyObject *)__pyx_n_s__re), 0, 0); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_re);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_re);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_re, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
-  __pyx_v_4lxml_9objectify_re = __pyx_t_2;
   __pyx_t_2 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":39
@@ -29645,9 +29508,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
   PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_builtin_TypeError);
   __Pyx_GIVEREF(__pyx_builtin_TypeError);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_IGNORABLE_ERRORS, ((PyObject*)__pyx_t_2));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
-  __pyx_v_4lxml_9objectify_IGNORABLE_ERRORS = ((PyObject*)__pyx_t_2);
   __pyx_t_2 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":40
@@ -29666,9 +29528,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_is_special_method);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_is_special_method);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_is_special_method, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
-  __pyx_v_4lxml_9objectify_is_special_method = __pyx_t_2;
   __pyx_t_2 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":59
@@ -29689,9 +29550,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
  */
   __Pyx_INCREF(((PyObject *)__pyx_n_u__TREE));
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME, __pyx_n_u__TREE);
   __Pyx_GIVEREF(((PyObject *)__pyx_n_u__TREE));
-  __pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME = __pyx_n_u__TREE;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":66
  *     return (s, python.PyUnicode_AsUTF8String(s))
@@ -29785,14 +29645,12 @@ PyMODINIT_FUNC PyInit_objectify(void)
  * cdef const_xmlChar* _XML_SCHEMA_NS = _xcstr(XML_SCHEMA_NS_UTF8)
  */
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_NS);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_NS);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_XML_SCHEMA_NS, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
-  __pyx_v_4lxml_9objectify_XML_SCHEMA_NS = __pyx_t_2;
   __pyx_t_2 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_NS_UTF8);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_NS_UTF8);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_XML_SCHEMA_NS_UTF8, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
-  __pyx_v_4lxml_9objectify_XML_SCHEMA_NS_UTF8 = __pyx_t_4;
   __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":103
@@ -29873,14 +29731,12 @@ PyMODINIT_FUNC PyInit_objectify(void)
  * cdef const_xmlChar* _XML_SCHEMA_INSTANCE_NS = _xcstr(XML_SCHEMA_INSTANCE_NS_UTF8)
  */
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
-  __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS = __pyx_t_4;
   __pyx_t_4 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS_UTF8);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS_UTF8);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS_UTF8, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
-  __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS_UTF8 = __pyx_t_2;
   __pyx_t_2 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":108
@@ -29905,9 +29761,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
   __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_75), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR, ((PyObject *)__pyx_t_1));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
-  __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NIL_ATTR = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":111
@@ -29920,100 +29775,96 @@ PyMODINIT_FUNC PyInit_objectify(void)
   __pyx_t_1 = PyNumber_Remainder(((PyObject *)__pyx_kp_u_76), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR, ((PyObject *)__pyx_t_1));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
-  __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_TYPE_ATTR = ((PyObject *)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":833
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":830
  *             return __parseBool(textOf(self._c_node))
  * 
  * def __checkBool(s):             # <<<<<<<<<<<<<<
  *     cdef int value = -1
  *     if s is not None:
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_3__checkBool, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_3__checkBool, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s____checkBool, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s____checkBool, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1001
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":998
  * 
  * 
  * cdef dict _PYTYPE_DICT = {}             # <<<<<<<<<<<<<<
  * cdef dict _SCHEMA_TYPE_DICT = {}
  * cdef list _TYPE_CHECKS = []
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1001; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 998; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify__PYTYPE_DICT));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__PYTYPE_DICT, ((PyObject*)__pyx_t_1));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
-  __pyx_v_4lxml_9objectify__PYTYPE_DICT = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1002
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":999
  * 
  * cdef dict _PYTYPE_DICT = {}
  * cdef dict _SCHEMA_TYPE_DICT = {}             # <<<<<<<<<<<<<<
  * cdef list _TYPE_CHECKS = []
  * 
  */
-  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyDict_New(); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 999; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_1));
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT, ((PyObject*)__pyx_t_1));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
-  __pyx_v_4lxml_9objectify__SCHEMA_TYPE_DICT = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1003
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1000
  * cdef dict _PYTYPE_DICT = {}
  * cdef dict _SCHEMA_TYPE_DICT = {}
  * cdef list _TYPE_CHECKS = []             # <<<<<<<<<<<<<<
  * 
  * def __lower_bool(b):
  */
-  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1003; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1000; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify__TYPE_CHECKS));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__TYPE_CHECKS, ((PyObject*)__pyx_t_1));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_1));
-  __pyx_v_4lxml_9objectify__TYPE_CHECKS = ((PyObject*)__pyx_t_1);
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1005
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1002
  * cdef list _TYPE_CHECKS = []
  * 
  * def __lower_bool(b):             # <<<<<<<<<<<<<<
  *     return u"true" if b else u"false"
  * 
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_7__lower_bool, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_7__lower_bool, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s____lower_bool, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1005; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s____lower_bool, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1002; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1011
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1008
  *     return u"str" if python._isString(obj) else _typename(obj)
  * 
  * def pytypename(obj):             # <<<<<<<<<<<<<<
  *     u"""pytypename(obj)
  * 
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_9pytypename, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_9pytypename, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__pytypename, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1011; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__pytypename, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1008; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1053
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1050
  * 
  * # non-registered PyType for inner tree elements
  * cdef PyType TREE_PYTYPE = PyType(TREE_PYTYPE_NAME, None, ObjectifiedElement)             # <<<<<<<<<<<<<<
  * 
  * _registerPyTypes()
  */
-  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_INCREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME));
   PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE_NAME));
@@ -30024,52 +29875,51 @@ PyMODINIT_FUNC PyInit_objectify(void)
   __Pyx_INCREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedElement)));
   PyTuple_SET_ITEM(__pyx_t_1, 2, ((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedElement)));
   __Pyx_GIVEREF(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifiedElement)));
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1053; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_PyType)), ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1050; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify_TREE_PYTYPE));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_TREE_PYTYPE, ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2));
   __Pyx_GIVEREF(__pyx_t_2);
-  __pyx_v_4lxml_9objectify_TREE_PYTYPE = ((struct __pyx_obj_4lxml_9objectify_PyType *)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1055
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1052
  * cdef PyType TREE_PYTYPE = PyType(TREE_PYTYPE_NAME, None, ObjectifiedElement)
  * 
  * _registerPyTypes()             # <<<<<<<<<<<<<<
  * 
  * def getRegisteredTypes():
  */
-  __pyx_t_2 = __pyx_f_4lxml_9objectify__registerPyTypes(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1055; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __pyx_f_4lxml_9objectify__registerPyTypes(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1052; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1057
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1054
  * _registerPyTypes()
  * 
  * def getRegisteredTypes():             # <<<<<<<<<<<<<<
  *     u"""getRegisteredTypes()
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_11getRegisteredTypes, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_11getRegisteredTypes, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__getRegisteredTypes, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1057; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__getRegisteredTypes, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1054; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1228
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1225
  *     cdef bint _annotate
  *     cdef dict _cache
  *     def __init__(self, *, namespace=None, nsmap=None, annotate=True,             # <<<<<<<<<<<<<<
  *                  makeelement=None):
  *         if nsmap is None:
  */
-  __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1228; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1225; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_k_25 = __pyx_t_2;
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1275
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1272
  * # Recursive element dumping
  * 
  * cdef bint __RECURSIVE_STR = 0 # default: off             # <<<<<<<<<<<<<<
@@ -30078,238 +29928,235 @@ PyMODINIT_FUNC PyInit_objectify(void)
  */
   __pyx_v_4lxml_9objectify___RECURSIVE_STR = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1277
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1274
  * cdef bint __RECURSIVE_STR = 0 # default: off
  * 
  * def enable_recursive_str(on=True):             # <<<<<<<<<<<<<<
  *     u"""enable_recursive_str(on=True)
  * 
  */
-  __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __pyx_k_28 = __pyx_t_2;
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_13enable_recursive_str, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_13enable_recursive_str, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_65, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1277; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_65, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1274; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1286
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1283
  *     __RECURSIVE_STR = on
  * 
  * def dump(_Element element not None):             # <<<<<<<<<<<<<<
  *     u"""dump(_Element element not None)
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_15dump, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_15dump, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__dump, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1286; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__dump, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1283; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1330
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1327
  * # Pickle support for objectified ElementTree
  * 
  * def __unpickleElementTree(data):             # <<<<<<<<<<<<<<
  *     return etree.ElementTree(fromstring(data))
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_17__unpickleElementTree, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_17__unpickleElementTree, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_35, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1330; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_35, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1327; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1341
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1338
  *                    elementTreeReduceFunction, __unpickleElementTree)
  * 
  * def pickleReduceElementTree(obj):             # <<<<<<<<<<<<<<
  *     return (__unpickleElementTree, (etree.tostring(obj),))
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_19pickleReduceElementTree, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_19pickleReduceElementTree, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s_93, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_93, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1338; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1344
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1341
  *     return (__unpickleElementTree, (etree.tostring(obj),))
  * 
  * _setupPickle(pickleReduceElementTree)             # <<<<<<<<<<<<<<
  * del pickleReduceElementTree
  * 
  */
-  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_93); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_GetModuleGlobalName(__pyx_n_s_93); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = __pyx_f_4lxml_9objectify__setupPickle(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1344; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __pyx_f_4lxml_9objectify__setupPickle(__pyx_t_2); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1341; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1345
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1342
  * 
  * _setupPickle(pickleReduceElementTree)
  * del pickleReduceElementTree             # <<<<<<<<<<<<<<
  * 
  * ################################################################################
  */
-  if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_93) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1345; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (__Pyx_PyObject_DelAttrStr(__pyx_m, __pyx_n_s_93) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1342; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1436
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1433
  *     return None
  * 
  * def pyannotate(element_or_tree, *, ignore_old=False, ignore_xsi=False,             # <<<<<<<<<<<<<<
  *              empty_pytype=None):
  *     u"""pyannotate(element_or_tree, ignore_old=False, ignore_xsi=False, empty_pytype=None)
  */
-  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_k_38 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_k_39 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_21pyannotate, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_21pyannotate, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__pyannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1436; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__pyannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1433; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1459
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1456
  *     _annotate(element, 0, 1, ignore_xsi, ignore_old, None, empty_pytype)
  * 
  * def xsiannotate(element_or_tree, *, ignore_old=False, ignore_pytype=False,             # <<<<<<<<<<<<<<
  *                 empty_type=None):
  *     u"""xsiannotate(element_or_tree, ignore_old=False, ignore_pytype=False, empty_type=None)
  */
-  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_k_40 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_k_41 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_23xsiannotate, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_23xsiannotate, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__xsiannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1459; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__xsiannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1456; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1487
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1484
  *     _annotate(element, 1, 0, ignore_old, ignore_pytype, empty_type, None)
  * 
  * def annotate(element_or_tree, *, ignore_old=True, ignore_xsi=False,             # <<<<<<<<<<<<<<
  *              empty_pytype=None, empty_type=None, annotate_xsi=0,
  *              annotate_pytype=1):
  */
-  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_k_42 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyBool_FromLong(0); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __pyx_k_43 = __pyx_t_1;
   __Pyx_GIVEREF(__pyx_t_1);
   __pyx_t_1 = 0;
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_25annotate, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_25annotate, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__annotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1487; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__annotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1484; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1692
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1689
  *     return 0
  * 
  * cdef object _strip_attributes = etree.strip_attributes             # <<<<<<<<<<<<<<
  * cdef object _cleanup_namespaces = etree.cleanup_namespaces
  * 
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__strip_attributes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__strip_attributes); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1689; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify__strip_attributes);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify__strip_attributes);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__strip_attributes, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_9objectify__strip_attributes = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1693
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1690
  * 
  * cdef object _strip_attributes = etree.strip_attributes
  * cdef object _cleanup_namespaces = etree.cleanup_namespaces             # <<<<<<<<<<<<<<
  * 
  * def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__cleanup_namespaces); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1693; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__cleanup_namespaces); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1690; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify__cleanup_namespaces);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify__cleanup_namespaces);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__cleanup_namespaces, __pyx_t_1);
   __Pyx_GIVEREF(__pyx_t_1);
-  __pyx_v_4lxml_9objectify__cleanup_namespaces = __pyx_t_1;
   __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1695
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1692
  * cdef object _cleanup_namespaces = etree.cleanup_namespaces
  * 
  * def deannotate(element_or_tree, *, bint pytype=True, bint xsi=True,             # <<<<<<<<<<<<<<
  *                bint xsi_nil=False, bint cleanup_namespaces=False):
  *     u"""deannotate(element_or_tree, pytype=True, xsi=True, xsi_nil=False, cleanup_namespaces=False)
  */
-  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_27deannotate, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_27deannotate, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__deannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1695; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__deannotate, __pyx_t_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1692; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1729
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1726
  * 
  * cdef object __DEFAULT_PARSER
  * __DEFAULT_PARSER = etree.XMLParser(remove_blank_text=True)             # <<<<<<<<<<<<<<
  * __DEFAULT_PARSER.set_element_class_lookup( ObjectifyElementClassLookup() )
  * 
  */
-  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__XMLParser); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
-  __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__remove_blank_text), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__remove_blank_text), __pyx_t_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
-  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1729; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = PyObject_Call(__pyx_t_1, ((PyObject *)__pyx_empty_tuple), ((PyObject *)__pyx_t_2)); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1726; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_2)); __pyx_t_2 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify___DEFAULT_PARSER);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify___DEFAULT_PARSER);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify___DEFAULT_PARSER, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
-  __pyx_v_4lxml_9objectify___DEFAULT_PARSER = __pyx_t_4;
   __pyx_t_4 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1730
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1727
  * cdef object __DEFAULT_PARSER
  * __DEFAULT_PARSER = etree.XMLParser(remove_blank_text=True)
  * __DEFAULT_PARSER.set_element_class_lookup( ObjectifyElementClassLookup() )             # <<<<<<<<<<<<<<
  * 
  * cdef object objectify_parser
  */
-  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify___DEFAULT_PARSER, __pyx_n_s_47); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify___DEFAULT_PARSER, __pyx_n_s_47); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_4);
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ObjectifyElementClassLookup)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_1);
   PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
   __pyx_t_2 = 0;
-  __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1730; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(__pyx_t_4, ((PyObject *)__pyx_t_1), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1727; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
   __Pyx_DECREF(((PyObject *)__pyx_t_1)); __pyx_t_1 = 0;
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1733
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1730
  * 
  * cdef object objectify_parser
  * objectify_parser = __DEFAULT_PARSER             # <<<<<<<<<<<<<<
@@ -30318,188 +30165,184 @@ PyMODINIT_FUNC PyInit_objectify(void)
  */
   __Pyx_INCREF(__pyx_v_4lxml_9objectify___DEFAULT_PARSER);
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify_objectify_parser);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify_objectify_parser);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify_objectify_parser, __pyx_v_4lxml_9objectify___DEFAULT_PARSER);
   __Pyx_GIVEREF(__pyx_v_4lxml_9objectify___DEFAULT_PARSER);
-  __pyx_v_4lxml_9objectify_objectify_parser = __pyx_v_4lxml_9objectify___DEFAULT_PARSER;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1735
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1732
  * objectify_parser = __DEFAULT_PARSER
  * 
  * def set_default_parser(new_parser = None):             # <<<<<<<<<<<<<<
  *     u"""set_default_parser(new_parser = None)
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_29set_default_parser, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_29set_default_parser, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__set_default_parser, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1735; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__set_default_parser, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1732; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1753
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1750
  *         raise TypeError, u"parser must inherit from lxml.etree.XMLParser"
  * 
  * def makeparser(**kw):             # <<<<<<<<<<<<<<
  *     u"""makeparser(remove_blank_text=True, **kw)
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_31makeparser, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_31makeparser, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__makeparser, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1753; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__makeparser, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1750; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1776
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1773
  * 
  * cdef object _fromstring
  * _fromstring = etree.fromstring             # <<<<<<<<<<<<<<
  * 
  * SubElement = etree.SubElement
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__fromstring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1776; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__fromstring); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1773; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify__fromstring);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify__fromstring);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__fromstring, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
-  __pyx_v_4lxml_9objectify__fromstring = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1778
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1775
  * _fromstring = etree.fromstring
  * 
  * SubElement = etree.SubElement             # <<<<<<<<<<<<<<
  * 
  * def fromstring(xml, parser=None, *, base_url=None):
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__SubElement); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__SubElement); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__SubElement, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1778; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__SubElement, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1775; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1780
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1777
  * SubElement = etree.SubElement
  * 
  * def fromstring(xml, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""fromstring(xml, parser=None, base_url=None)
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_33fromstring, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_33fromstring, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstring, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1780; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__fromstring, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1777; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1796
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1793
  *     return _fromstring(xml, parser, base_url=base_url)
  * 
  * def XML(xml, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""XML(xml, parser=None, base_url=None)
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_35XML, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_35XML, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XML, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1796; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__XML, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1793; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1813
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1810
  * 
  * cdef object _parse
  * _parse = etree.parse             # <<<<<<<<<<<<<<
  * 
  * def parse(f, parser=None, *, base_url=None):
  */
-  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__parse); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1813; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_4lxml_9objectify_etree, __pyx_n_s__parse); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1810; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify__parse);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify__parse);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__parse, __pyx_t_2);
   __Pyx_GIVEREF(__pyx_t_2);
-  __pyx_v_4lxml_9objectify__parse = __pyx_t_2;
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1815
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1812
  * _parse = etree.parse
  * 
  * def parse(f, parser=None, *, base_url=None):             # <<<<<<<<<<<<<<
  *     u"""parse(f, parser=None, base_url=None)
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_37parse, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_37parse, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__parse, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1815; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__parse, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1812; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1830
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1827
  *     return _parse(f, parser, base_url=base_url)
  * 
  * cdef dict _DEFAULT_NSMAP = {             # <<<<<<<<<<<<<<
  *     "py"  : PYTYPE_NAMESPACE,
  *     "xsi" : XML_SCHEMA_INSTANCE_NS,
  */
-  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyDict_New(); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(((PyObject *)__pyx_t_2));
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1831
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1828
  * 
  * cdef dict _DEFAULT_NSMAP = {
  *     "py"  : PYTYPE_NAMESPACE,             # <<<<<<<<<<<<<<
  *     "xsi" : XML_SCHEMA_INSTANCE_NS,
  *     "xsd" : XML_SCHEMA_NS
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__py), __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__py), __pyx_v_4lxml_9objectify_PYTYPE_NAMESPACE) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1832
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1829
  * cdef dict _DEFAULT_NSMAP = {
  *     "py"  : PYTYPE_NAMESPACE,
  *     "xsi" : XML_SCHEMA_INSTANCE_NS,             # <<<<<<<<<<<<<<
  *     "xsd" : XML_SCHEMA_NS
  * }
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__xsi), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__xsi), __pyx_v_4lxml_9objectify_XML_SCHEMA_INSTANCE_NS) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1834
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1831
  *     "xsi" : XML_SCHEMA_INSTANCE_NS,
  *     "xsd" : XML_SCHEMA_NS
  * }             # <<<<<<<<<<<<<<
  * 
  * E = ElementMaker()
  */
-  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__xsd), __pyx_v_4lxml_9objectify_XML_SCHEMA_NS) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1830; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_t_2, ((PyObject *)__pyx_n_s__xsd), __pyx_v_4lxml_9objectify_XML_SCHEMA_NS) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1827; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_XGOTREF(((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
-  __Pyx_DECREF(((PyObject *)__pyx_v_4lxml_9objectify__DEFAULT_NSMAP));
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__DEFAULT_NSMAP, ((PyObject*)__pyx_t_2));
   __Pyx_GIVEREF(((PyObject *)__pyx_t_2));
-  __pyx_v_4lxml_9objectify__DEFAULT_NSMAP = ((PyObject*)__pyx_t_2);
   __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1836
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1833
  * }
  * 
  * E = ElementMaker()             # <<<<<<<<<<<<<<
  * 
  * def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes):
  */
-  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ElementMaker)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyObject_Call(((PyObject *)((PyObject*)__pyx_ptype_4lxml_9objectify_ElementMaker)), ((PyObject *)__pyx_empty_tuple), NULL); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__E, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1836; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__E, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1833; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1838
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1835
  * E = ElementMaker()
  * 
  * def Element(_tag, attrib=None, nsmap=None, *, _pytype=None, **_attributes):             # <<<<<<<<<<<<<<
  *     u"""Element(_tag, attrib=None, nsmap=None, _pytype=None, **_attributes)
  * 
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_39Element, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_39Element, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Element, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1838; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__Element, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1835; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
-  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1858
+  /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1855
  *     return _makeElement(_tag, None, _attributes, nsmap)
  * 
  * def DataElement(_value, attrib=None, nsmap=None, *, _pytype=None, _xsi=None,             # <<<<<<<<<<<<<<
  *                 **_attributes):
  *     u"""DataElement(_value, attrib=None, nsmap=None, _pytype=None, _xsi=None, **_attributes)
  */
-  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_41DataElement, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_4lxml_9objectify_41DataElement, NULL, __pyx_n_s_72); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_GOTREF(__pyx_t_2);
-  if (PyDict_SetItem(__pyx_d, __pyx_n_s__DataElement, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1858; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s__DataElement, __pyx_t_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1855; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
   __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":84
@@ -30537,9 +30380,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
   __Pyx_GOTREF(__pyx_t_4);
   __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify___MATCH_PATH_SEGMENT);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify___MATCH_PATH_SEGMENT);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify___MATCH_PATH_SEGMENT, __pyx_t_4);
   __Pyx_GIVEREF(__pyx_t_4);
-  __pyx_v_4lxml_9objectify___MATCH_PATH_SEGMENT = __pyx_t_4;
   __pyx_t_4 = 0;
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/objectpath.pxi":89
@@ -30551,9 +30393,8 @@ PyMODINIT_FUNC PyInit_objectify(void)
  */
   __Pyx_INCREF(((PyObject *)__pyx_k_tuple_117));
   __Pyx_XGOTREF(__pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT);
-  __Pyx_DECREF(__pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT);
+  __Pyx_DECREF_SET(__pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT, ((PyObject *)__pyx_k_tuple_117));
   __Pyx_GIVEREF(((PyObject *)__pyx_k_tuple_117));
-  __pyx_v_4lxml_9objectify__RELATIVE_PATH_SEGMENT = ((PyObject *)__pyx_k_tuple_117);
 
   /* "/home/stefan/source/Python/lxml/lxml-release/src/lxml/lxml.objectify.pyx":1
  * u"""The ``lxml.objectify`` module implements a Python object API for             # <<<<<<<<<<<<<<
@@ -30686,12 +30527,12 @@ static void __pyx_module_cleanup(CYTHON_UNUSED PyObject *self) {
   /*--- Type import cleanup code ---*/
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTree);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementTagMatcher);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementIterator);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementClassLookup);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__ElementIterator);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_FallbackElementClassLookup);
-  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Element);
   Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Document);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic_ElementBase);
+  Py_CLEAR(__pyx_ptype_4lxml_8includes_11etreepublic__Element);
   /*--- Builtin cleanup code ---*/
   Py_CLEAR(__pyx_builtin_ValueError);
   Py_CLEAR(__pyx_builtin_TypeError);
@@ -31468,7 +31309,7 @@ static PyObject* __Pyx_PyDict_GetItemDefault(PyObject* d, PyObject* key, PyObjec
 
 #if PY_MAJOR_VERSION >= 3
 static CYTHON_INLINE PyObject* __Pyx_PyDict_Items(PyObject* d) {
-    return PyObject_CallMethodObjArgs(d, __pyx_n_s__items, NULL);
+    return __Pyx_PyObject_CallMethod1((PyObject*)&PyDict_Type, __pyx_n_s__items, d);
 }
 #endif
 
@@ -31478,7 +31319,7 @@ static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname) {
 
 #if PY_MAJOR_VERSION >= 3
 static CYTHON_INLINE PyObject* __Pyx_PyDict_Values(PyObject* d) {
-    return PyObject_CallMethodObjArgs(d, __pyx_n_s__values, NULL);
+    return __Pyx_PyObject_CallMethod1((PyObject*)&PyDict_Type, __pyx_n_s__values, d);
 }
 #endif
 
index 77e3ac5488c418f751edacea9bbd32cdc5871da5..0acc95ab9079af810f4f2fcd3c84e51f10a31c83 100644 (file)
@@ -680,7 +680,7 @@ cdef class NumberElement(ObjectifiedDataElement):
         return abs( _numericValueOf(self) )
 
     def __nonzero__(self):
-        return _numericValueOf(self) != 0
+        return bool(_numericValueOf(self))
 
     def __invert__(self):
         return ~ _numericValueOf(self)
@@ -734,10 +734,7 @@ cdef class StringElement(ObjectifiedDataElement):
             return len(text)
 
     def __nonzero__(self):
-        text = textOf(self._c_node)
-        if text is None:
-            return False
-        return len(text) > 0
+        return bool(textOf(self._c_node))
 
     def __richcmp__(self, other, int op):
         return _richcmpPyvals(self, other, op)
@@ -880,8 +877,8 @@ cdef object _numericValueOf(obj):
     return obj
 
 cdef _richcmpPyvals(left, right, int op):
-    left  = getattr(left,  u'pyval', left)
-    right = getattr(right, u'pyval', right)
+    left  = getattr(left,  'pyval', left)
+    right = getattr(right, 'pyval', right)
     return python.PyObject_RichCompare(left, right, op)
 
 
index 179dc892b99a1a49aa494a97bae8826bbf03d3c0..b592951ecaaac2d2e6671b35b1a6170ee80709c9 100644 (file)
@@ -206,7 +206,7 @@ cdef class _FunctionNamespaceRegistry(_NamespaceRegistry):
 @cython.internal
 cdef class _XPathFunctionNamespaceRegistry(_FunctionNamespaceRegistry):
     cdef object _prefix
-    cdef object _prefix_utf
+    cdef bytes _prefix_utf
 
     property prefix:
         u"Namespace prefix for extension functions."
index db13d4ce6dc9dc6920c5eceb0fc5346d4ce086ec..0e5465e9300a82fc8aba528d26fa387d569de23f 100644 (file)
@@ -138,19 +138,16 @@ cdef void _handleSaxStart(void* ctxt, const_xmlChar* c_localname, const_xmlChar*
         if c_nb_defaulted > 0:
             # only add default attributes if we asked for them
             if c_ctxt.loadsubset & xmlparser.XML_COMPLETE_ATTRS == 0:
-                c_nb_attributes = c_nb_attributes - c_nb_defaulted
+                c_nb_attributes -= c_nb_defaulted
         if c_nb_attributes == 0:
             attrib = EMPTY_READ_ONLY_DICT
         else:
             attrib = {}
-            for i from 0 <= i < c_nb_attributes:
+            for i in range(0, c_nb_attributes):
                 name = _namespacedNameFromNsName(
                     c_attributes[2], c_attributes[0])
                 if c_attributes[3] is NULL:
-                    if python.IS_PYTHON3:
-                        value = u''
-                    else:
-                        value = ''
+                    value = ''
                 else:
                     value = python.PyUnicode_DecodeUTF8(
                         <const_char*>c_attributes[3], c_attributes[4] - c_attributes[3],
@@ -161,11 +158,8 @@ cdef void _handleSaxStart(void* ctxt, const_xmlChar* c_localname, const_xmlChar*
             nsmap = EMPTY_READ_ONLY_DICT
         else:
             nsmap = {}
-            for i from 0 <= i < c_nb_namespaces:
-                if c_namespaces[0] is NULL:
-                    prefix = None
-                else:
-                    prefix = funicode(c_namespaces[0])
+            for i in range(0, c_nb_attributes):
+                prefix = funicodeOrNone(c_namespaces[0])
                 nsmap[prefix] = funicode(c_namespaces[1])
                 c_namespaces += 2
         element = context._target._handleSaxStart(tag, attrib, nsmap)
@@ -196,20 +190,13 @@ cdef void _handleSaxStartNoNs(void* ctxt, const_xmlChar* c_name,
             attrib = {}
             while c_attributes[0] is not NULL:
                 name = funicode(c_attributes[0])
-                if c_attributes[1] is NULL:
-                    if python.IS_PYTHON3:
-                        value = u''
-                    else:
-                        value = ''
-                else:
-                    value = funicode(c_attributes[1])
-                c_attributes = c_attributes + 2
-                attrib[name] = value
+                attrib[name] = funicodeOrEmpty(c_attributes[1])
+                c_attributes += 2
         element = context._target._handleSaxStart(
             tag, attrib, EMPTY_READ_ONLY_DICT)
         if element is not None and c_ctxt.input is not NULL:
             if c_ctxt.input.line < 65535:
-                element._c_node.line = <short>c_ctxt.input.line
+                element._c_node.line = <unsigned short>c_ctxt.input.line
             else:
                 element._c_node.line = 65535
     except:
@@ -354,8 +341,9 @@ cdef class TreeBuilder(_SaxParserTarget):
         self._factory = element_factory
         self._parser = parser
 
+    @cython.final
     cdef int _flush(self) except -1:
-        if python.PyList_GET_SIZE(self._data) > 0:
+        if self._data:
             if self._last is not None:
                 text = u"".join(self._data)
                 if self._in_tail:
@@ -367,6 +355,54 @@ cdef class TreeBuilder(_SaxParserTarget):
             del self._data[:]
         return 0
 
+    # internal SAX event handlers
+
+    @cython.final
+    cdef _handleSaxStart(self, tag, attrib, nsmap):
+        self._flush()
+        if self._factory is not None:
+            self._last = self._factory(tag, attrib)
+            if self._element_stack:
+                _appendChild(self._element_stack[-1], self._last)
+        elif self._element_stack:
+            self._last = _makeSubElement(
+                self._element_stack[-1], tag, None, None, attrib, nsmap, None)
+        else:
+            self._last = _makeElement(
+                tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
+        self._element_stack.append(self._last)
+        self._in_tail = 0
+        return self._last
+
+    @cython.final
+    cdef _handleSaxEnd(self, tag):
+        self._flush()
+        self._last = self._element_stack_pop()
+        self._in_tail = 1
+        return self._last
+
+    @cython.final
+    cdef int _handleSaxData(self, data) except -1:
+        self._data.append(data)
+
+    @cython.final
+    cdef _handleSaxPi(self, target, data):
+        self._flush()
+        self._last = ProcessingInstruction(target, data)
+        if self._element_stack:
+            _appendChild(self._element_stack[-1], self._last)
+        self._in_tail = 1
+        return self._last
+
+    @cython.final
+    cdef _handleSaxComment(self, comment):
+        self._flush()
+        self._last = Comment(comment)
+        if self._element_stack:
+            _appendChild(self._element_stack[-1], self._last)
+        self._in_tail = 1
+        return self._last
+
     # Python level event handlers
 
     def close(self):
@@ -375,7 +411,7 @@ cdef class TreeBuilder(_SaxParserTarget):
         Flushes the builder buffers, and returns the toplevel document
         element.
         """
-        assert python.PyList_GET_SIZE(self._element_stack) == 0, u"missing end tags"
+        assert not self._element_stack, u"missing end tags"
         assert self._last is not None, u"missing toplevel element"
         return self._last
 
@@ -416,46 +452,3 @@ cdef class TreeBuilder(_SaxParserTarget):
         u"""comment(self, comment)
         """
         return self._handleSaxComment(comment)
-
-    # internal SAX event handlers
-
-    cdef _handleSaxStart(self, tag, attrib, nsmap):
-        self._flush()
-        if self._factory is not None:
-            self._last = self._factory(tag, attrib)
-            if python.PyList_GET_SIZE(self._element_stack) > 0:
-                _appendChild(self._element_stack[-1], self._last)
-        elif python.PyList_GET_SIZE(self._element_stack) > 0:
-            self._last = _makeSubElement(
-                self._element_stack[-1], tag, None, None, attrib, nsmap, None)
-        else:
-            self._last = _makeElement(
-                tag, NULL, None, self._parser, None, None, attrib, nsmap, None)
-        self._element_stack.append(self._last)
-        self._in_tail = 0
-        return self._last
-
-    cdef _handleSaxEnd(self, tag):
-        self._flush()
-        self._last = self._element_stack_pop()
-        self._in_tail = 1
-        return self._last
-
-    cdef int _handleSaxData(self, data) except -1:
-        self._data.append(data)
-
-    cdef _handleSaxPi(self, target, data):
-        self._flush()
-        self._last = ProcessingInstruction(target, data)
-        if python.PyList_GET_SIZE(self._element_stack) > 0:
-            _appendChild(self._element_stack[-1], self._last)
-        self._in_tail = 1
-        return self._last
-
-    cdef _handleSaxComment(self, comment):
-        self._flush()
-        self._last = Comment(comment)
-        if python.PyList_GET_SIZE(self._element_stack) > 0:
-            _appendChild(self._element_stack[-1], self._last)
-        self._in_tail = 1
-        return self._last
index 264482577f185a3062d888aa31ae0ba04aacbad8..04f70a81f16ab86c9fd07f902296feffa58086fb 100644 (file)
@@ -1,5 +1,8 @@
 # XML serialization and output functions
 
+cdef object GzipFile
+from gzip import GzipFile
+
 class SerialisationError(LxmlError):
     u"""A libxml2 error that occurred during serialisation.
     """
@@ -370,7 +373,7 @@ cdef class _FilelikeWriter:
     cdef _ErrorLog error_log
     def __cinit__(self, filelike, exc_context=None, compression=None):
         if compression is not None and compression > 0:
-            filelike = gzip.GzipFile(
+            filelike = GzipFile(
                 fileobj=filelike, mode='wb', compresslevel=compression)
             self._close_filelike = filelike.close
         self._filelike = filelike
@@ -429,28 +432,19 @@ cdef _tofilelike(f, _Element element, encoding, doctype, method,
     cdef const_char* c_enc
     cdef const_xmlChar* c_doctype
     cdef int error_result
-    if encoding is None:
-        c_enc = NULL
-    else:
-        encoding = _utf8(encoding)
-        c_enc = _cstr(encoding)
-    if doctype is None:
-        c_doctype = NULL
-    else:
-        doctype = _utf8(doctype)
-        c_doctype = _xcstr(doctype)
+
     c_method = _findOutputMethod(method)
     if c_method == OUTPUT_METHOD_TEXT:
         data = _textToString(element._c_node, encoding, with_tail)
         if compression:
             bytes_out = BytesIO()
-            gzip_file = gzip.GzipFile(
+            gzip_file = GzipFile(
                 fileobj=bytes_out, mode='wb', compresslevel=compression)
             try:
                 gzip_file.write(data)
             finally:
                 gzip_file.close()
-            data = bytes_out
+            data = bytes_out.getvalue()
         if _isString(f):
             filename8 = _encodeFilename(f)
             f = open(filename8, 'wb')
@@ -462,6 +456,17 @@ cdef _tofilelike(f, _Element element, encoding, doctype, method,
             f.write(data)
         return
 
+    if encoding is None:
+        c_enc = NULL
+    else:
+        encoding = _utf8(encoding)
+        c_enc = _cstr(encoding)
+    if doctype is None:
+        c_doctype = NULL
+    else:
+        doctype = _utf8(doctype)
+        c_doctype = _xcstr(doctype)
+
     writer = _create_output_buffer(f, c_enc, compression, &c_buffer)
     if writer is None:
         state = python.PyEval_SaveThread()
@@ -609,7 +614,7 @@ cdef class xmlfile:
                       xf.write(element)
     """
     cdef object output_file
-    cdef object encoding
+    cdef bytes encoding
     cdef int compresslevel
     cdef _IncrementalFileWriter writer
 
@@ -642,7 +647,7 @@ cdef enum _IncrementalFileWriterStatus:
 @cython.internal
 cdef class _IncrementalFileWriter:
     cdef tree.xmlOutputBuffer* _c_out
-    cdef object _encoding
+    cdef bytes _encoding
     cdef const_char* _c_encoding
     cdef object _target
     cdef list _element_stack
index 05e04a46c805ad78f92fce1e650069df6e7516ec..d36cb6ead23f4e0dd22e0c36207f5a3bd2120b84 100644 (file)
@@ -35,6 +35,7 @@ def webserver(app, port=0, host=None):
         yield 'http://%s:%s/' % (host, port)  # yield control to 'with' body
     finally:
         server.shutdown()
+        server.server_close()
 
 
 try:
index 860aee2c0f39078ac49a5471664bf67cf577116b..c1896fdbd05c2a0ee12587727c068a2dd54025a5 100644 (file)
@@ -15,6 +15,7 @@ import re
 import gc
 import operator
 import tempfile
+import zlib
 import gzip
 
 this_dir = os.path.dirname(__file__)
@@ -392,14 +393,15 @@ class ETreeOnlyTestCase(HelperTestCase):
         XML = self.etree.XML
         xml = _bytes('''
         <div>
-           <div>
-               I like <strong>sheep</strong>.
-               <br/>
-               I like lots of <strong>sheep</strong>.
-               <br/>
-               Click <a href="http://www.sheep.com">here</a> for <a href="http://www.sheep.com">those</a> sheep.
-               <br/>
-           </div>
+            <div>
+                I like <strong>sheep</strong>.
+                <br/>
+                I like lots of <strong>sheep</strong>.
+                <br/>
+                Click <a href="http://www.sheep.com">here</a>
+                 for <a href="http://www.sheep.com">those</a> sheep.
+                <br/>
+            </div>
         </div>
         '''.strip())
 
@@ -1380,6 +1382,18 @@ class ETreeOnlyTestCase(HelperTestCase):
         self.assertRaises(TypeError, root.extend, [Element('one'), None])
         self.assertEqual('one', root[0].tag)
 
+    def test_append_recursive_error(self):
+        Element = self.etree.Element
+        SubElement = self.etree.SubElement
+        root = Element('root')
+        self.assertRaises(ValueError, root.append, root)
+        child = SubElement(root, 'child')
+        self.assertRaises(ValueError, child.append, root)
+        child2 = SubElement(child, 'child2')
+        self.assertRaises(ValueError, child2.append, root)
+        self.assertRaises(ValueError, child2.append, child)
+        self.assertEqual('child2', root[0][0].tag)
+
     def test_addnext(self):
         Element = self.etree.Element
         SubElement = self.etree.SubElement
@@ -1406,11 +1420,37 @@ class ETreeOnlyTestCase(HelperTestCase):
         self.assertEqual(['b', 'a'],
                           [c.tag for c in root])
 
-    def test_addnext_root(self):
+    def test_addprevious_noops(self):
         Element = self.etree.Element
-        a = Element('a')
-        b = Element('b')
-        self.assertRaises(TypeError, a.addnext, b)
+        SubElement = self.etree.SubElement
+        root = Element('root')
+        a = SubElement(root, 'a')
+        b = SubElement(root, 'b')
+        a.addprevious(a)
+        self.assertEqual('a', root[0].tag)
+        self.assertEqual('b', root[1].tag)
+        b.addprevious(b)
+        self.assertEqual('a', root[0].tag)
+        self.assertEqual('b', root[1].tag)
+        b.addprevious(a)
+        self.assertEqual('a', root[0].tag)
+        self.assertEqual('b', root[1].tag)
+
+    def test_addnext_noops(self):
+        Element = self.etree.Element
+        SubElement = self.etree.SubElement
+        root = Element('root')
+        a = SubElement(root, 'a')
+        b = SubElement(root, 'b')
+        a.addnext(a)
+        self.assertEqual('a', root[0].tag)
+        self.assertEqual('b', root[1].tag)
+        b.addnext(b)
+        self.assertEqual('a', root[0].tag)
+        self.assertEqual('b', root[1].tag)
+        a.addnext(b)
+        self.assertEqual('a', root[0].tag)
+        self.assertEqual('b', root[1].tag)
 
     def test_addnext_root(self):
         Element = self.etree.Element
@@ -3299,6 +3339,21 @@ class ETreeOnlyTestCase(HelperTestCase):
         self.assertEqual(len(root), 1)
         self.assertEqual(root[0].tag, 'child')
 
+    def test_element_refcycle(self):
+        class SubEl(etree.ElementBase):
+            pass
+
+        el1 = SubEl()
+        el2 = SubEl()
+        self.assertEqual('SubEl', el1.tag)
+        self.assertEqual('SubEl', el2.tag)
+        el1.other = el2
+        el2.other = el1
+
+        del el1, el2
+        gc.collect()
+        # not really testing anything here, but it shouldn't crash
+
     # helper methods
 
     def _writeElement(self, element, encoding='us-ascii', compression=0):
index 73e2097253c7498ada5a73f96b840ce992ce913b..5c6862158b442ef08252b92c34d7ae3e0cc8d7a2 100644 (file)
@@ -13,7 +13,8 @@ if this_dir not in sys.path:
 
 from common_imports import etree, ElementTree, fileInTestDir, _str, _bytes
 from common_imports import SillyFileLike, LargeFileLike, HelperTestCase
-from common_imports import read_file, write_to_file
+from common_imports import read_file, write_to_file, BytesIO
+
 
 class _IOTestCaseBase(HelperTestCase):
     """(c)ElementTree compatibility for IO functions/methods
@@ -256,13 +257,13 @@ class _IOTestCaseBase(HelperTestCase):
         dirnameEN = _str('Directory')
         dirnameRU = _str('Каталог')
         filename = _str('nosuchfile.xml')
+        dn = tempfile.mkdtemp(prefix=dirnameEN)
         try:
-            dn = tempfile.mkdtemp(prefix=dirnameEN)
             self.assertRaises(IOError, self.etree.parse, os.path.join(dn, filename))
         finally:
             os.rmdir(dn)
+        dn = tempfile.mkdtemp(prefix=dirnameRU)
         try:
-            dn = tempfile.mkdtemp(prefix=dirnameRU)
             self.assertRaises(IOError, self.etree.parse, os.path.join(dn, filename))
         finally:
             os.rmdir(dn)
@@ -270,11 +271,38 @@ class _IOTestCaseBase(HelperTestCase):
     
 class ETreeIOTestCase(_IOTestCaseBase):
     etree = etree
-    
+
+    def test_write_compressed_text(self):
+        Element = self.etree.Element
+        SubElement = self.etree.SubElement
+        ElementTree = self.etree.ElementTree
+        text = _str("qwrtioüöä")
+
+        root = Element('root')
+        root.text = text
+        child = SubElement(root, 'sub')
+        child.text = 'TEXT'
+        child.tail = 'TAIL'
+        SubElement(root, 'sub').text = text
+
+        tree = ElementTree(root)
+        out = BytesIO()
+        tree.write(out, method='text', encoding='utf8', compression=9)
+        out.seek(0)
+
+        f = gzip.GzipFile(fileobj=out)
+        try:
+            result = f.read().decode('utf8')
+        finally:
+            f.close()
+        self.assertEqual(text+'TEXTTAIL'+text, result)
+
+
 if ElementTree:
     class ElementTreeIOTestCase(_IOTestCaseBase):
         etree = ElementTree
 
+
 def test_suite():
     suite = unittest.TestSuite()
     suite.addTests([unittest.makeSuite(ETreeIOTestCase)])
@@ -282,5 +310,6 @@ def test_suite():
         suite.addTests([unittest.makeSuite(ElementTreeIOTestCase)])
     return suite
 
+
 if __name__ == '__main__':
     print('to test use test.py %s' % __file__)
index f549486f27d9970c97be24b9419d8b025deab71d..f21df7c98571badbb9b8d3f06df0ae2123ac419b 100644 (file)
@@ -762,26 +762,35 @@ class ETreeXSLTTestCase(HelperTestCase):
     def test_xslt_document_parse_allow(self):
         access_control = etree.XSLTAccessControl(read_file=True)
         xslt = etree.XSLT(etree.parse(fileInTestDir("test-document.xslt")),
-                          access_control = access_control)
+                          access_control=access_control)
         result = xslt(etree.XML('<a/>'))
         root = result.getroot()
         self.assertEqual(root.tag,
-                          'test')
+                         'test')
         self.assertEqual(root[0].tag,
-                          '{http://www.w3.org/1999/XSL/Transform}stylesheet')
+                         '{http://www.w3.org/1999/XSL/Transform}stylesheet')
 
     def test_xslt_document_parse_deny(self):
         access_control = etree.XSLTAccessControl(read_file=False)
         xslt = etree.XSLT(etree.parse(fileInTestDir("test-document.xslt")),
-                          access_control = access_control)
+                          access_control=access_control)
         self.assertRaises(etree.XSLTApplyError, xslt, etree.XML('<a/>'))
 
     def test_xslt_document_parse_deny_all(self):
         access_control = etree.XSLTAccessControl.DENY_ALL
         xslt = etree.XSLT(etree.parse(fileInTestDir("test-document.xslt")),
-                          access_control = access_control)
+                          access_control=access_control)
         self.assertRaises(etree.XSLTApplyError, xslt, etree.XML('<a/>'))
 
+    def test_xslt_access_control_repr(self):
+        access_control = etree.XSLTAccessControl.DENY_ALL
+        self.assertTrue(repr(access_control).startswith(type(access_control).__name__))
+        self.assertEqual(repr(access_control), repr(access_control))
+        self.assertNotEqual(repr(etree.XSLTAccessControl.DENY_ALL),
+                            repr(etree.XSLTAccessControl.DENY_WRITE))
+        self.assertNotEqual(repr(etree.XSLTAccessControl.DENY_ALL),
+                            repr(etree.XSLTAccessControl()))
+
     def test_xslt_move_result(self):
         root = etree.XML(_bytes('''\
         <transform>
index a3f4a17e7914ff6858cec95e828957b5c83c2ecf..66766f7821326a4e1bd6d5a4d9255dde138f044c 100644 (file)
@@ -708,6 +708,8 @@ WRITER=25
 MODULE=26
 I18N=27
 SCHEMATRONV=28
+BUFFER=29
+URI=30
 """,)
 
 cdef object __PARSER_ERROR_TYPES = (u"""\
@@ -823,6 +825,8 @@ WAR_NS_COLUMN=106
 WAR_ENTITY_REDEFINED=107
 ERR_UNKNOWN_VERSION=108
 ERR_VERSION_MISMATCH=109
+ERR_NAME_TOO_LONG=110
+ERR_USER_STOP=111
 NS_ERR_XML_NAMESPACE=200
 NS_ERR_UNDEFINED_NAMESPACE=201
 NS_ERR_QNAME=202
@@ -876,9 +880,9 @@ HTML_UNKNOWN_TAG=801
 RNGP_ANYNAME_ATTR_ANCESTOR=1000
 RNGP_ATTR_CONFLICT=1001
 RNGP_ATTRIBUTE_CHILDREN=1002
-RNGP_ATTRIBUTE_CONTENT=1003
 """,
 u"""\
+RNGP_ATTRIBUTE_CONTENT=1003
 RNGP_ATTRIBUTE_EMPTY=1004
 RNGP_ATTRIBUTE_NOOP=1005
 RNGP_CHOICE_CONTENT=1006
@@ -1462,8 +1466,7 @@ I18N_CONV_FAILED=6003
 """,
 u"""\
 I18N_NO_OUTPUT=6004
-CHECK_=6005
-CHECK_X=6006
+BUF_OVERFLOW=7000
 """,)
 
 cdef object __RELAXNG_ERROR_TYPES = (u"""\
index 8fdecc3fa0d14ff0929050e914984f19d704d2f0..ed2be0eb42246ae0ea252ab9711cbb0085627168 100644 (file)
@@ -59,7 +59,9 @@ cdef class _XPathContext(_BaseContext):
 
     cdef set_context(self, xpath.xmlXPathContext* xpathCtxt):
         self._set_xpath_context(xpathCtxt)
-        self._setupDict(xpathCtxt)
+        # This would be a good place to set up the XPath parser dict, but
+        # we cannot use the current thread dict as we do not know which
+        # thread will execute the XPath evaluator - so, no dict for now.
         self.registerLocalNamespaces()
         self.registerLocalFunctions(xpathCtxt, _register_xpath_function)
 
@@ -101,9 +103,6 @@ cdef class _XPathContext(_BaseContext):
         xpath.xmlXPathRegisterVariable(
             self._xpathCtxt, _xcstr(name_utf), _wrapXPathObject(value, None, None))
 
-    cdef void _setupDict(self, xpath.xmlXPathContext* xpathCtxt):
-        __GLOBAL_PARSER_CONTEXT.initXPathParserDict(xpathCtxt)
-
 cdef void _registerExsltFunctionsForNamespaces(
         void* _c_href, void* _ctxt, xmlChar* c_prefix):
     c_href = <const_xmlChar*> _c_href
index 93da6878ffa7cd1913de5d355bc580061927dcec..849099cffac2fce09b222e4496e7bd0eb83df845 100644 (file)
@@ -246,8 +246,7 @@ cdef class XSLTAccessControl:
             return None
 
     def __repr__(self):
-        items = self.options.items()
-        items.sort()
+        items = sorted(self.options.items())
         return u"%s(%s)" % (
             python._fqtypename(self).decode('UTF-8').split(u'.')[-1],
             u', '.join([u"%s=%r" % item for item in items]))
index b347b11eac8ae6e5c3d9a0ed133b14e11280c9ff..351227fca344ed98cce60e2d3a0eb681b589e000 100644 (file)
@@ -1 +1 @@
-3.2.3
+3.2.4